1、【实验环境】Windows 10系统 + SQL Server 2012【实验内容】1. 设有一学籍管理系统,使用SSMS创建名为EDUC的数据库。主数据文件逻辑文件名为student_data,初始大小为 10MB,最大可增长到50MB,数据库自动增长,增长方式是按5比例增长。日志文件逻辑文件名为student_log,存放路径均为“E:sql_data”,初始大小为2MB,最大可增长到5MB,增长方式是按1MB 自动增长。2.在数据库 EDUC 中,创建如下几个表:表2.1 student 表(学生信息表)643.修改列属性 将student 表中的birthday 字段设为Not nul
2、l。4.添加列 在course 表中添加一列year ,类型为varchar(4),默认置为空。5.添加记录 根据实验指导书中所给的内容添加记录。6.根据建立的数据库 EDUC,在查询分析器中使用SQL语句创建5张新表。分别为:student1、course1 、student_course1 、teacher1和teacher_course1。7.在查询分析器中用SQL语句删除表teacher_course1和表teacher1。8.用SQL 语句将student 表中的属性sno char(8)改为varchar(20)类型。9.用SQL 语句在course表中添加year 字段,数据类型
3、名为varchar(4),并添加属性值的范围为“第一、第二、第三、第四”约束。10.用SQL 语句将course 表中的year 字段删除。11.以上创建表的 SQL语句以 .SQL 文件的形式保存在磁盘上。【实验方法和步骤】1. 在开始菜单中选中SQL Server Management Studio,启动SSMS。启动后,单击“连接”按钮,进入SSMS窗口。如下图所示: 图12.在左侧“对象资源管理器”处,右击数据库按钮,点击新建数据库。根据实验内容1中的要求填写数据库名称EDUC以及数据库文件中的内容,完成后点击确定。 图23.刷新对象资源管理器,点击展开数据库,右击“表”,选择新建表。
4、根据实验内容2中的要求,建立5张新表,并填写表中列名、数据类型以及是否为空值。 表11填写好列名、数据类型及允许Null值三项内容后,点击sno左侧黑三角,选中该行,并点击左上方设置主键按钮,将sno(学生学号)设置为该表的主键。关闭,保存表名为“student”。 表12同表12一样,填写好表中内容,并将cno(课程编号)设置为该表的主键。关闭,保存表名为“course”。 表13填写好列名、数据类型及允许Null值三项内容后,点击sno左侧黑三角,选中该行,再按shift键,向下拖动鼠标,直至选中sno、tcid两行为止。再点击左上方设置主键按钮,将(sno,tcid)(学生学号,上课编号
5、)设置为该表的主键。关闭,保存表名为“student_course”。 表14同上述3张表一样,按照要求填写内容,并将tno(教师编号)设置为该表的主键。关闭,保存表名为“teacher”。 表15根据实验要求填写好列名、数据类型及允许Null值三项内容后,点击tcid左侧黑三角,选中该行,点击左上方设置主键按钮,将tcid(上课编号)设置为该表的主键。右击空白处,点击“关系”,添加外键。打开对话框后,点击“添加”,再点击右侧“表和列规范”一行处的“ ”,打开后,左侧主键表中选择teacher,下方的内容选择tno,右侧外键表选择teacher_course,内容选择tno,点击确定,关闭该对
6、话框。再点击 “添加”,按同样的方法,左侧主键表中选择course,下方的内容选择cno,右侧外键表选择teacher_course,内容选择cno,点击确定。关闭所有对话框,关闭并保存表名为“teacher_course”。 图34. 修改student表中birthday列的属性。右击student表子目录,单击“设计”,将属性的“允许Null值”取消勾选。如遇以下情况: 图4单击文本框中的“工具”,单击“选项”,再单击“设计器”,将“阻止保存要求重新创建表的更改”一项,取消勾选,即可修改表中列的属性。修改完成后如下图所示: 图55. 右击展开course 子目录,点击“设计”,空白处点击
7、鼠标右键,再次点击“插入列”,并向其中添加内容。列名为year 、数据类型为varchar(4)并且允许为空,保存并关闭。如表11所示。6. 根据实验要求添加各表记录。右击student,点击“编辑前200行”,即可输入数据,输入完成一项内容后,按tab键,即可输入下一内容,一个元组输入完成后,点击tab,便可保存及跳转到下一个元组继续输入。其他表添加记录与上述操作类似。添加记录后,各表如下图所示: 图6 图7 图8 图9图107. 右击EDUC数据库,点击“新建查询”,在查询分析器中根据如上表格结构,输入SQL 语句创建5张新表。代码实现如下:创建student1表:create table
8、 student1(sno char(8) NOT NULL,sname char(8) NOT NULL,sex char(2),birthday smalldatetime,dno char(6),spno char(4),clssno char(4),entime smalldatetime,constraint pk_student1 primary key (sno)创建course1表:create table course1(cno char(6) NOT NULL,cname char(20) NOT NULL,ctno tinyint,experiment tinyint,l
9、ecture tinyint,semester tinyint,credit tinyint,constraint pk_course1 primary key (cno)创建student_course1表:create table student_course1(tcid smallint NOT NULL,score tinyint,constraint pk_student_course1 primary key (sno,tcid)创建teacher1表:create table teacher1(tno char(5) NOT NULL,tname char(8) NOT NULL
10、,pno tinyint,home varchar(40),zipcode char(6),tel varchar(40),email varchar(40),constraint pk_teacher1 primary key (tno)创建teacher_course1表:create table teacher_course1(tno char(5),classno char(4),cno char(6),semester char(6),schoolyear char(10),classtime varchar(40),classroom varchar(40),weektime ti
11、nyint,constraint pk_teacher_course1 primary key (tcid),constraint ak_teacher_course1 foreign key (tno) references teacher1 tno,constraint ak_teacher_course1 foreign key (cno) references course1 cno)8.在查询分析器中用SQL语句删除表tearch_course1和表teacher1。代码如下:drop table teacher_course1drop table teacher1由于表tearch
12、_course1和表teacher1是由上述SQL语句建立而成,并未添加外键。如表tearch_course1中已经添加外键tno,则必须按照上述顺序执行,不能调换顺序。9.用SQL 语句将student1表中的属性sno char(8)改成varchar(20)类型,由于sno 为主键,则需要先删除主键,修改后再添加sno为主键并添加名为pk_student1的约束。alter table student1drop constraint pk_student1alter column sno varchar(20) not nulladd constraint pk_student1 pri
13、mary key(sno)所得结果,如下图所示: 图1110. 添加字段及约束。在查询编辑窗口输入:alter table courseadd year varchar(4) constraint year check(year=第一 or year=第二 or year=第三第四)然后执行。所得结果如下图所示: 图1211. 删除列。在查询编辑窗口输入alter table course drop constraint yeardrop column year 图1312.将以上创建表的SQL 命令以 .SQL 文件的形式保存在E盘sql_data文件夹里。【实验结果】1.实验操作15结果如下图所示:上述5张图中为用可视化窗口的方法建立的表,展示其子目录和一些约束情况。2.实验操作611结果如下图所示:其他关于删除,添加,修改表属性、内容等操作已在实验过程中详细展示。上图所示为删除表tearch_course1和表teacher1的前后对比。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1