MySQL学习(6) - 单表查询

学习目标

  • 掌握简单查询,会使用SELECT查询所有字段和指定的字段
  • 掌握按条件查询,会使用运算符及不同的关键字进行查询
  • 掌握高级查询,会使用聚合函数查询、分组查询等
  • 学会为表和字段起别名

简单查询

SELECT语句

基本语法:

SELECT [DISTINCT] * | {字段名1,字段名2....}
FROM 表名
[WHERE 条件表达式1]
[GROUP BY 字段名 [HAVING 条件表达式2]]
[ORDER BY 字段名 [ASC|DESC]]
[LIMIT [OFFSET] 记录数]  

各个子句的含义:
(1) SELECT [DISTINCT] * | {字段名1,字段名2…}:表示要查询的字段;*表示所有的字段;DISTINCT是看可选参数,用来去除重复数据。
(2)FROM 表名:指定所要查询的表。
(3)WHERE 条件表达式1:where是可选参数,用来指定查询条件。
(4)GROUP BY 字段名 [HAVING 条件表达式2]:GROUP BY是可选参数,用来将查询结果按照指定结果进行分组;HAVING 条件表达式2:对分组后的结果进行过滤。
(5)ORDER BY 字段名 [ASC|DESC]:对查询结果按照指定字段进行排序,默认为升序,ASC表示升序,DESC表示降序。
(6)LIMIT [OFFSET] 记录数:LIMIT用来限制查询结果的数量,OFFSET表示偏移量,偏移量为0,从查询结果的第一条开始记录;记录数表示返回查询记录的条数。

查询所有字段

SELECT * FROM class

结果显示:
在这里插入图片描述

查询某个特定字段

SELECT id,stu_name FROM class

结果显示:
在这里插入图片描述

按条件查询

  • 带关系运算符的查询
    基本语法:
SELECT * FROM student WHERE id=2
SELECT * FROM student WHERE grade > 80

结果显示:
在这里插入图片描述
在这里插入图片描述

带IN的查询

查询stu_name在 (‘zhang’,‘zhao’,‘tong’)中的所有记录;不存在:使用not in

SELECT * FROM student WHERE stu_name IN ('zhang','zhao','tong')

结果:
在这里插入图片描述

带BETWEEN_AND的查询

判断某个字段的值是否在指定的范围之内。
查询id在1和2之间的所有记录不在某个范围内,使用NOT BETWEEN…AND…

SELECT * FROM student WHERE id BETWEEN 1 AND 2

结果:
在这里插入图片描述

空值查询

SELECT * FROM student WHERE id IS NOT NULL
SELECT * FROM student WHERE id NOT NULL
  • 带like的查询
    使用like对字段进行模糊匹配
SELECT * FROM student WHERE id (NOT) LIKE "匹配的字符串"

通配符

%:c% 匹配以c开头的字符串;c%g 以c开头以g结尾
_:只能匹配单个字符;w_o 以w开头o结尾且中间只有一个字符

带and和or的关键字

and:同时满足条件一和条件二

SELECT * FROM student WHERE id=1 AND grade=90

在这里插入图片描述
or:满足条件一或条件二

SELECT * FROM student WHERE id=1 or id=3

在这里插入图片描述

复杂查询

聚合函数

统计某个字段的最大值、最小值、平均值等的函数。
COUNT():返回某列的行数
SUM():返回某列的和
AVG():返回某列的平均值
MAX()\MIN():返回某列的最大最小值

  • 语法格式:
SELECT 函数(*) FROM 表名

对结果进行排序

  • 语法格式
# 对成绩按照从大到小排列
SELECT * FROM student ORDER BY grade DESC

结果:
在这里插入图片描述

分组查询

按照某个字段或者多个字段中的值进行分许,值相同的为一组,通常与聚合函数一起使用才有意义。
计算男女生人数

SELECT count(*),gender FROM student GROUP BY gender

在这里插入图片描述

为表和字段取别名

SELECT * FROM student AS a WHERE a.id=1

SELECT id as stu_id,stu_name FROM student AS a WHERE a.id=1
# 查询结果中id变为stu_id,但是原表中不变

结果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值