介绍
C 创建
U 修改
R 查询
D 删除
增
- 增加数据
insert into 表名 values(列的值);
这里的一个括号就对应一条记录
注意事项
- 要求
values
后面()中的字段的个数和表头约定的列数以及每个列的类型要匹配 - 在SQL中表示字符串可是使用
''
,和可以使用""
. - 如果一列是
datetime
,该如何插入那?
- 通过指定格式的字符串来插入一个指定的时间
- 通过now()函数来插入一个当前系统的时间
insert
进行插入的时候,就可以只插入其中的某一列或者某几个列,此时其它的列将采用默认值- 如果想要插入中文,需要先修改配置(MySQL默认的编码方式是拉丁文)如何配置编码方式:
- 先看看当前数据库的编码方式
show variables 'character%'
- 通过修改MySQL配置文件的方式来处理
values后面的每一个()都对应到一行,可以一次性带有多个(),多个()之间使用逗号隔开
一次插入N条记录的速度,比一次插入一条N次插入快很多倍
查
查找语句是SQL中最核心也最复杂的操作
- 最基础的查找,全列查找,直接把一个表中所有的列和行都查询出来
select * from 表名;
*就叫做"通配符",表示一个表的所有列,把一个表里面的所有行和列都查找到,查找的结果是一个"临时表",之前所说的数据库中的表,都是在硬盘上的,而此处查询的临时表不是在硬盘上,而是在内存中,随着进行了输出之后,数据就被释放了
- 指定列查询,值查询自己关注的列
select 列名,列名....from 表名;
这个查询结果只是一个临时表(在客户端内存临时保存一个数据表,随着打印的进行,内存就释放了)临时表的结果对于数据库的原始数据没有任何影响
- 指定查询字段为表达式,在查询的时候同时进行一些运算操作(列和列之间)
这里的查询结果变了,只是数据库服务器针对查询的结果进行了加工,把加工后的数据作为临时表显示出来
- 查询字段指定别名,相当于查询结果的临时表,指定新的列名
- 针对查询结果去重
distinct
如果针对多个列来进行去重,就得这多个列的值都相同的时候才视为重复
- 排序针对查询结果(临时表)进行排序(不会影响到数据库服务器上的原始数据)
select 列名... from 表名 order by 列名 asc/desc;
asc
是升序
向数据库查询结果,如果不去指定排序,此时查询结果的顺序是不可预期(写代码的时候不能依赖默认的顺序)
select
中的条件查询
在select
后面加一个where
字句,后面跟上一个具体的筛选条件
select 列名 from 表名 where 条件;
查询结果会把满足条件的记录保留,把不满足条件的记录给过滤掉
=
表示相等,而不是赋值了
<=>
也是比较相等,用法和=
基本一致,只是使用<=>
比较空值结果是真
like
能根据结果进行"模糊匹配"
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0rvJ1MBK-1662693789052)(/Users/zhangcu/Library/Application Support/typora-user-images/image-20220825231556628.png)]
like
,搭配通配符来使用,只要对方的字符串符合你此处描述的一个形式就可以
%
代表任意个任意字符
_
代表任意一个字符
模糊匹配其实就相当于描述了一个规则,但凡是符合这个规则的字符串都会被筛选出来(借助通配符来描述的)
- 分页查询
SQL中使用limit
来实现分页查询
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TsiSaNUz-1662693789052)(/Users/zhangcu/Library/Application Support/typora-user-images/image-20220825233613274.png)]
limit
同样可以搭配使用,以及order by
等操作来组合使用
改
- 修改操作
update 表名 set 列名 = 值, 列名 = 值 where 条件;
update
是会修改数据库服务器上的原始数据
主要是让大家能够意识到数据的重要性,数据绝非儿戏一定要用认真负责的态度去对待
可以使用show warnings
来看到这里警告的详细内容
删
- 使用
delete
语句进行删除
delete from 表名 where 条件;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lFx0Zn9A-1662693789053)(/Users/zhangcu/Library/Application Support/typora-user-images/image-20220825235425598.png)]
- 主键约束
相当于数据的唯一标识身份,类似于身份证号码/手机号码,这个是日常开发的时候最常用的约束,创建表的时候,很多时候都需要指定主键
对于一个表来说,只能有一个列被指定为主键
关于主键,最典型的用法,就是直接使用1,2,3,整数递增的方式来进行表示,MySQL里面对于这种递增的主键,是有内置支持的,称为"自增主键"
例如:
create table student(id int primary key auto_increment, name varchar(20));