1.查询所有字段:
1. SELECT 字段 1,字段 2,字段 3...FROM 表名;
2. SELECT * FROM 表名;
eg:
SELECT id,stuName,age,sex,gradeName FROM t_student ;
SELECT * FROM t_student;
2.查询指定字段
SELECT 字段 1,字段 2,字段 3...FROM 表名;
eg:
SELECT stuName,gradeName FROM t_student;
3.Where 条件查询
SELECT 字段 1,字段 2,字段 3...FROM 表名 WHERE 条件表达式;
eg:
SELECT * FROM t_student WHERE id=1;
SELECT * FROM t_student WHERE age>22;
4.带 IN 关键字查
SELECT 字段 1,字段 2,字段 3...FROM 表名 WHERE 字段 [NOT] IN (元素 1,元素 2,元素 3);
eg:
SELECT * FROM t_student WHERE age IN (21,23);
SELECT * FROM t_student WHERE age NOT IN (21,23);
5.带 BETWEEN AND 的范围查询
SELECT 字段 1,字段 2,字段 3...FROM 表名 WHERE 字段 [NOT] BETWEEN 取值 1 AND 取值 2;
eg:
SELECT * FROM t_student WHERE age BETWEEN 21 AND 24;
SELECT * FROM t_student WHERE age NOT BETWEEN 21 AND 24;
6.带 LIKE 的模糊查询
SELECT 字段 1,字段 2,字段 3...FROM 表名 WHERE 字段 [NOT] LIKE ‘字符串’;
其中:
“%”代表任意字符;
“_” 代表单个字符;
eg:
SELECT * FROM t_student WHERE stuName LIKE '张三';
SELECT * FROM t_student WHERE stuName LIKE '张三%';
SELECT * FROM t_student WHERE stuName LIKE '张三__';
SELECT * FROM t_student WHERE stuName LIKE '%张三%';
7.空值查询:
SELECT 字段 1,字段 2,字段 3...FROM 表名 WHERE 字段 IS [NOT] NULL;
eg:
SELECT * FROM t_student WHERE sex IS NULL;
SELECT * FROM t_student WHERE sex IS NOT NULL;
8.带 AND 的多条件查询
SELECT 字段 1,字段 2...FROM 表名 WHERE 条件表达式 1 AND 条件表达式 2 [...AND 条件表达式 n]
eg:
SELECT * FROM t_student WHERE gradeName='一年级' AND age=23
9.带 OR 的多条件查询
SELECT 字段 1,字段 2...FROM 表名 WHERE 条件表达式 1 OR 条件表达式 2 [...OR 条件表达式 n]
eg:
SELECT * FROM t_student WHERE gradeName='一年级' OR age=23
10.DISTINCT 去重复查询
SELECT DISTINCT 字段名 FROM 表名;
eg:
SELECT DISTINCT gradeName FROM t_student;
11.对查询结果排序
SELECT 字段 1,字段 2...FROM 表名 ORDER BY 属性名 [ASC(升序)|DESC(降序)]
12.GROUP BY 分组查询
(1),单独使用(毫无意义);
(2),与 GROUP_CONCAT()函数一起使用;
eg:
SELECT gradeName,GROUP_CONCAT(stuName) FROM t_student GROUP BY gradeName;
GROUO_CONCAT()该函数功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果
CONCAT()函数用来将多个字符段连起来,不管是什么类型。
eg:concat(id,bookName);
(3)与聚合函数一起使用(关于聚合函数在后面有补充讲解)
eg:
SELECT gradeName,COUNT(stuName) FROM t_student GROUP BY gradeName;
(4).与 HAVING 一起使用(限制输出的结果)
SELECT gradeName,COUNT(stuName) FROM t_student GROUP BY gradeName HAVING COUNT(stuName)>3;
(5)与 WITH ROLLUP 一起使用(最后加入一个总和行)
eg:
SELECT gradeName,COUNT(stuName) FROM t_student GROUP BY gradeName WITH ROLLUP;
SELECT gradeName,GROUP_CONCAT(stuName) FROM t_student GROUP BY gradeName WITH ROLLUP;
13.LIMIT 分页查询
SELECT 字段 1,字段 2...FROM 表名 LIMIT 初始位置,记录数;
eg:
SELECT * FROM t_student LIMIT 0,5;
SELECT * FROM t_student LIMIT 5,5;
SELECT * FROM t_student LIMIT 10,5;
对后面的两个数据进行解释:
前一个数据0,5,10,他们表示的是 初始位置,即从第几行开始(从0开始),后一个数据5,5,5,都是5,表示的是记录数,即查询几条(行)数据,这里都是查询五条(行)数据。
14.使用聚合函数来查询
使用到的表:
(1).**COUNT()**函数用来统计记录的条数
eg:
SELECT COUNT(*) FROM t_grade;
SELECT COUNT(*) AS total FROM t_grade;
AS total ,AS是关键字,它的意思是另外起一个名字叫total
与 GOUPE BY 关键字一起使用:
eg:
SELECT stuName,COUNT(*) FROM t_grade GROUP BY stuName;
(2).**SUM()**函数是求和函数
SELECT stuName,SUM(score) FROM t_grade WHERE stuName="张三";
与 GOUPE BY 关键字一起使用
SELECT stuName,SUM(score) FROM t_grade GROUP BY stuName;
(3).**AVG()**函数是求平均值的函数
SELECT stuName,AVG(score) FROM t_grade WHERE stuName="张三";
与 GOUPE BY 关键字一起使用
SELECT stuName,AVG(score) FROM t_grade GROUP BY stuName;
(4).**MAX()**函数是求最大值的函数
SELECT stuName,course,MAX(score) FROM t_grade WHERE stuName="张三";
与 GOUPE BY 关键字一起使用
SELECT stuName,MAX(score) FROM t_grade GROUP BY stuName;
(5).**MIN()**函数是求最小值的函数
SELECT stuName,course,MIN(score) FROM t_grade WHERE stuName="张三";
与 GOUPE BY 关键字一起使用
SELECT stuName,MIN(score) FROM t_grade GROUP BY stuName;