数据库基础:数据定义

Posted 雨中枫玲

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库基础:数据定义相关的知识,希望对你有一定的参考价值。

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

 

以上是关于数据库基础:数据定义的主要内容,如果未能解决你的问题,请参考以下文章

动态SQL基础概念复习(Javaweb作业5)

小程序基础13:模板

片段是否执行基础数据的复制?

Android - 如何将自定义对象传递给片段

java基础3-重载+命令行传参+递归+数组+排序

VSCode自定义代码片段——CSS选择器