创建Course表T-SQL语句如下:
(执行正确后请将以Course.sql保存起来以备后用)
CREATE TABLE Course ( )
Cno char(4) NOT NULL PRIMARY KEY, Cname char(40) NULL, Cpno char(4) NULL, Ccredit smallint NULL,
Constraint FK_Course FOREIGN KEY(Cpno) REFERENCES Course(Cno)
2)创建表SC表
SC表结构及其约束为:
表2-3 SC表结构和约束 列名 数据类型 宽度 允许空值 缺省值 主键 Sno char 9 否 是 Cno char 4 否 是 Grade smallint 是 其中成绩为百分制。 创建SC表T-SQL语句如下:
(执行正确后请将以SC.sql保存起来以备后用)
CREATE TABLE SC ( )
Sno char(9) NOT NULL, Cno char(4) NOT NULL, Grade smallint NULL,
Constraint PK_SC PRIMARY KEY(Sno,Cno),
外键 是 是 说明 学号 课程号 成绩 Constraint FK_SC_Sno FOREIGN KEY(Sno) REFERENCES Student(Sno), Constraint FK_SC_Cno FOREIGN KEY(Cno) REFERENCES Course(Cno), Constraint CH_SC CHECK(Grade BETWEEN 0 AND 100)
注意:因为有外键的存在,三张表的创建有先后顺序限制! 2.管理表
(1)添加和删除列
给Course表增加一列,字段名为Ctype(课程类型),类型为char,长度为10,允许为空值。
1)使用企业管理器进行。 操作步骤如下:
插入该列后,在企业管理器中删除该列的操作步骤。
2)使用T-SQL语句进行。
添加Ctype字段的T-SQL语句。
ALTER TABLE Course
ADD Ctype char(10) NULL
18
删除Ctype字段的T-SQL语句。
ALTER TABLE Course
DROP COLUMN Ctype
(2)表的重命名及删除
1)使用企业管理器重命名及删除表。 重命名操作步骤:
(如将Course表重命名为Course1表)
删除Course1表的命令:
2)使用T-SQL语句实现
在查询分析器中,将已保存的Course.sql打开,运行重建Course表。 重命名Course表为Course1表的T-SQL语句。(提示:用存储过程sp_rename) sp_rename Course,Course1
删除Course1表的T-SQL语句。 DROP TABLE Course1
3.对表添加、修改、删除数据
(1)插入数据简单操作
1)使用企业管理器向Student表中插入数据。
表2-4 Student表 Sno 200215121 200215122 200215123 200215125 200215126 操作步骤: insert into Student
Sname 李勇 刘晨 王敏 张立 张红 Ssex 男 女 女 男 女 Sage 20 19 18 19 19 Sdept CS CS MA IS CS values ('200215121','李勇','男',20,'CS') insert into Student
values ('200215122','刘晨','女',19,'CS') insert into Student
values ('200215123','王敏','女',18,'MA') insert into Student
values ('200215125','张立','男',19,'IS') insert into Student
values ('200215126','张红','女',19,'CS')
其它数据可自行添加。
2)使用T-SQL语句向Course表中插入数据。
表2-5 Course表 Cno 1 Cname 数据库 19
Cpno 5 Ccredit 4 2 数学 2 3 信息系统 1 4 4 操作系统 6 3 5 数据结构 7 4 6 数据处理 2 7 PASCAL语言 6 4 在查询分析器中,将已保存的Course.sql打开,运行重建Course表。 T-SQL命令为:
insert into Course
values ('1','数据库','5',4) insert into Course
values ('2','数学',NULL,2) insert into Course
values ('3','信息系统','1',4) insert into Course
values ('4','操作系统','6',3) insert into Course
values ('5','数据结构','7',4) insert into Course
values ('6','数据处理',NULL,2) insert into Course
values ('7','PASCAL语言','6',4)
其它数据可自行添加。
注意:因为有外键的存在,字段值的添加有先后顺序限制! 3)使用T-SQL语句向SC表中插入数据。
表2-6 SC表 Sno Cno Grade 200215121 1 92 200215121 2 85 200215121 3 88 200215122 2 90 200215122 3 80 T-SQL命令为:(保存为insert_SC.sql已备后用)。其它数据可自行添加。
insert into SC
values ('200215121','1',92) insert into SC
values ('200215121','2',85) insert into SC
values ('200215121','3',88) insert into SC
values ('200215122','2',90) insert into SC
values ('200215122','3',80)
(完成以上操作后,请将Stu_Course数据库备份,得到Stu_Course.bak备份
20
文件,保存起来以备后面实验用)
(2)修改数据简单操作。
1)在企业管理器中,将Student表中的学号为“200215125”的同学的姓名改为“李双”。
操作步骤:
2)使用T-SQL语句,将Course表中的课程号为“2”的学分改为4。 T-SQL语句为:
update Course set Ccredit=4 where Cno='2'
3)使用T-SQL语句,将SC表中的选修了“2”课程的同学的成绩*80%。 T-SQL语句为:
update SC
set Grade=Grade*0.8 where Cno='2'
(3)删除数据简单操作(请注意约束的限制)
1)假设学号为“200215123”的同学已离开学校,则需要删除该记录,请在企业管理器中将Student表中将该记录删除。
操作步骤:
2)删除选修了“信息系统”的学生的记录。 T-SQL语句:
DELETE SC where Cno in(
select Cno from Course where Cname='信息系统')
3)使用T-SQL语句,删除所有的学生选课记录。 T-SQL语句: DELETE SC
4.复制表中的数据创建新表
(1)将Student表中的数据复制到一个新表Student1中。 T-SQL语句:
select * into Student1 from Student
注意:上面的语句在复制时自动生成新表Student1,而下面的语句要求表Student1必先存在,才能插入!!
insert into student1 select * from student
(2)新建库XUE,将Stu_Course库中的Student表中的数据复制到XUE库中,名称仍为Student。
T-SQL语句:
create database XUE go
select * into XUE.dbo.Student from Stu_Course.dbo.Student
21
(3)复制Stu_Course库中SC表与XUE库中的Student表的部分内容,以创建一新表Student2,其内容包括学生的学号、姓名、课程名、成绩。
T-SQL语句:
select XUE.dbo.Student.Sno 学号,XUE.dbo.Student.Sname 姓
名,Stu_Course.dbo.Course.Cname 课程名,Stu_Course.dbo.SC.Grade 成绩
into Stu_Course.dbo.Student2
from Stu_Course.dbo.SC,Stu_Course.dbo.Course,XUE.dbo.Student where Stu_Course.dbo.SC.Sno=XUE.dbo.Student.Sno and Stu_Course.dbo.SC.Cno=Stu_Course.dbo.Course.Cno
四、实验要求
(1)硬件设备:奔腾II或奔腾II以上计算机,局域网。 (2)软件环境:WINDOWS 9X/NT、WINDOWS SERVER、WINDOWS XP、SQL SERVER 2000中文版企业版或标准版。
(3)实验课前预习,课后及时完成实验内容。
(4)实验过程及记录按题目格式要求填写在代码清单中。
五、代码清单
22