sql练习题 答案 下载本文

内容发布更新时间 : 2025/1/23 8:43:09星期一 下面是文章的全部内容请认真阅读。

(一) 新建以下几个表

student(学生表): sno sname sex dept birth age 其中约束如下: (1) (2) (3) (4)

学号不能存在相同的 名字为非空

性别的值只能是’男’或’女’

系包括这几个:信息系,计算机科学系,数学系,管理系,中文系,外语系,法学系

(5) (6)

出生日期为日期格式

年龄为数值型,且在0~100之间

create table student( sno smallint constraint a primary key,----设置学生学号为student的主键 sname varchar(10) not null, sex varchar(2) constraint b check(sex in('男','女')),----检查约束——性别的值只能是’男’或’女’ dept varchar(20) constraint c check(dept in('信息系','计算机科学系','数学系','管理系','中文系','外语系','法学系')),----检查约束——系包括这几个:信息系,计算机科学系,数学系,管理系,中文系,外语系,法学系 birth datetime, age smallint constraint d check(age between 0 and 100)----检查约束——年龄为数值型,且在~100之间 )

cs(成绩表): sno cno cj 其中约束如下:

(1)sno和cno分别参照student和course表中的sno,cno的字段 (2)cj(成绩)只能在0~100之间,可以不输入值

create table cs( sno smallint not null references student(sno),----定义成外键 cno smallint not null references course(cno),----定义成外键 cj smallint constraint e check(cj between 0 and 100),----检查约束——cj(成绩)只能在~100之间,可以不输入值 constraint f primary key(sno,cno)----定义学生学号和课程号为sc表的主键 )

course(课程表)

cno cname 其约束如下:

(1)课程号(cno)不能有重复的 (2)课程名(cname)非空

create table course( cno smallint not null constraint g primary key,----设置课程号为course的主键 cname varchar(20) not null )

(三)针对学生课程数据库查询 (1) 查询全体学生的学号与姓名。

Select sno,sname from student

(2) 查询全体学生的姓名、学号、所在系,并用别名显示出结果。

Select sname as '姓名',sno as '学号',dept as '所在地' from student

(3) 查询全体学生的详细记录。

select * from student

(4) 查全体学生的姓名及其出生年份。

select sname,birth from student

(5) 查询学校中有哪些系。