第二篇:MySQL中SELECT查询语句总结

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_36279318/article/details/84892570

mysql学习网址

一、数据查询

语法:

SELECT
	< ALL | DISTINCT > 字段1、字段2、字段n >
FROM
	< 表名 >
WHERE
	< 条件表达式 >
GROUP BY
	< 列名 >
HAVING
	< 条件表达式 >
ORDER BY
	< 列名 > < ASC | DESC >

1.查询指定列、多个列、所有列、不同行及限制查询行数

SELECT 字段1 FROM tb_name

SELECT 字段1..字段n FROM tb_name

SELECT * FROM tb_name

#查询字段值不重复
SELECT DISTINCT 字段1 FROM tb_name

#限制查询条数、并只查询前5条记录
SELECT * FROM tb_name LIMIT 5

#从第二条开始查询,并且只查询5条记录

#从第二条开始查询,并且只查询5条记录
SELECT * FROM tb_name LIMIT 1,5 或
SELECT * FROM tb_name LIMIT 5 OFFSET 1

2.将查询出来的数据进行排序

 #查询所有数据并从大到小排序
 SELECT * FROM tb_name ORDER BY 字段1 DESC

 #查询所有数据并从大到小排序,并获取最大值
 SELECT * FROM tb_name ORDER BY 字段1 DESC LIMIT 1

 #按多列进行排序,如果字段1的值不重复,字段2排序才有效
 SELECT * FROM tb_name ORDER BY 字段1 字段2 DESC

3.查询满足条件的数据

数据库表一般包含大量的数据,很少需要查询表的所有行,通常只需要根据特定条件查询所需数据即可!

常用的查询条件
查询条件   谓词
比较 =, >, <,>=,<=,!=,<>,!>,!<
确定范围 BETWEEN AND, NOT BETWEEN AND
确定集合 IN  ,NOT IN
字符匹配 LIKE  ,NOT LIKE
空值 IS NULL ,IS NOT NULL
多重条件 AND,OR,NOT

确定范围的用法

01.查询年龄在20-23岁(包括20岁和23岁)之间同学的姓名、系别、和年龄

SELECT Sname,Sdept,Sage FROM Student WHERE Sage BETWEEN 20 AND 23

02.查询年龄不在20-23岁(包括20岁和23岁)之间同学的姓名、系别、和年龄

SELECT Sname,Sdept,Sage FROM Student WHERE Sage NOT BETWEEN 20 AND 23

确定集合的用法

01.查询计算机科学系(CS),数学系(MA)和信息系(IS)学生的姓名和性别

SELECT Sname,Ssex FROM Student WHERE Sdept IN ('CS','MA','IS')

 字符匹配的用法

一般语法格式如下:

SELECT 字段1, 字段2,...字段n
FROM table_name
WHERE 字段1 LIKE <'匹配字符'> [AND | OR] 字段n = 'value'

%(百分号)通配符:表示任意长度的字符。

_ (下划线)通配符: 表示任意单个字符。

01.查询所有姓王的学生姓名、学号、性别

SELECT Sname,Sno,Ssex FROM Student WHERE Sname LIKE '王%'

02.查询所有姓“欧阳”且全名为三个汉子的学生的姓名

SELECT Sname FROM Student WHERE Sname LIKE '欧阳_'

03.查询第二个 字为“阳”的学生的姓名和学号

SELECT Sname ,Sno FROM Student WHERE Sname LIKE '_阳%'

4.聚合函数的使用

为了方便用户,增强查询功能,SQL提供了许多聚集函数

聚集函数
函数 说明
COUNT(*) 统计行数
COUNT([ DISTINCT | ALL ] <列名>) 统计一列中值得个数
SUM([ DISTINCT | ALL ] <列名>) 计算一列值得总和
AVG([ DISTINCT | ALL ] <列名>) 计算一列值得平均值
MAX([ DISTINCT | ALL ] <列名>) 计算一列值得最大值
MIN([ DISTINCT | ALL ] <列名>) 计算一列值得最小值

注意: WHERE字句是不能用聚合函数作为条件表达式的。聚合函数只能用于SELECT字句和GROUP BY中的HAVING字句。

5.GROUP BY字句使用

一般GROUP BY配合聚合函数及HAVING字句一起使用

01.查询平均成绩大于等于90分的学生学号和平均成绩。

SELECT
	Sno,
	AVG(Grade)
FROM

GROUP BY
	Sno
HAVING
	AVG(Grade) >= 90

二、Mysql left join,right join,inner join的效率比较

猜你喜欢

转载自blog.csdn.net/weixin_36279318/article/details/84892570