数据库实验四作业及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验4数据查询

一、实验目的

1.掌握使用Transact-SQL的SELECT语句进行基本查询的方法。

2.掌握使用SELECT语句进行条件查询的方法。

3.掌握嵌套查询的方法。

4.掌握多表查询的方法。

5.掌握SELECT语句的GROUP BY和ORDER BY子句的作业和使用方法。

6.掌握联合查询的操作方法。

7.掌握数据更新语句INSERT INTO、UPDATE、DELETE的使用方法。

二、实验准备

1.了解SELECT语句的基本语法格式和执行方法。

2.了解嵌套查询的表示方法。

3.了解UNION运算符的用法。

4.了解SELECT语句的GROUP BY和ORDER BY子句的作用。

5.了解IN、JOIN等子查询的格式。

6.了解INSERT INTO、UPDATE、DELETE的格式与作用。

三、实验内容及步骤

0. 创建studentsdb数据库及其相应表,并录入数据。

启动查询分析器,运行下面链接的代码即可。

创建数据库代码

1.在studentsdb数据库中,使用下列SQL语句将输出什么?

(1)SELECT COUNT(*) FROM grade

(2)SELECT SUBSTRING(姓名,1,2) FROM student_info

(3)SELECT UPPER('kelly')

(4)SELECT Replicate('kelly',3)

(5)SELECT SQRT(分数) FROM grade WHERE 分数>=85

(6)SELECT 2,3,POWER(2,3)

(7)SELECT YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE())

2.在studentsdb数据库中使用SELECT语句进行基本查询。

(1)在student_info表中,查询每个学生的学号、姓名、出生日期信息。

SELECT*FROM student_info

(2)查询学号为0002的学生的姓名和家庭住址。

SELECT姓名,家庭住址FROM student_info

WHERE学号=0002

(3)找出所有男同学的学号和姓名。

SELECT学号,姓名FROM student_info

WHERE性别='男'

3.使用SELECT语句进行条件查询

(1)在grade表中查找分数在80~90分为内的学生的学号和分数。

SELECT学号,分数FROM grade

WHERE分数BETWEEN 80 AND 90

(2)在grade表中查询课程编号为0003的学生的平均分。

SELECT AVG(分数)AS平均分FROM grade

WHERE课程编号=0003

(3)在grade表中查询学习各门课程的人数。

SELECT课程编号,COUNT(*)AS人数

FROM grade

GROUP BY课程编号

(4)将学生按出生日期由大到小排序。

SELECT学号,姓名,出生日期

FROM student_info

ORDER BY出生日期ASC

(5)查询所有姓“张”的学生的学号和姓名。

SELECT 学号,姓名 FROM student_info WHERE 姓名 LIKE '张%'

4.嵌套查询

(1)在student_info表中查找与“刘卫平”性别相同的所有学生的姓名、出生日期。

SELECT 姓名,出生日期

FROM student_info

WHERE 性别=

(SELECT 性别

FROM student_info

WHERE 姓名='刘卫平')

(2)使用IN子查询查找所修课程编号为0002、0005的学生学号、姓名、性别。

SELECT 学号,姓名,性别

FROM student_info

WHERE student_info.学号 IN

(SELECT 学号

FROM grade

WHERE 课程编号 IN ('0002', '0005'))

(3)列出学号为0001的学生的分数比0002号的学生的最低分数高的课程编号和分数。

SELECT课程编号,分数FROM grade

WHERE学号='0001'AND分数>ANY

(SELECT分数FROM grade

WHERE学号='0002')

(4)列出学号为0001的学生的分数比0002的学生的最高成绩还要高的课程编号和分数。

SELECT课程编号,分数

FROM grade

WHERE学号='0001'AND分数>ALL

(SELECT分数

FROM grade

WHERE学号='0002')

5.多表查询

(1)查询分数在80~90范围内的学生的学号、姓名、分数。

SELECT student_info.学号,姓名,分数

FROM student_info,grade

WHERE student_info.学号=grade.学号 AND 分数 BETWEEN 80 AND 90

(2)查询学习“C语言程序设计”课程的学生的学号、姓名、分数。

SELECT student_info.学号,姓名,分数

FROM student_info

INNER JOIN grade ON student_info.学号=grade.学号

INNER JOIN curriculum ON 课程名称='C语言程序设计'

相关文档
最新文档