SQL数据定义与数据查询.doc
文本预览下载声明
数据库上机报告
——数据定义与数据查询
写明实验所采用的实验环境给出实验内容与完成情况数据库(1) 用SQL语言建立学生课程数据库,数据库命名:SC_学号后四位及姓名,如S3112liyan;CREATE DATABASE SC_1224cxj
ON
(NAME = SC_1224cxj_dat,
FILENAME=C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\ SC_1224cxj_dat.mdf)
LOG ON
(NAME= SC_1224cxj_log,
FILENAME=C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\ SC_1224_log.ldf);
(2) 用SQL语言在学生课程数据库中建立3个表,要求进行完整性定义:
学生关系Student(Sno,Sname,Ssex,Sage,Sdept) 其中Sno不能为空,值是唯一的,并且Sname取值也唯一,Sage自定义约束“大于16”
课程关系Course(Cno,Cname,Cpno,Ccredit) 其中Cno不能为空,值是唯一的,并且Cname取值也唯一
教师关系Teacher(Tno,Tname,Department,Email,Salary) 其中Tno不能为空,值是唯一的
选修关系SC(Sno,Cno,Grade) 其中Sno和 Cno不能为空,(Sno, Cno)为主码,Grade的数据类型为int
建立Student表:
CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY,
Sname CHAR(40) UNIQUE,
Ssex CHAR(2),
Sage SMALLINT CHECK(Sage16),
Sdept CHAR(20)
);
建立Course表:
CREATE TABLE Course
(Cno CHAR(4) PRIMARY KEY,
Cname CHAR(40) UNIQUE,
Cpno CHAR(4),
Credit SMALLINT,
CONSTRAINT FK_C FOREIGN KEY (Cpno) REFERENCES Course(Cno)
);
建立Teacher表:
CREATE TABLE Teacher
(Tno CHAR(4) PRIMARY KEY,
Tname CHAR(40),
Department CHAR(20),
Email CHAR(100),
Salary INT
);
建立SC表:
CREATE TABLE SC
(Sno CHAR(9),
Cno CHAR(4),
Grade SMALLINT,
PRIMARY KEY(Sno,Cno),
CONSTRAINT FK_SC1 FOREIGN KEY(Sno) REFERENCES Student(Sno),
CONSTRAINT FK_SC2 FOREIGN KEY(Cno) REFERENCES Course(Cno)
);
(3) 修改数据表:
将SC表中Grade的数据类型改为float;
ALTER TABLE SC ALTER COLUMN Grade FLOAT;
在Student表中增加一个属性Scome记录学生的入学时间,其数据类型为DATETIME;
ALTER TABLE Student ADD Scome DATETIME;
删除Student表中新增加Scome属性;
ALTER TABLE Student DROP COLUMN Scome;
删除表Teacher表中的Email属性;
ALTER TABLE Teacher DROP COLUMN Email;
删除Student表中对Sname属性创建的Unique约束。(无法删除未建立名字的约束)
建立约束语句:
ALTER TABLE Student ADD CONSTRAINT S_CHECK UNIQUE(Sname);
删除约束语句:
ALTER TABLE Student DROP S_CHECK;
*(4) 用SQL语言分别在3个数据表中插入数据(具体数据可见教材P.82):
INSERT
INTO Student
VALUES(200215121,李勇,男,20,CS);
INSERT
INTO Student
VALUES(200215122,刘晨,女,19,CS);
INSER
显示全部