SQL练习题1

2019-08-31 14:03

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)


SQL练习题1.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:热电厂电除尘培训

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: