CRUD 是 MySQL 核心操作,涵盖增删改查全流程。本文聚焦实战场景,拆解基础语法与避坑技巧,助力快速掌握数据操作核心,夯实数据库应用基础。
1.insert添加数据
语法:insert into 表名[字段1,...] values (,...)[(,...),...]
指定列插入
语法:insert into 表名[指定列] values (,...)[(,...),...]
将旧表的数据插入到新表中
语法:insert into 表名[...] select ...
注:
- 每次执行所有的SQL语句的时候都有网络开销
- 写入数据的时候也会有磁盘IO开销
- 每次执行一条SQL语句的时候都会开启一个事务,事务的开启和关闭都需要消耗系统资源
2. 修改数据库字符集
语法:alter table 表名 modify 字段名 字段类型 character set utf8mb4 collate utf8mb4_0900_ai_ci;
3. 查询
- 全列查询
语法:select * from 表名; -- 工作中慎用 ,一定要添加条件判断,否则一下几千万条数据加载出来会很占系统资源
- 指定列查询
语法:select 列名,列名,... from 表名;
- 别名
用关键字as来写,但是实际上工作中都用简写的方法,不用写as直接在表名后面写别名即可。
- 去重查询(关键字distinct)
语法:select distinct 列名 from 表名;
只有每一列都相同,MySql才认为他是重复数据。
- 排序(order by)
语法:在查询后面直接加 order by [要排序的字段] desc/asc 就行, mysql默认是asc的。
desc:降序
asc:升序
desc在这边是降序的,但是还能来了查看表结构。
-
在没有指定排序的时候,一般是随机按照某个字段来排序的。
-
NULL在排序中是最小的,比任何数都要小,包括负数

-
不论任何值和null运算结果都是null
-
null始终被判定为false
-
可以对多个字段进行排序,排序的优先级和插入的顺序有关系

-
条件查询(where关键字)

可以在表名后面添加条件,判断是否符合条件的查询。
但是=判断不了null,所以就需要用<=> 来判断是否是等于null了

- beween n1 on n2; -- 一个范围

查询英语成绩在60~70之间的数据
- in (...)
只查找在()里面的数据,只查找英语成绩为67和98的数据

- is null
判断是否为空
- is not null
判断是否不为空
- like(模糊匹配)
这里有两个选项%/_ ,%是指匹配大于等于0个字符的数据,_是只匹配只有一个字符的数据

- 逻辑运算符
and => && or => || not => !
-
当where条件使用了表达式的时候,那么必须要先把完整的表达式写到where中,不能用别名。
-
一条select语句的执行顺序
eg: select * from exam where name = '马超' order by english asc limit 0,3;
- 首先肯定是先执行from后面的表,先找到需要查询的是哪张表
- 工具where条件来过滤掉那些不需要的数据
- 看用户需要哪些字段
- 排序规则
- 要分几页,从第几行开始查询
- 分页查询
语法:limit n or limit s,n or limit n offset s
n:要分几页
s:从第几行开始分
limit和offset都是关键字
4.修改数据updata
语法:updata 表名 set 列名=...[,...,...] [where] ... [order by ...] [limit ...];
重点!!!
修改数据的时候一定要添加where,否则将这个字段的所有数据全部修改了,是很恐怖的!!!
5.删除delete
语法:delete from 表名 [where...] [order by...] [limit...]
