实验一 数据定义实验指导

(数据库模式设计及建立)

1.实验目的

(1)让学生自己完成数据库模式的设计。

(2)用SQL命令建立数据库表。

(3)用可视化环境建立数据库表。

2.实验内容

(1)定义数据表。

(2)修改表结构:增添字段,修改字段类型。

(3)删除表结构。

3.实验要求

(1)建立学生数据库模式。

学生表:student  (sno,  sname,  ssex,  sage,  sdept)

学生 学号 姓名 性别 年龄 所在系

sno 长度为4的字符串

sname 长度为8的字符串

ssex 长度为2的字符串

sage 短整数

sdept 长度为10的字符串

其中sno为主码。

CREATE TABLE IF NOT EXISTS student(

sno VARCHAR(4) NOT NULL PRIMARY KEY COMMENT '学号,主键',

sname VARCHAR(8) NOT NULL COMMENT '姓名',

ssex VARCHAR(2) NOT NULL COMMENT '性别',

sage TINYINT(3) UNSIGNED DEFAULT 0 COMMENT '年龄',

sdept VARCHAR(10) NOT NULL COMMENT '所在系'

)ENGINE=InnoDB CHARSET=UTF8 COMMENT='学生表';

课程表:course  (  cno,  cname)
课程 课程号 课程名 学分

cno 长度为4的字符串

cname 长度为10的字符串

credit 短整数

其中cno为主码。

CREATE TABLE IF NOT EXISTS course(

cno VARCHAR(4) NOT NULL PRIMARY KEY COMMENT '课程号,主键',

cname VARCHAR(10) NOT NULL COMMENT '课程名',

credit TINYINT(3) UNSIGNED DEFAULT 0 COMMENT '学分'

)ENGINE=InnoDB CHARSET=UTF8 COMMENT='课程表';

选课表: sc   (sno,    cno,  cname,  grade)

选课 学号 课程号 课程名 成绩

sno 长度为4的字符串

cno 长度为4的字符串

cname 长度为10的字符串

grade 短整数

其中(sno, cno) 为主码;sno为外码和student表对应;cno为外码和course表对应;
grade的值或空或为0—100之间。

CREATE TABLE sc(

sno VARCHAR(4),

cno VARCHAR(4),

cname VARCHAR(10),

grade INT CHECK(grade BETWEEN 0 AND 100),

PRIMARY KEY (sno,cno),

FOREIGN KEY (sno) REFERENCES student(sno) ON DELETE CASCADE,

FOREIGN KEY (cno) REFERENCES course(cno)

)ENGINE=InnoDB CHARSET=UTF8;

(2)修改数据表结构

在课程表中增加一个credit字段,表示学分,类型为短整形。

从选课表中删除cname字段。

ALTER TABLE course MODIFY credit TINYINT COMMENT '学分';

ALTER TABLE sc drop cname;

(3)撤销数据表。建立一个临时表,然后再把它撤销。

CREATE TABLE TEMP(

cno VARCHAR(4) PRIMARY KEY,

cname VARCHAR(10),

credit TINYINT

);

DROP TABLE temp;

要求写出实验一的全部代码,

注意:

1.全部代码

2.代码的全角半角

3.格式规整,便于批阅