实验六 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、内外层相关查询中,应对表取别名。