数据库实验(SQL SERVER)

数据库实验一

实验内容:
用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) , --课程号
 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

  • 8
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值