首页 > 代码库 > 数据库基础(1):数据定义

数据库基础(1):数据定义

1.实验内容

1)     用Management Studio创建数据库University_Mis

2)     使用SQL语句创建关系数据库基本表:

学生表Students(Sno,Sname, Semail,Scredit,Sroom);

教师表Teachers(Tno,Tname,Temail,Tsalary);

课程表Courses(Cno,Cname,Ccredit);

成绩表Reports(Sno,Tno,Cno,Score);

其中:Sno、Tno、Cno分别是表Students、表Teachers、表Courses的主键,具有唯一性约束,Scredit具有约束“大于等于0”; Reports中的Sno,Tno,Cno是外键,它们共同组成Reports的主键。

CREATE TABLE Students
(
    Sno CHAR(5) PRIMARY KEY, //主键
    Sname CHAR(20),
    Semail CHAR(20),
    Scredit FLOAT,CONSTRAINT A CHECK(Scredit>=0), //约束条件
    Sroom CHAR(10),
)

CREATE TABLE Teachers
(
    Tno CHAR(5) PRIMARY  KEY,
    Tname CHAR(20),
    Temail CHAR(25),
    Tsalary INT ,
)

CREATE TABLE Courses
(
    Cno CHAR(5) PRIMARY KEY,
    Cname CHAR(20),
    Ccredit CHAR(25),
)
CREATE TABLE Reports
(
    Sno CHAR(5),
    Tno CHAR(5),
    Cno CHAR(5),
    Score INT
    PRIMARY KEY(Sno,Tno,Cno), //共同组成的主键
    CONSTRAINT Student_Report FOREIGN KEY(Sno) REFERENCES Students,
    CONSTRAINT Teather_Report FOREIGN KEY(Tno) REFERENCES Teachers,
    CONSTRAINT Course_Report FOREIGN KEY(Cno) REFERENCES Courses,
)

3)     更改表Students:增加属性Ssex(类型是CHAR,长度为2),取消Scredit“大于等于0”约束。把表Courses中的属性Cname的数据类型改成长度为30。

ALTER TABLE Students ADD Ssex CHAR(2)
ALTER TABLE Students DROP CONSTRAINT A
ALTER TABLE Courses ALTER COLUMN Cname CHAR(30)

 

4)     删除表Students的一个属性Sroom。

5)     删除消表Reports。

ALTER TABLE Students DROP COLUMN Sroom
DROP TABLE Reports

6)     为Courses表创建按Cno降序排列的索引。

7)     为Students表创建按Sno升序排列的索引。

CREATE INDEX Stu_Cno ON Courses(Cno DESC)
CREATE INDEX Stu_Sno ON Students(Sno ASC)

8)     创建表Students的按Sname升序排列的唯一性索引。

9)     删除Students表Sno的升序索引。

CREATE UNIQUE INDEX Stu_Sname ON Students(Sname ASC)
DROP INDEX Students.Stu_Sno

 

数据库基础(1):数据定义