一、MySQL基础(CRUD)
1.insert语句
Insertinto 表名 (字段1, 字段2, ……) values (值1, 值2,……)
*插入多条数据
Insertinto 表名 (字段1, 字段2, ……) values (值1, 值2,……), (值1, 值2, ……), (值1, 值2, ……)……
2.select语句
Select字段 from 表名 [where 条件] [limit 数量] [offset 数量]
Where条件
Limit返回数量
Offset跳过多少条记录。也就是从第多少条数据开始查询
3.where语句
Select字段from 表名1 [, 表名2……] [where condition1 [and/or condition2 ……]……] [group by 字段/表达式]
4.update语句
Update表名 set 字段1=值1/表达式1, 字段2=值2, …… [where ……]
5.delete语句
Deletefrom 表名 [where 条件1]
- Delete、drop、truncate区别
- 1.delete、truncate只删除数据,drop将数据和结构一起删除
- 2.delete 删除以后未提交可以回滚,truncate和drop操作之后立即生效,不能回滚
- 3.执行速度:drop>truncate>delete
-
MySQL关键字
- 关键字——模糊查询
Select字段 from 表名 where 字段 like 值
*‘%’和‘_’使用规则
1.‘%a’ 以a结尾的数据
2.‘a%’ 以a开头的数据
3..’%a%’包含a的数据
4.‘_a_’共3位第二位是a的数据
5.’_a’共2位以a结尾的数据
6.‘a_’共2位以a开头的数据
2.union关键字——查询多张表结果组合进一个集合中
Select字段1 from 表名1 [where 条件1]
Union[All]
Select字段1 from 表名1 [where 条件2]
- 注意被查询字段一致
- Union关键字默认删除重复结果,union all保留重复结果
- 关键字——给查询结果排序
Select字段1 from where 条件1 order by 字段n [ASC/DESC]
- ASC升序(默认)
- DESC 降序
- 关键字——对查询结果进行分组
Select字段1 [count(*)] from 表名 [where 条件1] group by [字段n]
- 查询结果根据字段n分组(一致为一组)
- Count(*)可以统计每组数量
- 关键字
1.Innerjoin 内连接,两表交集
Select 表1.字段1, 表2.字段2 from 表1 inner join 表2 on 条件 表1.字段3 = 表2.字段3 [where 条件1]
2.leftjoin 左外连接,左表全部符合条件的加左右交集
Select左表.字段1, 右表.字段2 from 左表 leftjoin 右表 on 左表.字段3 = 右表.字段4 [where 条件1]
3.rightjoin 右外连接,右表全部符合条件的加左右交接
同理
三、特殊值处理
1.null值处理
Null值处理时不能使用=或!=,null与任何值比较返回的结果都为null
所以采用以下运算符:
Isnull 当字段为null时返回true
Isnot null 当字段不为null时返回true
<=>比较操作符,当比较的两个值相等或者都为null时返回true
2.正则表达式
1.‘^’ 匹配字符串开始位置。例:^a表示所有以a开头的字符串
2.‘$’ 匹配字符串结束位置。例:a&表示所有以结尾的字符串
3.‘.’ 匹配除‘\n’之外的任何单个字符串。要匹配‘\n’在内的任何字符串,使用‘[.\n]’
4.‘[…]’字符集合。匹配所包含的任意一个字符(当个字符不是字符串)。例‘[a,b,c]’可以匹配“plain”中的‘a’
5.‘[^…]’匹配未包含的任意字符。例:[a,b,c]可以匹配“plain”中的‘p’
6.’p1|p2|p3’匹配p1、p2或p3。例如’z|food’可以匹配‘z’或‘food’。’(z|f)ood’则匹配‘zood’或‘food’
7.‘*’匹配前面子表达式零次或多次。例如,‘zo*’能匹配“z”以及“zoo”。
8.’+’匹配前面的子表达式一次或多次。例如,‘zo’能匹配“zo”以及“zoo”,但不能能匹配“z”
9.’{n}’匹配确定的n次。例如,‘o{2}’不能匹配“Bob”中的’o’,但是能匹配“food”中的两个o
10.{n,m}最少匹配n次,最多匹配m次
转载请注明:XAMPP中文组官网 » MySQL基础_MySQL常用语法