一、查询所有字段
select * from 表名;
select 字段1,字段2,字段3... from 表名;
二、查询指定字段
select 字段1,字段2... from 表名;(指定字段从表中全部字段字段——字段1,字段2,字段3...选取)
三、where条件查询
select 字段1,字段2,字段3... from 表名 where 条件表达式;
SELECT * FROM t_student WHERE id=1;
SELECT * FROM t_student WHERE age<20;
四、带in关键字的查询
select 字段1,字段2,字段3... from 表名 where 字段p (not)in (元素1,元素2,元素3...);
从表中所有数据中查询字段p值为in中元素的数据,类似于:
SELECT * FROM t_student WHERE age IN (20,23)查询的结果与
SELECT * FROM t_student WHERE age=20 + SELECT * FROM t_student WHERE age=23一致
五、带between and 的范围查询
SELECT * FROM t_student WHERE 字段 (not)between 取值1 and 取值2;
六、带like的模糊查询
SELECT * FROM t_student WHERE 字段 (not)like '字符串';
“%”代表任意字符
“_”代表单个字符,二者也可混合用
SELECT * FROM t_student WHERE stuName like '张三'; 查stuName=张三的数据
SELECT * FROM t_student WHERE stuName like '张三%'; 查stuName以张三开头的数据
SELECT * FROM t_student WHERE stuName like '%张三%'; 查stuName包含”张三“二字开头的数据
SELECT * FROM t_student WHERE stuName like '___'; 查stuName三个字的数据
SELECT * FROM t_student WHERE stuName LIKE '%__三'; 查stuName末字为三,前有两字的数据
七、空值查询
SELECT * FROM t_student WHERE 字段 is (not)null;
八、带and 的多条件查询
SELECT * FROM t_student WHERE 字段1=元素1 and 字段2 = 元素2 and...;
九、带 or 的多条件查询
SELECT * FROM t_student WHERE 字段1=元素1 or 字段2 = 元素2 or...;
十、DISTINCT去重复查询
SELECT DISTINCT gradeName FROM t_student;
十一、对查询结果排序
SELECT * FROM t_student ORDER BY age ASC;默认按age从小到大升序查询
SELECT * FROM t_student ORDER BY age DESC;按降序查询
十二、GROUP BY分组查询
GROUP BY 属性名 [HAVING 条件表达式][WITH ROLLUP]
1.单独使用,毫无意义(在图形化工具SQLyog中报错)
2.与GROUP_CONCAT()函数一起使用
SELECT gradeName,GROUP_CONCAT(stuName) FROM t_student GROUP BY gradeName;
SELECT sex,GROUP_CONCAT(stuName) FROM t_student GROUP BY sex;
3.与聚合函数一起使用
SELECT sex,COUNT(stuName) FROM t_student GROUP BY sex;根据sex分组查询stuName的总数
4.与HAVING一起使用(限制输出的结果)
SELECT sex,COUNT(stuName) FROM t_student GROUP BY sex HAVING COUNT(stuName)>3;
根据sex分组查询stuName的总数大于3的数据
5.与WITH ROLLUP一起使用(最后加入一个总和行)
SELECT gradeName,COUNT(stuName) FROM t_student GROUP BY gradeName WITH ROLLUP;按gradeName分组查询stuName的个数,并在最后一行列出总数
SELECT gradeName,GROUP_CONCAT(stuName) FROM t_student GROUP BY gradeName WITH ROLLUP;按gradeName分组查询stuName的文本值,并在最后一行列出所有的stuName的文本值
十三、LIMIT分页查询
SELECT 字段1,字段2... FROM 表名 LIMIT 初始位置,记录数;
SELECT * FROM t_student LIMIT 0,5;初始位置代表表中的第一条数据,往往从0开始,记录数代表总共查询的结果数