第次上机实验掌握利用SQL语句创建及维护数据表(附代码)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4次上机实验:掌握利用SQL语句创建及维护数据表
一、实验目的
1、掌握利用SQL语句创建数据表
2、掌握利用SQL语句修改、查看、重命名及删除数据表
二、实验要求
独立完成实验内容,进一步掌握SQL Server 2005利用SQL语句创建数据表,利用SQL语句修改、查看、重命名及删除数据表,并写实验报告。
三、实验内容
1、使用Transact-SQL语句,在CourseDB数据库中创建一个教师信息表Teacher,Teacher表的结构及数据类型如下表2所示:
表2 Teacher表的结构及数据类型
********************************************************************* --create database CourseDB
USE CourseDB
go
if exists(select name from sys.tables
where name='Teacher')
drop table Teacher
create table Teacher
(
Tno char(8)primary key,
Tname char(8)not null,
Tsex char(2),
Tbir datetime,
Ttitle char(10),
Tdept varchar(20),
jbgz money,
gwjt money,
yfgz money
)
********************************************************************* 2、给列指定默认值
使用Transact-SQL语句,在CourseDB数据库中创建一个老师信息表Teacher,Teacher表的结构及数据类型如表2所示,这里只对表2中列Tdept进行修改,为其增加默认值约束。
********************************************************************* use CourseDB
go
alter table Teacher
add constraint df default('计算机与信息科学系')for Tdept
********************************************************************* 3、为表列指定唯一性约束
使用Transact-SQL语句,在CourseDB数据库中创建一个班级信息表Class,Class表的结构及数据类型如表3所示,这里只对表3中列Clname进行修改,为其增加唯一性约束。
表3 Class表的结构及数据类型
********************************************************************* use CourseDB
go
if exists(select name from sys.tables
where name='Class')
drop table Class
create table Class
(
Clno int identity(1,1)primary key,
Clname varchar(20)not null,
Special varchar(20),
Dept varchar(20)
)
go
alter table Class
add constraint un unique(Clname)
********************************************************************* 4、为表列指定检查约束
使用Transact-SQL语句,在CourseDB数据库中创建一个学生信息表Student,Student表的结构及数据类型如表1所示,这里对表1中列Ssex进行修改,为其增加检查约束,要求性别只能是“男”或“女”,并同时在表1中增加字段Sage, 要求年龄18≦Sage≦100。
表1 Student表的结构及数据类型
use CourseDB
go
if exists(select name from sys.tables
where name='Student')
drop table Student
go
create table Student
(
Sno char(8)primary key,
Clno char(6)not null,
Sname char(8)not null,
Ssex char(2)not null,
Sbir datetime
)
go
alter table Student
add constraint cksex check(Ssex in('男','女'))
go
alter table Student
add Sage smallint not null
go
alter table Student
add constraint ckage check(Sage>=18 and Sage<=100)
********************************************************************* 5、为表指定外关键字
使用Transact-SQL语句,在CourseDB数据库中创建一个选修课程情况表SC,SC表的结构及数据类型如下表4所示:
表4 SC表的结构及数据类型
use CourseDB
go
if exists(select name from sys.tables
where name='SC')
drop table SC
go
create table SC
(
Sno char(8),
Cno char(5),
Score Numeric(5,1),
foreign key(Sno)references Student(Sno)
on delete cascade
on update cascade
)
******************************************************************** 6、更改表以添加新列。
建立一个StudentDB数据库,使用Transact-SQL语句,在StudentDB数据库中创建一个学生信息表Students,Students表的结构及数据类型如表5,然后在Students表中添加一个允许空值的列,列名为Sage,类型为smallint,添加一列列名为Sdept,类型varchar(20)。
表5 学生信息表Students
use CourseDB
go
if exists(select name from sys.tables
where name='Students')
drop table Students
go
create table Students
(
Sno char(8)not null,
Clno char(6),
Sname char(8),
Ssex char(2),
Sbir datetime
)
go
alter table Students
add Sage smallint
go
alter table Students
add Sdept varchar(20)
******************************************************************** 7、修改表的列以增加约束。
使用Transact-SQL语句,对上题(6)中创建的学生信息表Students的结构进行修改,Students表修改后的结构及数据类型如下表6所示,然后查看增加的列约束。
表6 学生信息表students
******************************************************************** use CourseDB
go
alter table Students
add constraint pk_Sno primary key(Sno)
go
alter table Students
add constraint fk_Clno foreign key(Clno)references Class(Clno)
go
alter table Students
add constraint un_Same unique(Sname)
go
alter table Students
add constraint ck_Ssex check(Ssex in('男','女'))
go
alter table Students
add constraint ck_Sage check(Sage>=18 and Sage<=100)
go
alter table Students
add constraint df_Sdept default('计算机与信息科学系')for Sdept
********************************************************************* 8、重命名表
用SQL语句把表Students重命名为Stu。
********************************************************************* use CourseDB
go
sp_rename'Students','Stu'
********************************************************************* 9、删除表
用SQL语句把表Students删除。
********************************************************************* use CourseDB
go
drop table Students
*********************************************************************。