开开心心带你学习MySQL数据库之第五篇

news2024/11/25 6:30:24

😺欢迎来到我的博客, 记得点赞👍+收藏⭐️+留言✍️🐱

🐉做为一个怪兽,我的目标是少消灭一个奥特曼🐉

📖希望我写的博客对你有所帮助,如有不足,请指正📖

chatgpt 是否能够代替程序猿?

~~非常明确,太抬举chatgpt 了!!!

~~chatgpt屌 !但是是相比于之前的"人工智能",之前的"人工智能"其实是"人工智障",全靠同行衬托!!但是和正常的人类比,还是相差甚远的

~~chatgpt 本质上是大号搜索引擎(相当于谷歌,百度,bing 这些东西)升级版

~~它的功能是检索,是基于现有的知识,而程序猿做的很多工作,是创造,从无到有的根据问题/场景创造出东西(产品)

找工作的节奏~时间窗口

  1. 找实习 => 大三上学期 + 大三下学期3-4月份

(大三可以替换成研二)(但是正常的研究生基本没法出去实习.正常老板是不会放人)

拿到的是实习offer.至于能否转正留用,签劳动合同,看表现~~[不稳]

  1. 提前批 => 大三下学期7-8月份

一般是比较好的公司

拿到的是正式offer.(先签订三方协议,毕业了入职报道,签订劳动合同)~~[稳]

  1. 秋招 => 大四上学期9,10,11月份⭐️⭐️⭐️

绝大部分同学都是在这个时间点进行找工作,所有公司齐出动招聘的黄金时机.

拿到的是正式offer.(先签订三方协议,毕业了入职报道,签订劳动合同)~~[稳]

经历了秋招,绝大部分同学都有工作了.当然还有一部分同学还没找到~~

  1. 春招 => 大四下学期,年后到3,4月份

可以理解成补招.(秋招有些公司没招够人,再招招)

公司数量和质量都是远远不如秋招的.

春招的机会是秋招的十分之一.这样理解是不为过的~

~~如果春招了还没找到工作,基本凉了(跟失业差不多.就算不失业,基本难以进入互联网行业了)

~~当错过春招之后,就失去了最大的筹码 => 应届生身份!!!

~~从此之后,只能走社招 => 互联网公司社招都是要求工作经验的

~~由于没有工作经验,又不是应届生,基本很难进入互联网公司了,就算进互联网,也一定是最底层最差的公司(只能外包了)

“外包”:一类专门给别的公司干苦力的公司~~(没有技术壁垒,也没有自己产品的…)

存在一些公司,offer是点击就送的.

富士康,富士通,美林,道通,比亚迪,…

面试大概就是随便聊聊,也不问技术~~

(技术岗)6k,7k左右~~

select

  1. 全列查询
 select * from 表名;
  1. 指定列查询
select 列名,列名 from 表名;
  1. 表达式查询
select 表达式 from 表名;
  1. 带别名的查询
select 表达式 as 别名 from 表名;
  1. 去重查询
select distinct 列名/表达式 from 表名;
  1. 排序查询
select 列名 from 表名 order by 列名[desc], 列名[desc];
  1. 条件查询
select 列名 from 表名 where 条件;

~~通过一组关系运算符和逻辑运算符描述.符合条件的结果保留,不符合的就pass

NULL 的查询:is [not] null

NULL / null ~~sql中不区分大小写的.表示表格里的这一项是空着的

null 和其他数值进行运算,结果还是null

null 结果在条件中,相当于 false 了.

null = null 结果还是 null => false

<=>使用这个比较相等运算,就可以处理null的比较!!

null <=> null => true

复习一下

分页查询: limit

很多地方都能见到

image-20230906111634377

一共这么多数据,全都显式出来,一方面,用户看不过来,另一方面对于系统压力也比较大

limit限制查询结果是几个~~
语法:

    -- 起始下标为 0 
    -- 从 0 开始,筛选 n 条结果         
    select ... from 表名 [where ...] [order by ...] limit n; 

    -- 从 s 开始,筛选 n 条结果 
    select ... from 表名 [where ...] [order by ...] limit s, n; 

    -- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用 
    select ... from 表名 [where ...] [order by ...] limit n offset s; 

limit 3 offset 6; 等价于limit 6, 3; (不太推荐这么写)

update

update 表名 set 列名=, 列名=.... where 条件;
update exam_result set math = 80 where name = '孙悟空’;
update exam_result set math = 60, chinese = 70 where name = '曹孟德’;
update exam_result set math = math + 30 order by chinese + math + English asc limit 3;

不写任何条件,修改就是针对所有行进行的!!

update exam_result set chinese = chinese / 2;

update操作非常危险!!

  1. 撤回不了

  2. 测试只能测试个大概.有可能你的bug是一个小概率触发的情况

delete

delete删除记录(行)

delete from 表名 where 条件;

order by / limit…

delete from exam_result where name like '孙%';

把条件匹配出来的结果,都删掉了!!!

delete from exam_result;

不写where 也没有limit就是全部了!!!

这个操作基本相当于删表(drop table)

delete from表还在,里面的数据没了.drop table表和数据都没了.

truncate也能清空表的内容,和delete from差不多.delete from是一条一条删,删的慢.truncate,直接一下就删没了…

如果某个sql语句执行时间很长,随时可以按ctrl + c取消

insert into 表名…

select from 表名…

update 表名…

delete from 表名…

关键字和表名之间,使用的这个介词不一样!!!~~这其实是一个比较糟糕的设计!!

接口设计风格的不一致性~~会提升使用成本,提升出错概率

C++这里做的更好.C++标准库里面统一都是使用 size()

std::array新式数组,都是符合上述的规范要求的~~

不仅仅是 size,各种操作,都是统一风格~~

数据库约束

约束,就是数据库针对里面的数据能写啥,给出的一组““检验规则”

这样的约束,可以是程序猿人工来保证,也可以是程序自动保证。

在程序猿里,谈到人,就意味着“不靠谱"(和计算机相比)

计算机的存储能力,远远超过人脑的,纪律性,也是远远超过人脑的

约束,就是为了提高效率,提高准确性,让数据库这个软件集成的一个针对数据校验的功能

约束类型

  • NOT NULL => 当前内容不为空,必填项

  • UNIQUE => 让列的值是唯一的(不和别的行重复) ~~如学号,手机号,身份证号

  • DEFAULT => 列没被赋值时的默认值

  • PRIMARY KEY => 主键 ,与NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。

  • FOREIGN KEY => 外键=>保证一个表中的数据匹配另一个表中的值的参照完整性。

  • CHECK => 在mysql5版本中,不支持~~写了不会报错,但是没有实际效果,这个可以不学

image-20230906135521181

给一个现有的表加约束,也可以

~~比较麻烦, 使用alter table语句,不过用起来麻烦(支持的功能多),很少会使用

1.not null

image-20230906140615879

2.unique

插入/修改数据的时候,会先查询,先看看数据是否已经存在.如果不存在,就能够插入/修改成功.如果存在,则插入/修改失败!!

image-20230906141515161

Map 的每个键值对,就相当于一个条目entry

数据库怎么知道的1存在?其实是在插入之前先查询了下~~(只不过查询操作,咱们感知不到) => 因此,这里是多了个查找数据的成本.

本质上是 程序运行效率 VS 程序猿开发效率

开发效率高了,加班就少了…开发效率低,干活干的慢,就得加班.从老板角度看,提高运行效率,节省的是买机器的成本(少数),提高开发效率,节省的是雇佣程序猿的成本(占大头)

Java之所以能够火起来,很大程度就是Java比CPP 开发效率更高(运行效率降低了)Python,PHP,Go也是在追求开发效率,而没过多关注运行效率

3.default

default~~设置默认值

默认值是在insert 指定列插入的时候,其他未被指定到的列就是按照默认值来填充~~

image-20230906143421826

4.primary key

主键,一条记录 在表中的"身份标识" ~~手机号码,身份证号码,学号…

也是要求唯一.并且不能为空~~

主键 = unique + not null

mysql要求一个表里,只能有一个主键

~~创建主键的时候,可以使用一个列作为主键

~~也可以使用多个列作为主键(复合主键),很少见,可以不学

image-20230906144312019

提问:如何给这个记录安排一个主键呢?

mysqI 自身只是能够检查是否重复.设置的时候还是靠我们自己来设置,此处,有很多办法.mysqI提供了一个简单粗暴的做法,自增主键~~ 由MySQL自动分配,分到到的是一个唯一值

常配搭自增长auto_increment来使用,换句话说,使用auto_increment的当前这一列就是自增主键

image-20230906145711879

给自增主键插入数据的时候,可以手动指定一个值,也可以让 mysql自己分配.如果让mysql自己分配,就在insert语句的时候,把id设为null 即可了!

image-20230906150109078

本质:mysql 给每个表维护了一个全局变量.每次分配一个id,就全局变量自增.下次分配接着上次的继续分配…

当前自增主键,就只需要用一个变量,记录序号的最大值就行了.每次都在这个基础上+1就好.
常配搭自增长auto_increment来使用,换句话说,使用auto_increment的当前这一列就是自增主键

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/979071.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI时代:探索机器学习与深度学习的融合之旅

文章目录 1. 机器学习和深度学习简介1.1 机器学习1.2 深度学习 2. 为什么融合是必要的&#xff1f;2.1 数据增强2.2 模型融合 3. 深入分析&#xff1a;案例研究3.1 传统机器学习方法3.2 深度学习方法3.3 融合方法 4. 未来展望结论 &#x1f389;欢迎来到AIGC人工智能专栏~AI时代…

【力扣每日一题】2023.9.6 最深叶节点的最近公共祖先

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一棵二叉树&#xff0c;让我们找出所有最深叶子节点的最近公共祖先。 我们一步一步剖析&#xff0c;我们先找出最深叶子节点&…

SpringBoot Admin监控平台《一》平台搭建及基础介绍

一、SpringBoot Admin简介 1.1.简介 Spring Boot Admin是一个管理和监控Spring Boot应用程序的开源项目&#xff0c;在对单一应用服务监控的同时也提供了集群监控方案&#xff0c;支持通过eureka、consul、zookeeper等注册中心的方式实现多服务监控与管理。Spring Boot Admin…

npm修改为国内镜像

npm config get registry 查看下载地址&#xff0c;默认是https://registry.npmjs.org/ 这是国外的地址&#xff0c;npm下载很慢 npm config set registry https://registry.npmmirror.com/ 使用此指令&#xff0c;修改为淘宝镜像&#xff0c;输入指令后检查是否修改成功 …

02-Tomcat打破双亲委派机制

Tomcat 如果使用默认的双亲委派类加载机制行不行&#xff1f; 我们思考一下&#xff1a;Tomcat是个web容器&#xff0c; 那么它要解决什么问题&#xff1a; 一个web容器可能需要部署两个应用程序&#xff0c;不同的应用程序可能会依赖同一个第三方类库的不同版本&#xff0c;…

配电网智能软开关(sop)规划模型matlab

目录 1 主要内容 2 部分程序 3 程序结果 1 主要内容 该程序参考文献《基于改进灵敏度分析的有源配电网智能软开关优化配置》&#xff0c;采用二阶锥算法&#xff0c;以改进的IEEE33节点配电系统模型作为分析对象&#xff0c;以联络开关位置作为sop安装备选位置&#xff0c;以…

最适合运动的耳机类型是什么、最适合运动的耳机推荐

运动和音乐天生就是绝佳的组合&#xff0c;因此对于许多运动爱好者来说&#xff0c;耳机一直都是必备的装备。通过音乐&#xff0c;我们可以带着节奏感去探索世界&#xff0c;让我们的运动过程更加有动力。 一款优秀的运动耳机需要具备舒适的佩戴感、稳固性和防水性能。作为一位…

实践和项目:解决实际问题时,选择合适的数据结构和算法

文章目录 选择合适的数据结构数组链表栈队列树图哈希表 选择合适的算法实践和项目 &#x1f389;欢迎来到数据结构学习专栏~实践和项目&#xff1a;解决实际问题时&#xff0c;选择合适的数据结构和算法 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&#xff1a;IT…

水处理行业污水处理厂电能质量监测与治理系统解决方案-安科瑞黄安南

摘要&#xff1a;在水处理行业供配电系统中&#xff0c;涉及曝气风机、提升泵、污泥脱水设备等感性负荷设备&#xff0c;导致异步电动机产生较多无功功率和大量的谐波&#xff0c;使部分设备表现出轻载或不满载运行状况降低功率因数&#xff0c;以及谐波对配电系统、负载产生较…

leetcode 234. 回文链表

2023.9.5 本题先将链表的节点值移到数组中&#xff0c;再用双指针去判断该数组是否为回文的即可。 代码如下&#xff1a; /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* …

ST表(转载自其它博主)

文章目录 一、简介二、Leetcode题目补充1. 2023/9/6 更新 一、简介 ST表&#xff1a;https://zhuanlan.zhihu.com/p/123360481 二、Leetcode题目补充 1. 2023/9/6 更新 239. 滑动窗口最大值 class Solution {public int[] maxSlidingWindow(int[] nums, int k) {//记录数…

vue3项目,点击分页器,列表接口请求两次的问题

接手别人做的项目&#xff0c;出现了一个分页器bug&#xff0c;vue3element plus&#xff0c;记录一下。 点击分页器&#xff0c;却出现了调用两次列表接口的情况&#xff0c;并且第二次请求&#xff0c;分页器的pageNum自动变成1&#xff0c;这样就导致了分页器bug&#xff0…

Git 命令行查看仓库信息

目录 查看系统config ​编辑查看当前用户&#xff08;global&#xff09;配置 查看当前仓库配置信息 查看系统config git config --system --list 1 查看当前用户&#xff08;global&#xff09;配置 git config --global --list 1 查到的是email , name 等ssl签名信息&a…

不再产生火花:光耦合器继电器如何确保您的电路安全

近年来&#xff0c;对电子设备和电路的需求激增&#xff0c;推动了对更安全、更可靠的组件的需求。确保电路安全的关键元件之一是光耦继电器。这些不起眼的设备在保护电路和防止潜在危险情况&#xff08;例如火花和电气过载&#xff09;方面发挥着重要作用。 什么是光耦继电器…

Zoom正式发布类ChatGPT产品—AI Companion

9月6日&#xff0c;全球视频会议领导者Zoom在官网宣布&#xff0c;正式发布生成式AI助手——AI Companion。 AI Companion提供了与ChatGPT类似的功能&#xff0c;包括根据文本对话起草各种内容&#xff0c;自动生成会议摘要&#xff0c;自动回答会议相关问题等&#xff0c;以帮…

74HC138 , 38译码器

简介 74HC138D 是一种三通道输入、八通道输出译码器&#xff0c;主要应用于消费类电子产品

PMD 检查java代码:未使用的赋值(UnusedAssignment )

https://docs.pmd-code.org/latest/pmd_rules_java_bestpractices.html#unusedassignment 对一个变量赋了值&#xff0c;但这个值在被覆盖前从来没有用到&#xff0c;或者代码运行超出变量的作用范围还没有用到&#xff0c;就认为是未被使用的赋值。包含下面的情况&#xff1a…

一个产品级MCU菜单框架设计

分享一个用单色屏做的菜单框架。代码托管在github&#xff1a; https://github.com/wujique/stm32f407/tree/sw_arch 1、概述 本处所说的菜单是用在128*64这种小屏幕的菜单&#xff0c;例如下面这种&#xff0c;不是彩屏上的GUI。 2、菜单框架设计 作为一个底层驱动工程师&a…

Hadoop的分布式文件存储系统HDFS组件的使用

Hadoop的第一个核心组件&#xff1a;HDFS&#xff08;分布式文件存储系统&#xff09; 一、HDFS的组成1、NameNode2、DataNode3、SecondaryNameNode4、客户端&#xff1a;命令行/Java API 二、HDFS的基本使用1、命令行操作2、Java API操作 三、HDFS的工作流程问题&#xff08;H…

递归算法学习——N皇后问题,单词搜索

目录 ​编辑 一&#xff0c;N皇后问题 1.题意 2.解释 3.题目接口 4.解题思路及代码 二&#xff0c;单词搜索 1.题意 2.解释 3.题目接口 4.思路及代码 一&#xff0c;N皇后问题 1.题意 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上…