数据库原理实验报告3实验三 数据表的创建与管理实验.docx
《数据库原理实验报告3实验三 数据表的创建与管理实验.docx》由会员分享,可在线阅读,更多相关《数据库原理实验报告3实验三 数据表的创建与管理实验.docx(8页珍藏版)》请在冰豆网上搜索。
数据库原理实验报告3实验三数据表的创建与管理实验
数据库原理实验报告(3)实验三数据表的创建与管理实验
南京晓庄学院
《数据库原理与应用》
课程实验报告
实验三数据表的创建与管理实验
所在院(系):
数学与信息技术学院班级:
学号:
姓名:
1.实验目的
(1)理解SQLServer20XX常用数据类型和表结构的设计方法。
理解主键、外键含义,掌握
建立各表相关属性间参照关系的方法。
(2)熟练掌握使用SQLServerManagementStudio图形工具创建表,删除表,修改表结构。
插入及更新数据的方法。
(3)熟练掌握使用Transact-SQL语句创建表,删除表,修改表结构,插入及更新数据的方法。
2.实验要求
基本实验:
(1)在实验二所创建的“TM”数据库中合理设计以下各表逻辑结构:
学生信息课程信息学习信息院系信息
要求确定各个字段的名称、类型、是否有默认值,是否主键等信息。
(2)依据你所设计的表结构,使用SQLServerManagementStudio图形工具在“TM”数据库
中创建学生信息表和课程信息表,并试验在图形界面中修改表结构,删除数据表,输入并更新数据的方法。
(3)依据你所设计表结构,使用Transact-SQL语句创建学习信息表和院系信息表,并试验使
用T-SQL语句修改表结构,删除数据表,插入和更新数据的方法。
(4)找出已创建各表之间相关属性的参照关系,并在相关表中增加引用完整性约束。
(5)按要求完成实验报告。
扩展实验:
(1)在“TM”数据库中补充设计以下各表结构:
教师信息授课信息班级信息专业信息
图书信息(图书号,书名,作者,出版社,出版日期,册数,价格,分类)借书偏息奖励信息
(2)设计并实现各表之间相关属性的参照关系。
(3)使用SQLManagementStudio图形界面或Transact-SQL在“TM”数据库中创建前述各表。
并插入部分数据,要求所插入数据合理有效。
3.实验步骤、结果和总结实验步骤/结果
(1)合理命名并设计学生信息、课程信息、学习信息和院系信息结构,以表格描述相关信息。
学生信息表Student字段含义学号姓名性别籍贯出生日期民族学院/系别号班级号
课程信息Course字段含义课程号课程名称课程所属模块课程类别学分学时字段名称C_IDC_NAMEModuleC_TypeCreditC_Hours数据类型char(8)nvarchar(20)nvarchar(30)nchar
(2)realtinyint说明主键 字段名称S_IDS_NAMEGenderBirth_PlaceDate_of_BirthNationalityDEPT_IDClass_ID数据类型char(8)nvarchar(10)nchar
(1)nvarchar(20)smalldatetimenvarchar(10)char
(2)int说明主键默认男
学习信息StudyInformation字段含义学号课程号考试成绩平时成绩
院系信息yxb字段含义院系号院系名称字段名称dept_idyxname数据类型intnvarchar(10)说明主键字段名称S_IDC_IDGRADEAVG(GRADE)数据类型char(8)char(8)INTINT说明主键候选主键
(2)总结使用SQLServerManagementStudio创建学生信息、课程信息表,修改表结构,输入或更新表数据的过程或方法;
创建学生信息
1、在“对象资源管理器”中,依次展开“数据库”→“TM”→“表”,右击选择 新建表“Student”,输入完成后右击保存该表。
新建表“Course”
修改表结构
展开TM,展开表,右击Student,选择修改,将S_Name的数据类型改成nvarchar(30),保存
输入数据:
选中要输入的表,右击选中打开表,进行输入数据。
(3)写出实验中创建学习信息、院系信息表,试验修改表结构及删除数据表、插入和更新数据时,你所编写并成功执行的T-SQL语句。
学习信息表:
useTM
CREATETABLEStudyInformation(S_IDchar(8),C_IDchar(8),GRADEINT,[AVG(GRADE)]INT,
PRIMARYKEY(S_ID,C_ID))
院系信息表
CREATETABLEyxb(
dept_idchar
(2),yxnamenchar(10),
PRIMARYKEY(dept_id)
)
修改表结构:
ALTERTABLEStudyInformationALTERCOLUMNS_IDchar(10)
删除数据表数据:
DELETEFROMStudentWHERES_ID='10080112'
插入数据:
INSERTINTO
Student(S_ID,S_Name,Gender,Birth_Place,Date_of_Birth,Nationality,DEPT_ID,Class_ID)
VALUES('10080512','武涵','男','江苏','1993-6-30','汉族',6,2)
更新数据:
UPDATEStudentSETS_Name='陈圆',Gender='女'WHERES_ID='10080117'
(4)说明学生信息、课程信息表、学习信息、院系信息表间相关属性的合理参照关系,写出相应的数据库中添加引用完整性约束的T-SQL语句或者探索并总结使用SQLServerManagementStudio图形工具在数据库中添加相应引用完整性约束的方法。
SELECT *
FROM INNERJOIN
ON_id=dept_idINNERJOIN dbo.CourseINNERJOIN
dbo.StudyInformationONdbo.Course.C_ID=dbo.StudyInformation.C_IDONdbo.StudyInformation.S_ID=dbo.StudyInformation.S_ID
(5)扩展实验完成总结。
授课信息班级信息
授课信息:
CreatetableshoukenotNullPrimaryKey,C_classvarchar(8)notNull,xifloatnotNull,PgradefloatnotNull);
CreatetablebanjinotNullPrimaryKey,C–classvarchar(8)notNull,C-numvarchar(8)notNull,
4.实验思考:
①你认为在教学管理中还可以增加管理哪些信息,可以再为数据库增加设计哪些表或为已有表增加设计哪些属性字段?
说出理。
答:
可以增加的表
考试时间表(院系名称,课程名称,考试地点,考试时间,监考人员,监考人数)宿舍分布表(地区编号,宿舍楼编号,负责人姓名)
学生住宿表(院系号,地区编号,宿舍楼编号,房间编号,姓名,班级)增加已有表中的属性字段:
课程信息表中可以增加教室和上课时间字段
学习信息表中可以增加是否住宿和所居住宿舍号的字段
②数据表中的主键有何特性,请设计实例验证主键的特性。
当相关数据表中已有数据时,为各表之间增加参照关系时有可能会失败,为什么?
主键具有如下特性:
(1)不重复性。
当将一列设置为主键时,则数据的取值在该列或者列组合中是唯一的,因此主键列可以作为表中数据的标识列。
(2)非空性。
即主键列的每个数据不能出现空值。
(3)唯一性。
指一个表中最多只有一个主键。
创建表时可通过定义PRIMARYKEY约束来创建主键。
命令格式:
CREATTABLE表名
主键可能所连接的字段设置的数据类型不同,各表之间增加参照关系会失败
③总结SQL中数值数据,字符数据和日期数据常量的表示方法。
思考当向某表中插入记录时,若插入记录的某字段值的数据类型或精度与该表中对应字段定义不同时,会产生哪些结果?
请设计不同情况的实例加以验证。
1)数值数据
SQL支持许多种不同的数值型数据。
你可以存储整数INT、小数NUMERIC、和钱数MONEY。
INTVSSMALLINTVSTINYINT
他们的区别只是字符长度:
INT型数据的表数范围是从-2,147,483,647到2,147,483,647的整数SMALLINT型数据可以存储从-32768到32768的整数TINYINT型的字段只能存储从0到255的整数,不能用来储存负数
通常,为了节省空间,应该尽可能的使用最小的整型数据。
一个TINYINT型数据只占用一个字节;一个INT型数据占用四个字节。
这看起来似乎差别不大,但是在比较大的表中,字节数的增长是很快的。
另一方面,一旦你已经创建了一个字段,要修改它是很困难的。
因此,为安全起见,你应该预测以下,一个字段所需要存储的数值最大有可能是多大,然后选择适当的数据类型。
2)字符数据
VARCHAR和CHAR
VARCHAR型和CHAR型数据的这个差别是细微的,但是非常重要。
他们都是用来储存字符串长度小于255的字符。
3)日期数据
DATETIMEVSSMALLDATETIME
当只输入一个字段时:
当主键为空时:
南京晓庄学院
《数据库原理与应用》
课程实验报告
实验三数据表的创建与管理实验
所在院(系):
数学与信息技术学院班级:
学号:
姓名:
1.实验目的
(1)理解SQLServer20XX常用数据类型和表结构的设计方法。
理解主键、外键含义,掌握
建立各表相关属性间参照关系的方法。
(2)熟练掌握使用SQLServerManagementStudio图形工具创建表,删除表,修改表结构。
插入及更新数据的方法。
(3)熟练掌握使用Transact-SQL语句创建表,删除表,修改表结构,插入及更新数据的方法。
2.实验要求
基本实验:
(1)在实验二所创建的“TM”数据库中合理设计以下各表逻辑结构:
学生信息课程信息学习信息院系信息
要求确定各个字段的名称、类型、是否有默认值,是否主键等信息。
(2)依据你所设计的表结构,使用SQLServerManagementStudio图形工具在“TM”数据库
中创建学生信息表和课程信息表,并试验在图形界面中修改表结构,删除数据表,输入并更新数据的方法。
(3)依据你所设计表结构,使用Transact-SQL语句创建学习信息表和院系信息表,并试验使
用T-SQL语句修改表结构,删除数据表,插入和更新数据的方法。
(4)找出已创建各表之间相关属性的参照关系,并在相关表中增加引用完整性约束。
(5)按要求完成实验报告。
扩展实验:
(1)在“TM”数据库中补充设计以下各表结构:
教师信息授课信息班级信息专业信息
图书信息(图书号,书名,作者,出版社,出版日期,册数,价格,分类)借书偏息奖励信息
(2)设计并实现各表之间相关属性的参照关系。
(3)使用SQLManagementStudio图形界面或Transact-SQL在“TM”数据库中创建前述各表。
并插入部分数据,要求所插入数据合理有效。
3.实验步骤、结果和总结实验步骤/结果
(1)合理命名并设计学生信息、课程信息、学习信息和院系信息结构,以表格描述相关信息。
学生信息表Student字段含义学号姓名性别籍贯出生日期民族学院/系别号班级号
课程信息Course字段含义课程号课程名称课程所属模块课程类别学分学时字段名称C_IDC_NAMEModuleC_TypeCreditC_Hours数据类型char(8)nvarchar(20)nvarchar(30)nchar
(2)realtinyint说明主键 字段名称S_IDS_NAMEGenderBirth_PlaceDate_of_BirthNationalityDEPT_IDClass_ID数据类型char(8)nvarchar(10)nchar
(1)nvarchar(20)smalldatetimenvarchar(10)char
(2)int说明主键默认男
学习信息StudyInformation字段含义学号课程号考试成绩平时成绩
院系信息yxb字段含义院系号院系名称字段名称dept_idyxname数据类型intnvarchar(10)说明主键字段名称S_IDC_IDGRADEAVG(GRADE)数据类型char(8)char(8)INTINT说明主键候选主键
(2)总结使用SQLServerManagementStudio创建学生信息、课程信息表,修改表结构,输入或更新表数据的过程或方法;
创建学生信息
1、在“对象资源管理器”中,依次展开“数据库”→“TM”→“表”,右击选择 新建表“Student”,输入完成后右击保存该表。
新建表“Course”
修改表结构
展开TM,展开表,右击Student,选择修改,将S_Name的数据类型改成nvarchar(30),保存
输入数据:
选中要输入的表,右击选中打开表,进行输入数据。
(3)写出实验中创建学习信息、院系信息表,试验修改表结构及删除数据表、插入和更新数据时,你所编写并成功执行的T-SQL语句。
学习信息表:
useTM
CREATETABLEStudyInformation(S_IDchar(8),C_IDchar(8),GRADEINT,[AVG(GRADE)]INT,
PRIMARYKEY(S_ID,C_ID))
院系信息表
CREATETABLEyxb(
dept_idchar
(2),yxnamenchar(10),
PRIMARYKEY(dept_id)
)
修改表结构:
ALTERTABLEStudyInformationALTERCOLUMNS_IDchar(10)
删除数据表数据:
DELETEFROMStudentWHERES_ID='10080112'
插入数据:
INSERTINTO
Student(S_ID,S_Name,Gender,Birth_Place,Date_of_Birth,Nationality,DEPT_ID,Class_ID)
VALUES('10080512','武涵','男','江苏','1993-6-30','汉族',6,2)
更新数据:
UPDATEStudentSETS_Name='陈圆',Gender='女'WHERES_ID='10080117'
(4)说明学生信息、课程信息表、学习信息、院系信息表间相关属性的合理参照关系,写出相应的数据库中添加引用完整性约束的T-SQL语句或者探索并总结使用SQLServerManagementStudio图形工具在数据库中添加相应引用完整性约束的方法。
SELECT *
FROM INNERJOIN
ON_id=dept_idINNERJOIN dbo.CourseINNERJOIN
dbo.StudyInformationONdbo.Course.C_ID=dbo.StudyInformation.C_IDONdbo.StudyInformation.S_ID=dbo.StudyInformation.S_ID