初学MySQL基础知识笔记--02
博客地址:http://www.cnblogs.com/yudanqu/
查询部分
1> 查询数据中所有数据:select * from 表名
2> 查询数据中某项的数据:eg:select id,name from students;
3> 消除重复行:eg:select distinct gender from students;
(指删除gender中重复的所在行)
*注:eg:select distinct id,gender from students;
则需要两行都重复才不显示,例如id均不同,则全部显示。
Select * from 表名 where 条件;
- 比较运算符:等于=,大于>,大于等于>=,小于<,小于等于<=,不等于!=或<>
- 逻辑运算符:and,or,not
- 模糊查询:like,%表示任意多个任意字符,_表示任意一个字符
- 范围查询:in表示在一个不连续的范围内查询,范围放在in()括号里面
eg:Between min and max表示在最小和最大之间的范围
(当一句中有多个and,那么离between最近的and是和他一起的,剩下的才是逻辑与)
- 空判断:null与‘’:null为空,不占内存,判空为is null。‘’是指空字符串,要指向空间。
- 优先级:由高到低:小括号,not,比较运算符,逻辑运算符。
and比or先运算如果同时出现并希望先算or,要加上小括号。
聚合(5个聚合函数)
-
count(*):计算总行数,括号中写*和列名结果是相同的
eg:select count(*) from students;//查询学生人数
-
max(列):表示求此列的最大值
eg:select max(id) from students;//查询编号最大值
-
min(列):表示求此列的最小值
-
sum(列):求和,此时要求数据类型
-
avg(列):求此列的平均值
借助聚合得到查询具体内容(子查询):
eg:select * from students where id=(select min(id) from students where isDelete=0);
分组
语法:select 列名 from 表名 group by 列名
eg:select gender,count(*) from students group by gender;
//根据性别分组表示出分别有多少人
分组后的数据筛选
Where and having:where是对原始集进行筛选,而having是对结果集分组后进行筛选。
语法:select 列1,列2,聚合… from 表名 group by 列1,列2,列3… having 列1,…聚合…
eg:select gender,count(*) from students group by gender having gender=0;
select gender,count(*)as rs from students group by gender having rs>2;(rs是对count(*)起的别名)
排序
Order by 列1 asc|desc 列2 asc|desc
(列后面不写则默认从小到大排列)
1. asc升序,小到大
2. desc降序,由大到小
(有多个列,若前面的列同样大,则继续比较后面的列)
分页
语法:select * from 表名
limit start,count
(从start开始,获取count条数据)
做分页:limit n*m,m
博客地址:http://www.cnblogs.com/yudanqu/
转载请注明来源