表的创建与管理.docx
《表的创建与管理.docx》由会员分享,可在线阅读,更多相关《表的创建与管理.docx(14页珍藏版)》请在冰豆网上搜索。
表的创建与管理
学生课程实验报告书
11级计算机与信息科学系
网络工程专业2班
学号1130040218姓名赖丽娜
2012--2013学年第2学期
实验项目:
表的创建与管理
实验时间:
2013.4.6
实验目的与要求:
1、掌握使用T-SQL语句创建数据库、数据表和`数据表完整性约束的定义。
2、熟悉表的结构和列所使用的数据类型。
3、理解数据表完整性含义及其定义的方法。
实验平台:
1、操作系统:
WindowsXP或Windows2003
2、数据库管理系统:
SQLServer2005
实验步骤(纸张不够写可另外加纸并应装订):
(一)数据库创建与管理
①数据库的创建
使用CREATEDADABESE语句创建一个数据库。
名字为NewSales,数据文件名为NewSales.mdf,存储在D:
\下,初始化大小为4MB,最大为10MB,文件增量以1MB增长。
日志文件为NewSales_log.ldf,存储在E盘下,初始化大小为2MB,最大为5模板,文件增量以1MB增长。
(1)打开SQLServerManagementStudio,连接数据库服务器
(2)单击“新建查询”按钮,进入命令编辑区
(3)输入以下SQL语句:
createdatabaseNewSales
onprimary
(
name='NewSales',
filename='D:
\教务管理系统\NewWSales.mdf',
size=4mb,
maxsize=10mb,
filegrowth=1mb
)
logon
(name='NewSales.ldf',
filename='D:
\教务管理系统\NewSales_log.ldf',
size=2mb,
maxsize=5mb,
filegrowth=1mb
)
②创建一个“教务管理系统”数据库,并将下列表创建在该数据库中
(二)表的创建与完整性定义
创建RankPayment表:
createtableRankPayment
(Trankchar(6)primarykey,
Paymentrealnotnull
);
查看创建的结果:
select*fromRankPayment;
表的完整性约束查看:
execsp_helpRankPayment;
创建StudentInfo表:
CREATETABLEStudentInfo
(Snochar(8)primarykey,
Snamechar(8)constraintS1unique,
Ssexchar(6)notnullcheck(Ssex='男'),
Sbirthdaydatetimenotnull,
SageSmallintnotnull,
Saddressvarchar(40),
Sphotoimage,
Smemoryvarchar(100)
);
查看创建的结果:
select*fromStudentInfo;
表的完整性约束查看:
execsp_helpStudentInfo;
创建TeacherInfo表:
createtableTeacherInfo
(Tnochar(8)primarykey,
Tnamechar(8)notnull,
Tsexchar(6)notnullcheck(Tsex='男'),
Tbirthdaydatetimenotnull,
TageSmallintnotnull,
Trankchar(6)notnull,
Taddressvarchar(40),
Tphotoimage,
Tmemoryvarchar(100),
foreignkey(Trank)referencesRankPayment(Trank)
);
查看创建的结果:
select*fromTeacherInfo;
表的完整性约束查看:
execsp_helpTeacherInfo;
创建CourseInfo表:
查看创建的结果:
select*fromCourseInfo;
表的完整性约束查看:
execsp_helpCourseInfo;
创建Teaching表:
createtableTeaching
(Tnochar(8)notnull,
Cnochar(8)notnull,
Ssatisfactchar(6),
foreignkey(Tno)referencesTeacherInfo(Tno),
foreignkey(Cno)referencesCourseInfo(Cno)
);
查看创建的结果:
select*fromTeaching;
表的完整性约束查看:
execsp_helpTeaching;
创建StudentCourse表:
CREATETABLEStudentInfo
(Snochar(8)primarykey,
Snamechar(8)constraintS1notnull,
Ssexchar(6)notnullcheck(Ssex='男'),
Sbirthdaydatetimenotnull,
SageSmallintnotnull,
Saddressvarchar(40),
Sphotoimage,
Smemoryvarchar(100)
);
查看创建的结果:
select*fromStudentCourse;
表的完整性约束查看:
execsp_helpStudentCourse;
(三)修改基本表
①向基本表StudentInfo中增加“入学时间”属性列,其属性名为Sentrancedate,数据类型为DATETIME型。
其语句为:
②将Sage(年龄)的数据类型改为INT型。
其语句为:
③删除Sname(姓名)必须取唯一值的约束。
其语句为:
ALTERTABLEStudentInfoDROPCONSTRAINTS1;
execsp_helpStudentInfo;
④增加Sname(姓名)必须取唯一值的约束。
其语句为:
altertableStudentInfoaddunique(Sname);
execsp_helpStudentInfo;
(四)删除基本表
删除RankPaymetn表。
其语句为:
dropindexRankPaymentcascade;
(五)索引
①建立索引
1、为“教务管理系统”数据库中的StudentInfo,CourseInfo,StudentCourse三个表建立索引。
其中StudentInfo表按Sno(学号)升序建唯一索引,CourseInfo表按Cno(课程号)升序建唯一索引,StudentCourse表按Sno(学号)升序和Cno(课程号)号降序建唯一索引。
其语句为:
createuniqueindexCou_CnoonCourseInfo(Cno);
createuniqueindexStu_SnoonStudentInfo(Sno);
createuniqueindexRep_ScnoonStudentCourse(Snoasc,Cnodesc);
2、在基本表StudentInfo的Sname(姓名)和no(学号)列上建立一个聚簇索引,而且StudentInfo中的物理记录将按照Sname值和Sno值的升序存放。
其语句为:
createuniqueindexStuonStudentInfo(Sname,Sno);
②删除索引
删除基本表StudentCourse上的Rep_SCno索引。
其语句为:
dropindexStudentCourse.Rep_Scno;
五、实验总结
简述实验完成情况、实验过程中各自碰到的问题、各自对实验目的掌握情况。
执行这个语句遇到的问题:
指导教师评语:
实验成绩_______________指导教师_______________