SQL练习题1

更新时间:2024-01-16 16:39:02 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

SQL Server

一、简答

根据表回答以下问题

两个表是先建关系,然后才输入数据,其中的关系为:book表中author_id作为外键关联到authors表的主键author_id上。 book表 列名 book_id book_name author_id

authors表 列名 author_id author_name int varchar 数据类型 4 30 长度 允许空 int varchar int 数据类型 4 50 4 长度 允许空 (1)用Transact-SQL语句建立authors表(包括建立主键,列取值非空)

(2)根据参照完整性在两个表都要输入第一个记录时一般应先输入哪个表的数据?为什么?

二、编程题(共4题) student表(学生表) 学号 1 2 3

course表(课程表) 课程号 1 2 3 课程名 SQL Server VB 专业英语 学分 4 3 2 姓名 李明 张然 许晴 性别 男 女 女 年龄 20 19 18 系别 计算机系 经管系 电子系 sc表(选课表) 学号 1 课程号 1 成绩 90 2 2 3 1 2 3 85 76 70 1、 把course表中课程号为2的课程的学分修改为4。

2、 在student表中查询年龄大于18的学生的所有信息,并按学号降序排列。

3、 在以上三个表中查询选的课程的“学分”为4,并且成绩大于80的学生的学号、姓名和

性别。

SQL Serve答案

3、

(1) create table authors

(author_id int primary key,

author_name varchar(30) not null)

(2)

如果先建立关系,然后再输入记录,在输入第一条记录时一般要先输入authors表,后输入book表。因为根据表之间的参照完整性,book表中author_id列的值要么取空值、要么取authors表中author_id列的某一个值,在此时book表的author_id列是不允许取空值的,所以应先输入authors表,后输入book表。

一、编程题 1、

update course set 学分=4

where课程号=2 3、 方法1:

select distinct student.学号,姓名,性别 from student, course, sc

2、select * from student where 年龄>18 order by 学号 desc

where (student.学号=sc.学号) and (course.课程号=sc.课程号)

and (course.学分=4) and (sc.成绩>80)

方法2:

select distinct student.学号,姓名,性别

from student Inner Join (sc Inner Join course On course.课程号=sc.课程号)

On student.学号=sc.学号

where (course.学分=4) and (sc.成绩>80)

本文来源:https://www.bwwdw.com/article/m0fo.html

Top