实验三SQLServer2005表的创建与管理一、目的与要求:1、了解数据库中表的基本概念.2、了解关系型数据库的基本知识.3、掌握SQLServer2005系统数据类型和用户自定义数据类型4、掌握T-SQL创建表的基本方法.5、掌握T-SQL管理表的基本方法.6、熟练掌握T-SQL中条件表达式的简单应用.7、领悟数据库及数据表的关系.二、实验性质:验证型、设计型三、实验准备:1. 了解关系型数据库的相关知识.2. 了解E-R模型中表的基本构成要素.3. 掌握用户自定义数据类型的定义方法与具体应用.4. 掌握T-SQL创建和管理表的基本方法.5. 预习本次实验相关的内容,并总结本章知识点.四、实验内容与步骤(请将各步骤操作及结果截图,并按题目编号保存在以"学生姓名”命名的文件夹中,实验后根据要求上交):【实训题目】:某高校为提高信息化水平,将学生信息进行数据库管理,创建数据库的名为Student,对学生信息进行综合管理:(一)创建表stu_info,表中列及列相关属性如下表所示:列名(字段名)数据类型长度允许空值学号Char7X姓名Varchar10X性别Char2V出生日期Datetime-X政治面貌Varchar8V是否特招Bit-X高考成绩Smallint-X【参考答案】CreateDatabaseStudentGoUseStudentcreatetablestu_info(学号char(7)notnull,姓名varchar(10)notnull,性别char(2),出生日期datetimenotnull,政治面貌varchar(8),是否特招bitnotnull,高考成绩smallintnotnull解析:必须在创建表对象前,首先创建相应Student数据库,然后再将其指定为当前库,才能进行表的创建操作.(二)在数据库新增一个用户自定义数据类型,要求如下:定义类型名称系统数据类型(依据)是否充许空值AddressVarchar(20)Notnull【参考答案】SP_AddTypeAddress,'Varchar(20)','Notnull'解析:注意指定Address用户自定义数据类型的非空届性(NotNull).(三)在表中新增一列,列名为"籍贯”,并将其数据类型指定为上题中所定义的"Address"数据类型;【参考答案】Altertablestu_infoAdd籍贯Address解析:注意添加新列“籍贯”的数据类型Address,建议使用SP_help命令查看,会发现这时系统自动将该列设置为Null,理解其原因.(四)对表中指定列进行属性修改,其新属性如下:列名(字段名)数据类型长度允许空值政治面貌VarChar4V【参考答案】Altertablestu_infoAltercolumn政治面貌varchar(4)解析:思考,这里是否充许设置该列为“NotNull”为什么(五)修改表中的"高考成绩”列,将其重命名为“录取成绩”【参考答案】sp_rename'stu_info.高考成绩','录取成绩','Column'解析:由丁表中没有数据,这里可以用先删除“高考成绩”列,再添加“录取成绩”列的方法实现。
六)查看表的属性列表,以检验前面操作是否准确(请将结果截图,并以”属性.JPG”为文件名保存在实验文件夹中);【参考答案】sp_help'stu_info'解析:注意此时的表的届性列表,与题目要求不符(如籍贯列),要理解出现这种情况的原因七)向表Stu_info中添加记录,记录如下表所示学号姓名性别出生日期政治面貌是否特招录取成绩籍贯XX01201贾晓琳女1989-12-25团员0625河北保定XX01202李明明男1990-04-02群众1458河北唐山XX01203孙明磊男1992-02-04党员0546河北保定XX01204姜珊珊女1991-11-05群众0531河北承德XX01205林国华男1991-06-14团员1428河北石家庄XX01206李明明女1992-08-01团员0505河北秦皇岛【参考答案】insertstu_infovalues('XX01202','李明明’,’男','1990-04-02','群众',1,458,'河北唐山')解析:由丁是针对表中所有列进行值的插入,可以使用最简形式,以节省代码,注意根据列值所对应列的数据类型不同,定界符号要准确使用八)在数据表中,林国华同学因故退学,请将其信息在表中删除;【参考答案】Deletefromstu_infoWhere姓名='林国华'(九)将姓名为”李明明”的女同学籍贯修改为”河北张家口“;【参考答案】Updatestu_infoSet籍贯='河北张家口'Where姓名='李明明’And性别='女’解析:同时满足多个条件时,注意使用逻辑连词”And'进行连接。
十)修改所有特招生的录取成绩,将其成绩加50分,将在结果中显示符合条件同学的学号,姓名,及录取成绩修改前、后的变化情况;【参考答案】updatestu_infoset录取成绩=录取成绩+50outputdeleted.学号‘deleted.姓名,deleted.录取成绩,inserted.录取成where是否特招=1解析:理解deleted和inverted的含义及实际操作中的重要作用(H^一)将数据表名称修改为Student_info【参考答案】SP_rename'stu_info','student_info'(十二)删除该数据表;【参考答案】Droptablestudent_info解析:在前面已经进行了表的重命名操作,删除时注意引用表的新名十三)删除用户自定义数据类型Address参考答案】sp_droptypeaddress五、实验总结与思考1、什么是Null值它和0、"”(空字符)有什么区别在定义表中列属性时,指定Null或NotNull属性有何实际意义2、在已经创建完成的表中增加新列时,是否充许设置新增列为NotNull请根据具体情况进行分析和说明(提示:)3、用户自定义数据类型是不是与SQLServer系统完全无关的、全新的数据类型形式请说明用户自定义数据类型与系统数据类型的区别与联系。
4、如何在表中应用已经创建好的自定义数据类型操作中将“籍贯”列设置为Address用户自定义数据类型时,发生了什么问题请解释一下原因5、使用Update命令对记录进行修改时,应该注意哪些问题如何在使用该命令的同时,显示指定修改对象的值变化情况。