内容摘自菜鸟教程,根据本人自身情况记录部分知识点。一来为了巩固所学过的知识,二来方便日后复习。
Mysql基础笔记三
Where子句
如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中。
where客运用于select,delete,update命令中。
可使用BINARY关键字来设定where子句的字符串是区分大小写的。
LIKE子句
Like子句中使用百分号%自来标识任意字符,若没有使用百分号%,Like子句与等号=效果一样。
语句:
select 字段1,字段2,…,字段n from 表名 where 字段m Like condition;
- ‘%a’:以a结尾的数据
- ‘a%’:以a开头的数据
- ‘%a%’:含有a的数据
- ‘a’:三位且中间位是a的数据
- ‘_a’:两位且以a结尾的数据
- ‘a_’:两位且以a开头的数据
%表示任意0个或多个字符,可匹配任意类型和长度的字符
_表示单个任意字符
[]表示括号内所列字符中的一个
[^]表示不再括号内多列之内的单个字符
注:查询内容包含通配符(以上符号)时,把特殊字符用"[]"括起即可
UNION操作符
用于连接两个以上的select语句的结果组合到一个结果集合中。多个select语句会删除重复的数据。
语法:
select a,b,c from tb1 [where condition] UNION [ALL/DISTINCT] select a,b,c from tb2 [where condiction]
all:返回所有结果集,包含重复数据
distinct:删除结果集中重复的数据
tips:UNION默认伸出重复数据。
Mysql 排序
排序使用 order by
语法:
select 字段1,字段2,...,字段n from table
order by 字段m [ASC/DESC] ,字段p [ASC/DESC],...
ASC升序,DESC降序,默认降序。
tips:
拼音排序:
- 若字符集使用gbk,直接使用order by排序
- 若字符集使用utf-8,先对字符进行转码再排序
select * from table order by convert(字段n using gbk)
Group by语句
根据一个或多个列队结果集进行分组。
在分组的列上可使用COUNT,SUM,AVG等函数。
语法:
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。
tips:
Where ,Group by,having的区别:
- where:用于出师表中筛选查询,在返回结果及之前起作用
- Group by:对select查询出来的结果集按照某个字段或者表达式进行分组
- 用于对where 和group by 查询出来的分组进行过滤,查出满足条件的分组结果,在返回结果集之后对查询结果进行的过滤操作。
执行顺序:
select—>where—>group by—>having—>order by
where 和 having:
①select s#,sage from Student where sage>15;
②select s#,sage fron Student having sage>15;
③select s# from Student having sage>15;
- where从数据表中的字段直接进行筛选
- having从筛选出来的的字段进行再筛选,故第③句将会报错
- ①②语句中,where和sage等效