数据库实验(SQLSERVER)
数据库实验⼀
实验内容:
⽤SQL语⾔进⾏基本表结构的定义、修改、删除,索引的建⽴和删除
实验步骤:
1 :在SQL SERVER 中新建查询,建⽴到服务器的连接
2: ⽤SQL语⾔CREATE TABLE语句创建实验⼀中学⽣表student、课程表course 和选课表sc及其相应约束,具体约束如下:
3、向创建的表中输⼊数据,测试所创建的完整性约束是否起作⽤
4:⽤SQL语⾔ALTER语句修改表结构;
(1) STUDENT表中增加⼀个字段⼊学时间scome,
(2) 删除STUDENT表中sdept字段;
(3) 删除创建的SC表中cno字段和COURSE表cno字段之间的外键约束;(4) 重建(3)中删除的约束
5、重新定义⼀个简单表,然后⽤SQL语⾔DROP语句删除该表结构;、
6、⽤SQL语⾔CREATE INDEX语句定义表STUDENT的SNAME字段的降序唯⼀索引;
7、⽤SQL语⾔DROP语句删除索引
实验具体步骤:
1:创建数据库TEST1并使⽤该数据库:
CREATE DATABASE TEST1;
go
USE TEST1;
go
2:创建三个基本表student,course,sc并建⽴相应的约束:
--创建学⽣表
CREATE TABLE Student
(
Sno CHAR(8)  PRIMARY KEY, --学号,主码
Sname CHAR(4) NOT NULL, --姓名,取唯⼀值
Ssex CHAR(2) DEFAULT '男' CHECK  (Ssex= '男'or Ssex='⼥' ), --性别
Sage INT, --年龄
Sdept CHAR(10) --系院
);
go
--创建课程表
CREATE TABLE Course
(
Cno CHAR(2) PRIMARY KEY, --课程号
Cname CHAR(30), --课程名
Cpno CHAR(3), --先⾏课
Ccredit SMALLINT, --学分
);
go
--创建选修课表
CREATE TABLE SC
(
Sno CHAR(8), --学号
Cno CHAR(2) , --课程号
增加字段的sql语句Grade INT CHECK(Grade >=0 AND Grade <=100) --成绩
PRIMARY KEY(Sno,Cno),
/*主码由两个属性构成,必须作为表级完整性进⾏定义*/
CONSTRAINT fk_Sno FOREIGN KEY (Sno) REFERENCES Student(Sno) on delete cascade on update cascade, CONSTRAINT fk_Cno FOREIGN KEY (Cno) REFERENCES Course(Cno) on delete cascade on update cascade );
go
3:向三个基本表中插⼊对应的数据:
--对创建的三个表插⼊数据
INSERT INTO Student (sno,sname,ssex,sage,sdept)
VALUES('95001','刘晨','男','20','CS'),
('95002','⽉⼉','⼥','19','IS'),
('95003','孙空','⼥','18','MA'),
('95004','韩信','男','19','IS'),
('95005','刘云','⼥','17','CS'),
('95006','刘皇','⼥','21','IS'),
('95007','马长','⼥','19','MA'),
('95008','李丽','⼥','20','CS'),
('95009','⽯头','⼥','19','IS'),
('95010','张半','⼥','18','CS');
go
INSERT INTO Course (Cno, Cname, Cpno, Ccredit) VALUES ('1', '数据库', '15', '4') INSERT INTO Course (Cno, Cname, Cpno, Ccredit) VALUES ('2', '数学', '', '2') INSERT INTO Course (Cno, Cname, Cpno, Ccredit) VALUES ('3', '信息系统', '1', '4') INSERT INTO Course (Cno, Cname, Cpno, Ccredit) VALUES ('4', '操作系统', '6', '3') INSERT INTO Course (Cno, Cname, Cpno, Ccredit) VALUES ('5', '数据结构', '7', '4') INSERT INTO Course (Cno, Cname, Cpno, Ccredit) VALUES ('6', '数据处理', '', '2') INSERT INTO Course (Cno, Cname, Cpno, Ccredit) VALUES ('7', 'PASCAL语⾔', '6', '4') go
INSERT INTO SC(sno,cno,grade)
VALUES('95001','2','100'),
('95001','3','95'),
('95001','4','90'),
('95001','6','100'),
('95002','2','98'),
('95002','3',''),
('95003','1','99'),
('95003','2','80'),
('95003','3','98'),
('95004','1','90'),
('95005','7','97'),
('95005','2','37')
go
4:Student表中增加⼀个字段⼊学时间scome
ALTER TABLE  Student
ADD Scome date
go
5:删除Student表中sdept字段
ALTER TABLE Student
DROP COLUMN Sdept
go
6:删除创建的SC表中cno字段和Course表cno字段之间的外键约束;
ALTER TABLE SC
DROP CONSTRAINT fk_Cno
go
7:重建6中删除的约束
ALTER TABLE SC
ADD CONSTRAINT fk_Cno FOREIGN KEY (Cno) REFERENCES Course(Cno);
go
8:重新定义⼀个简单表,然后⽤SQL语⾔DROP语句删除该表结构;
CREATE TABLE da
(
dd int,
);
DROP TABLE da;
go
9:⽤SQL语⾔CREATE INDEX语句定义表Student的SNAME字段的降序唯⼀索引
CREATE INDEX hello ON Student (Sname desc);
go
10:⽤SQL语⾔DROP语句删除索引
DROP INDEX hello ON Student;
go
注:
1:注意创建索引时三种索引⽅式的区别
2:要学会外码如何辨别和创建对应的约束
3:默认约束的关键词为:DEFULAT,⽤户⾃定义范围时需要⽤关键词:CHECK。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。