数据库实验1-6参考答案

发布时间 : 星期五 文章数据库实验1-6参考答案更新完毕开始阅读

实验二 数据定义

一、实验目的

1、掌握SQL数据定义功能:数据库定义、表的定义、索引定义。 2、掌握利用企业管理器和SQL语句定义表、索引的方法。

二、实验预习

1、SQL中基本表定义语句格式:

2、SQL中修改基本表语句格式:

三、实验内容和要求

1、在企业管理器中,利用菜单操作的方式在各自的数据库中建立如下四个基本表: (1)供应商表S: 列名 SNO SNAME STATUS CITY 说明 供应商号 供应商名 供应商状态 所在城市 数据类型 CHAR(6) VARCHAR(20) VARCHAR(50) VARCHAR(50) 约束 PRIMARY KEY NOT NULL (2)零件表P: 列名 PNO PNAME

说明 零件号 零件名 数据类型 CHAR(6) VARCHAR(20) 5

约束 PRIMARY KEY NOT NULL 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

联系合同范文客服:xxxxx#qq.com(#替换为@)