内容正文:
7.1 MySQL数据查询与更新
---单表查询
数据库原理与应用技术--MySQL
同步精品课堂
河北科学技术出版社
教学目标
一
了解单表查询语句
教学目标
掌握使用ORDER BY 排序
掌握GROUP BY分组查询
掌握查询所有字段和指定字段的方法
掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。
教学重难点
二
教学难点
1、基本查询语句,使用不同方式进行查询
2、查询排序及分组查询
教学重点
使用聚合函数进行单表查询
教学难点
导入新课
三
讨论:
数据表中存储好数据中,我们可以查看数据表中的所有信息,若只需要查询满足条件的记录,应该如何操作?对查询到的结果如何进行分组?
新知讲授
四
⊙查询
查询操作用于从数据表中筛选出符合需求的数据,查询得到的结果集也是关系模式,按照表的形式组织并显示。查询的结果集通常不被存储,每次查询都会从数据表中提取数据,也可以进行计算、统计和分析等操作。
➽ 查询概述
➽ SELECT语句
基本语法形式如下:
SELECT <子句1> FROM <子句2> [WHERE <表达式1>]
[GROUP BY <子句3>] [HAVING <表达式2>] [ORDER BY <子句4>]
[LIMIT [<子句5>] [UNION <运算符>] ;
任务一
1
简单查询
新知讲授
四
⊙简单查询
简单查询是按照一定的条件在单个数据表上进行的数据查询。使用SELECT语句来实现对数据的查询。
➽ 简单查询概述
➽ SELECT语句
基本语法形式如下:
SELECT [ ALL | DISTINCT ] <目标表达式 > [, <目标表达式>][,....]
FROM <表或视图名> [, <表或视图名>] [,...] [ LIMIT n1 [,n2 ] ];
新知讲授
四
⊙简单查询
➽ 简单SELECT语句
说明:
1、ALL指定表示结果集的所有行,包括重复行,ALL是默认选项;
2、DISTINCT指定在结果集显示唯一行,用于消除重复行,空值被认为相等。ALL与DISTINCT不能同时使用;
3、LIMIT n1表示返回最前面的n1行数据,n1表示返回的行数;
4、LIMIT n1,n2表示从n1行开始,返回n2行数据。初始行从0开始。n1、n2必须是非负的整型常量;
5、目标表达式为结果集要查询的列,它可以是星号(*)、表达式、列表、变量等;
新知讲授
四
⊙简单查询
➽ 实例1:查询book表中的全部信息
MySQL语句如下:
SELECT * FROM book;
SELECT子句后面可以用星号(*)返回数据表中的所有列。
新知讲授
四
⊙简单查询
➽ 实例2:查询reader表中读者的专业信息
MySQL语句如下:
SELECT depa FROM reader;
从返回结果来看,得到的专业是重复的,若想返回的信息不重复,可以使用DISTINCT来消除取值重复的行。
新知讲授
四
⊙简单查询
➽ 实例3:查询borrow表中,读者号和罚款金额,罚款金额显示为原来的2倍。
MySQL语句如下:
SELECT readerid, penmoney*2 FROM borrow;
任务二
1
条件查询
新知讲授
四
⊙条件查询
简单查询是按照一定的条件在单个数据表上进行的数据查询。使用SELECT语句来实现对数据的查询。
➽ 条件查询概述
➽ WHERE 子句的语法格式
基本语法形式如下:
WHERE <条件表达式>;
新知讲授
四
⊙条件查询
➽ 条件表达式中的谓词
查询条件 运算符 说明 含义
比较运算符 = 等于 用于比较两个表达式的值,当两个表达式的值均不为空值(NULL)时,比较运算返回逻辑值TRUE(真)或FALSE(假)
<> 不等于
!= 不等于
< 小于
> 大于
<= 小于或等于
>= 大于或等于
新知讲授
四
⊙条件查询
➽ 条件表达式中的谓词
查询条件 运算符 说明 含义
逻辑运算符 NOT 非 对运算符右边表达式进行”反“操作
AND 与 运算符两边表达式的值均为真,结果才为真,否则为假;
OR 或 运算符两边表达式的值只要有一个为真,结果为真;
XOR 异或 运算符两边表达式的值不同为真,相同为假;
新知讲授
四
⊙条件查询
➽ 条件表达式中的谓词
查询条件 运算符 说明 含义
字符匹配 LIKE 等于 “_”代表任意一个字符,”%“代表任意多个字符;
区间 BETWEEN.....AND... 不等于 用来判断数据是否在BETWEEN.....AND...
指定的范围,包括边界值
包含 IN( ) 在列表中 如:WHERE 定价 IN(10,20,35)判断定价是否为10,20,35中的一个
NOT IN( ) 不在列表中
空值 IS NULL 空值 判断某字段是否为空值
IS NOT NULL 不为空
新知讲授
四
⊙条件查询
➽ 实例1:查询book表中“复旦大学出版社“和”吉林大学出版社“出版价格大于45的图书。
MySQL语句如下:
SELECT * FROM book WHERE (Pub=”复旦大学出版社”OR Pub=”吉林大学出版社”) AND Price>45;
新知讲授
四
⊙条件查询
➽ 实例2:查询book表中图书编号倒数第二位为1的图书的书号和书名。
MySQL语句如下:
SELECT Bookid ,Bookname FROM book WHERE Bookid LIKE “LIKE '%1_';
任务三
1
使用ORDER BY查询排序
新知讲授
四
⊙使用ORDER BY查询排序
使用SELECT语句进行查询时,如果用户需要对查询结果进行排序,可以通过ORDER BY子句实现。
➽ ORDER BY查询排序概述
➽ ORDER BY子句的语法格式
基本语法形式如下:
ORDER BY <列名| 表达式| 顺序号>[ASC|DESC],.....
新知讲授
四
⊙使用ORDER BY查询排序
说明:
1、ASC为升序,DESC为降序,系统默认为升序;
2、该子句可以根据一个或多个列进行排序,也可以根据表达式进行排序;
➽ 实例1:将book表中的记录按单价从高到低排序。
MySQL语句如下:
SELECT * FROM book ORDER BY Price DESC;
新知讲授
四
⊙使用ORDER BY查询排序
新知讲授
四
⊙使用ORDER BY查询排序
➽ 实例2:找Reader表中年龄最大的三名读者的信息。
MySQL语句如下:
SELECT * FROM reader ORDER BY Birtime LIMIT 3;
任务三
1
使用GROUP BY子句分组查询
新知讲授
四
⊙使用GROUP BY子句分组查询
使用SELECT语句进行查询时,如果用户需要对查询结果进行分组,可以通过GROUP BY子句来实现。
➽ GROUP BY子句概述
➽ GROUP BY子句的语法格式
基本语法形式如下:
GROUP BY <列名| 表达式| 顺序号>[ASC|DESC],.....[HAVING <表达式>];
新知讲授
四
⊙使用GROUP BY子句分组查询
说明:
1、该子句可以根据一个或多个列进行分组,并使用聚合函数为查询结果集中的每个分组产生一个汇总值。
2、HAVING<条件>用于去掉不满足条件的记录。
3、HAVING条件与WHERE条件不同,WHERE子句作用于数据表或视图,从中选择满足条件的记录,HAVING子句作用于组,选择满足条件的分组,子句中可以包含聚合函数。
新知讲授
四
⊙使用GROUP BY子句分组查询
➽ 聚合函数
函数名 说明 函数名 说明
SUM( ) 返回所有值的和 MAX( )
返回最大值
AVG( ) 返回平均值 MIN( ) 返回最小值
COUNT( ) 返回组中值的个数
新知讲授
四
⊙使用GROUP BY子句分组查询
➽ 实例1:输出reader表中各所在系。
MySQL语句如下:
SELECT Depa FROM reader GROUP BY Depa;
新知讲授
四
⊙使用GROUP BY子句分组查询
➽ 实例2:按所在系、性别分类统计reader表中各系别男女生人数。
MySQL语句如下:
SELECT Depa,Sex ,Count(*) FROM reader GROUP BY Depa,Sex;
师生互动
五
1、总结简单查询的命令。
2、总结条件查询的命令。
3、总结在实际应用中如何利用聚合函数进行查询。
讨论
随堂练习
六
1、 在MySQL中,最基本、最重要的操作是( )
A.数据查询
B. 数据插入
C.数据更新
D.数据删除
【答案】A
【解析】在MySQL中,数据查询是最重要也是最基本的操作。
随堂练习
六
2、下列命令用于查询数据的是( )。
A. CREATE
B. INSERT
C. SELECT
D. UPDATE
【答案】C
【解析】 SELECT命令用于从数据表中检索数据。
随堂练习
六
3、 在查询语句中,为了去掉不满足条件的分组,下列操作正确的是( )
A.只使用WHERE语句
B.在GROUP BY子句后使用HAVING子句
C.必须先使用WHERE子句,才能使用HAVING子句
D.必须先使用HVAING子句,再使用GROUP BY 子句
【答案】B
【解析】在分组后使用HAVING子句,是为了去掉不满足条件的分组
随堂练习
六
4、 在Select语句中,通配符“% ”代表( )
A.任意1个字符
B.任意多个字符
C.指定一个字符
D. 指定多个字符
【答案】D
【解析】%代表任意多个字符
随堂练习
六
5、 在SQL语句中,查询字段中“*”代表 _________。
【答案】表中全部字段
6、 SQL语句中,对查询的结果可以进行排序,默认的排序方法是________(升序/降序)。
【答案】升序
课堂小结
七
谢谢
$$