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

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的效率比较

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值