数据库-MySQL-单表的操作-查询

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;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值