数据库实验1-6参考答案 下载本文

COLOR WEIGHT 颜色 重量 CHAR(2) NUMERIC(9,2) CHECK(WEIGHT>0 AND WEIGHT<=100) (3)工程项目表J: 列名 JNO JNAME CITY 说明 项目号 项目名 城市 数据类型 CHAR(6) VARCHAR(20) VARCHAR(50) 约束 PRIMARY KEY NOT NULL (4)供应情况表SPJ: 列名 SNO PNO JNO QTY 说明 供应商号 零件号 项目号 供应数量 数据类型 CHAR(6) CHAR(6) CHAR(6) SMALLINT 约束 NOT NULL NOT NULL NOT NULL DEFAULT 100 2、用CREATE语句建立如下三个表,并写出相应的语句。 (1)学生表Student: 列名 SNO SNAME SSEX SAGE SDEPT 说明 学号 姓名 性别 年龄 所在系 数据类型 CHAR(7) CHAR(10) CHAR(2) SMALLINT VARCHAR(20) 约束 主码 NOT NULL 取“男”或“女” 取值15-45 默认“计算机系” 语句:

CREATE TABLE Student( Sno char(7) PRIMARY KEY, Sname char(10) not null, Ssex char(2) CHECK(Ssex='男' or Ssex='女'), Sage smallint CHECK(Sage>=15 and Sage<=45), Sdept char(20) DEFAULT '计算机系'

)

6

(2)课程表Course: 列名 CNO CNAME CCREDIT SEMSTER PERIOD 说明 课程号 课程名 学分 学期 学时 数据类型 CHAR(10) VARCHAR(20) SMALLINT SMALLINT SMALLINT 约束 主码 NOT NULL 大于0 大于0 大于0 语句:

CREATE TABLE Course( Cno char(10) PRIMARY KEY, Cname varchar(20) NOT NULL, Ccredit smallint check(ccredit>0), semster smallint check(semster >0), period smallint check(period>0)

)

(3)选课表Sc: 列名 SNO CNO GRADE 说明 学号 课程号 成绩 数据类型 CHAR(7) CHAR(10) SMALLINT 约束 主码,引用Student的外码 主码,引用Course的外码 大于0 语句: CREATE TABLE SC(

Sno char(7), Cno char(10),

Grade smallint check(grade>=0),

PRIMARY KEY (Sno,Cno),

FOREIGN KEY (Cno) REFERENCES Course(Cno), FOREIGN KEY (Sno) REFERENCES Student(Sno) )

3、利用SQL语句对表结构进行修改。

(1)为零件表P增加一个规格(GUIGE)列,数据类型为字符,长度50;

Alter Table P Add GUIGE char(50)

7

(2)修改课程表Course的CNAME属性列的类型为VARCHAR(30); Alter Table Course Alter Column CNAME varchar(30)

(3)为供应情况表SPJ添加参照完整性约束; SPJ的SNO列参照S表SNO列

Alter Table SPJ Add Foreign Key (SNO) References S(SNO)

SPJ的PNO列参照P表PNO列

Alter Table SPJ Add Foreign Key (PNO) References P(PNO)

SPJ的JNO列参照J表JNO列

Alter Table SPJ Add Foreign Key (JNO) References J(JNO)

(4)删除零件表P的规格(GUIGE)列 Alter Table P Drop Column GUIGE

4、利用企业管理器向表中添加数据 (1)供应商表S: SNO S1 S2 SNAME 精益 盛锡 STATUS 20 10 CITY 天津 北京

继续往表中增加一条记录:四个字段的数据分别是S1,东方红,30,北京,会出现什么情况?为什么?

不能增加,因为SNO是主键,不能取重复值。

(2)零件表P: PNO P1 P2 P3 PNAME 螺母 螺栓 螺丝刀 COLOR 红 绿 蓝 WEIGHT 12 17 105.5

是否能够正常输入三条数据?如果否,问题出在哪里,为什么?

第三条记录不能输入,因为P3的WEIGHT属性取值违法了其检查约束。

8

(3)工程项目表J: JNO J1 J2 J3 JNAME 一汽 半导体厂 CITY 北京 南京 常州

第三条记录是否能够正常输入,若否,会出现什么问题,为什么? 第三条记录不能输入,因为JNAME不能取NULL值。

(4)供应情况表SPJ: SN0 S1 S1 S2 PNO P1 P1 P2 JNO J1 J3 J4 QTY 200

输入过程中是否会遇到问题,若有,出在哪,为什么?

第三条记录不能输入,因为在工程项目表J中没有J3,破坏了参考完整性。

四、实验小结

五、评阅成绩

实验预习20% 实验过程20% 实验结果30% 实验报告30% 总成绩 9

实验三 数据查询

一、实验目的

1、掌握查询语句的基本组成和使用方法 2、掌握常用查询技巧

二、实验预习

1、SQL中查询语句格式:

2、连接查询有哪些不同的连接方式?有什么特点。

三、实验内容和要求

1、按照下表中的内容,在企业管理器中为数据库表输入相应的数据。 学生表:Student Sno 9512101 9512103 9521101 9521102 9521103 9531101 9531102 Cno C01 C02 C03 C04 C05

Sname 李勇 王敏 张莉 吴宾 张海 钱小平 王大力 Cname 计算机导论 VB 计算机网络 数据库基础 高等数学 Ssex 男 女 女 男 男 女 男 Ccredit 3 4 4 6 8 10

Sage 19 20 22 21 20 18 19 Semster 1 3 7 6 1 Sdept 计算机系 计算机系 信息系 信息系 信息系 数学系 数学系 Period 3 4 4 4 8 课程表:Course