实验六 SQL语言数据查询语言DQL
实验六 SQL 语言数据查询语言DQL
一、实验目的
数据查询语言指对数据库中的数据查询、统计、分组、排序等操作。查询语
句可以分为简单查询、连接查询、嵌套查询和组合查询等。
本次实验了解SQL 语言的SELECT 语句对数据的查询,学会在Navicat for
MySQL 中用SELECT 语句对表中的数据进行简单查询、连接查询、嵌套查询和组
合查询。
二、实验要求
1、实验前:预习实验内容,学习相关知识。
2、实验中:按照实验内容要求进行实验,实验时注意每种SQL 语句的基本命令
及各个关键字的含义,做好实验记录。
3、实验后:分析实验结果,总结实验知识,得出结论,按格式写出实验报告。
4、在整个实验过程中,要独立思考、独立按时完成实验任务,不懂的要虚心向
教师或同学请教。
5、要求按指定格式书写实验报告,且报告中应反映出对本次实验的总结,下次
实验前交实验报告。
三、实验的重点与难点
1、重点:
(1)查询结果的排序和分组
(2)聚合函数的使用
(3)内连接查询
(4)内外层不相关子查询
2、难点:
连接查询时,两个表或者多个表之间连接条件的使用。
嵌套查询时,In、Exist 操作符的使用。
进行组合查询时,集合操作符的使用。
SELECT 语句的GROUP BY... HAVING 子句、ORDER BY 子句的使用。
自身连接和内外层相关子查询。
四、仪器设备及用具
硬件:投影仪、每位同学分配已连接校园网PC 机一台。
软件:本机已安装MySQL 5.5 数据库平台。
五、教学过程
(一)实验预习
(1)熟悉SQL 中的SELECT 语句的格式及所用的关键字含义及用法。
(2)掌握用SELECT 语句进行简单查询的方法。
(3)掌握用SELECT 语句进行连接查询的方法。
(4)掌握用SELECT 语句进行嵌套查询的方法。
(5)掌握用SELECT 语句进行组合查询的方法。
(二)实验原理
在Navicat for MySQL 中使用SELECT 语句从表中查询数据、统计数据及对
数据进行分组和排序等操作。
(三)实验内容
1.启动Navicat for MySQL,用SELECT 语句对表进行简单查询操作,整个
查询过程只涉及到一个表,是最基本的查询语句。语法格式如下:
Select < 目标列组> From [Where ] [Group by <
分组列> [Having ]] [Order by [, …n]]
2.用SELECT 语句对表进行连接查询操作,连接查询涉及被连接和连接两个
表,所以数据源一般为多个表。用来连接两个表的条件称为连接条件,一般格式
为:
[.] [.]
其中比较运算符主要有:=、>、=、<=、!=。
3.用SELECT 语句对表进行嵌套查询操作,一个Select…From…Where 语句
称为一个查询块,将一个查询块嵌套在另一个查询块的Where 子句或Having 短
语的条件中的查询,就是嵌套查询。主要有使用 In 操作符、Exist 操作符、使
用比较运算符的嵌套查询方式。
4.用SELECT 语句对表进行集合查询操作,将SELECT 语句的查询结果集再进
行集合运算就构成了 SQL 的集合查询。集合查询操作符有 Union(并操作)、
Intersect(交操作)和Minus(差操作)。目前MySQL 仅支持Union(并操作)。
(四)注意事项
1、对表指定别名后,在where 条件中要引用表名时,应引用别名。
2、对于空值,只能用is null 或not is null 进行比较,而不能用=比较。
例: select * from sc where grade is null
3、在作like 进行模糊查询时,注意%和_的区别,同时要注意汉字所占用字节。
4、having 只能用在group by 子句后面,不能用在where 子名后面。
5、自身连接必须为表取别名。
6、在连接查询中,如果一个字段来源于两个及两个以上的表,需要指明字段的
来源,即需加上表名前缀,格式为 “表名.字段名”。
7、在嵌套查询中,order by 只能用于最外层嵌套。
8、内外层相关查询中,应对表取别名。