数据库原理实验二 1.docx
- 文档编号:10494000
- 上传时间:2023-02-14
- 格式:DOCX
- 页数:16
- 大小:97.68KB
数据库原理实验二 1.docx
《数据库原理实验二 1.docx》由会员分享,可在线阅读,更多相关《数据库原理实验二 1.docx(16页珍藏版)》请在冰豆网上搜索。
数据库原理实验二1
学生实验报告
(理工类)
课程名称:
数据库系统原理专业班级:
计算机科学与技术
学生学号:
*********学生姓名:
程孟德
所属院部:
信息技术学院指导教师:
王预
2012——2013学年第1学期
金陵科技学院教务处制
实验报告书写要求
实验报告原则上要求学生手写,要求书写工整。
若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。
纸张一律采用A4的纸张。
实验报告书写说明
实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。
各院部可根据学科特点和实验具体要求增加项目。
填写注意事项
(1)细致观察,及时、准确、如实记录。
(2)准确说明,层次清晰。
(3)尽量采用专用术语来说明事物。
(4)外文、符号、公式要准确,应使用统一规定的名词和符号。
(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。
实验报告批改说明
实验报告的批改要及时、认真、仔细,一律用红色笔批改。
实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。
实验报告装订要求
实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。
实验项目名称:
表和表数据的操作实验学时:
2
同组学生姓名:
实验地点:
A513
实验日期:
2012.11.06实验成绩:
批改教师:
批改时间:
一、实验目的和要求
1、了解表的类型及创建方法;
2、熟悉各种数据类型;
3、掌握列的各种属性;
4、掌握自定义数据类型的创建方法;
5、掌握用T-SQL语言和工具创建表的方法;
6、掌握工具和T-SQL语言插入数据的方法。
二、实验设备、环境
设备:
奔腾Ⅳ或奔腾Ⅳ以上计算机;
环境:
WINDOWS2000SERVER或WINDOWS2003SERVER、SQLServer2005中文版。
三、实验步骤
1、根据题目要求熟悉SQLServer2005的各种管理工具;
2、分析题意,重点分析题目要求并给出解决方法;
3、按题目要求完成实际操作任务,并将相关文档资料保存在以自己学号命名的文件夹中;
4、提交完成的实验结果。
四、实验内容
一、表的概述
1、表的概念
在关系数据库中每一个关系都体现为一张表。
表是用来存储数据和操作数据的逻辑结构,关系数据库中所有的数据都表现为表的形式。
2、表的类型
在SQLServer2005中,可以把表分为4种类型,即普通表、分区表、临时表和系统表。
每一种表都有其自身的作用和特点。
(1)普通表:
又称为标准表,就是通常所说的数据库中存储数据的标,是最常使用的表对象,是最重要和最基本的表。
(2)分区表:
分区表示将数据水平划分成多个单元的表,这些单元的表可以分散到数据库中的多个文件组里,以实现对单元中数据的并行访问。
其优点在于可以方便地管理大型表,提高对这些表中数据的使用效率。
(3)临时表:
临时表是临时创建的、不能永久生存的表。
又可以分为本地临时表和全局临时表。
本地临时表以#打头,它们仅对当前的用户连接时可见的,当用户从SQLServe2005实理断开连接时被删除;全局临时表以##打头,创建后任何用户都是可见,当所有引用该表的用户从SQLServer2005中断开连接时被删除。
(4)系统表:
系统表与普通表的区别在于,系统表存储了有关SQLServer2005服务器的配置、数据库设置、用户和表对象的描述等信息。
二、列
1、列数据类型
在设计表的时候,需要知道每列字段的数据类型。
SQLServer2005系统提供了28种数据类型,主要分为七大类。
(1)精确数字类型
这些数据类型的数据可以参加各种数学运算,所有的数值都是有精度的,精度是指有效数字位数。
如整数数据类型:
binint、int、smalling、tinyint;位数据类型bit;货币数据类型:
Money、Smallmoney等。
(2)近似数字类型
在现实计算中,还有一些数据没有精确数值,如1/3,它无法用精确数字类型表示,需要由系统来定义精确到哪一位,这种类型就是近似数据类型。
如:
Decimal和Numeric;Float和Real等。
(3)字符数据类型
它是用来存储各种字母、数字符号和特殊符号。
在使用该数据类型时,需要用用单引号或双引号括起来。
SQLServer2005主要提供了Char、Varchar、Text3中数据类型。
(4)Unicode字符数据类型
Unicode是一种在计算机上使用的字符编码。
它为每一种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
SQLServer2005主要有:
Nchar、Nvarchar、Ntext三种。
(5)二进制数据类型
二进制数据类型可以用来存储二进制的数据。
主要有:
Binary、Varbinary、Image三种类型。
(6)日期和时间数据类型
在SQLServer2005中,日期和时间类型主要包括:
datetime和smalldatetime两种。
两者区别在于其表示的日期和时间的范围不同,时间的精确度也不同。
(7)其他数据类型
SQLServer2005系统还提供了Cursor、Sql_varant、Table、Timestamp、Uniqueidentifie、XML6种特殊用途的数据类型。
2、列的其他属性
(1)NULL和NOTNULL
定义属性列时可以规定该列是否可以为空。
(2)默认值
当某个属性的值大部分的取值都是相同时,可以使用默认值来减少插入数据时的时间。
(3)IDENTITY
使用IDENTITY关键字定义的字段为标识字段,标识字段是唯一标识每条记录的特殊字段,当一条新记录添加时,这个字段就被自动赋予一个新值。
默认情况下是+1递增。
三、创建表
1、使用SQLServerManagementStudio工具在MyDB数据库中创建Student和Class表。
Student表的结构为:
字段名
类型
中文名
备注
SNO
Char(8)
学号
主键
SName
Varchar(10)
姓名
Sex
Char
(2)
性别
男、女
ClsNO
Char(6)
班级
班级的编号,参照表Class
StuAddr
Varchar(20)
住址
描述性说明
Birthday
SmallDate
出生年月
Height
Numeric(4,2)
身高
以米为单位表示学生的身高。
TotalCredit
Tinyint
总学分
Class表的结构为:
字段名
类型
中文名
备注
ClsNO
Char(6)
班号
主键
ClsName
Varchar(16)
班名
对班级的描述信息
Director
Varchar(10)
辅导员
班级的辅导员
Specialty
Varchar(30)
专业
2、使用T-SQL语言在MyDB数据库中创建再Course和Grade表,为以后的实验做准备。
Course表的结构为:
字段名
类型
中文名
备注
CNO
Char(4)
课程号
主键
CName
Varchar(16)
课程名
课程的名称
PCNO
char(4)
先修课程
先修课程的课程号
Credit
Tinyint
学分
Grade表的结构为:
字段名
类型
中文名
备注
SNO
Char(8)
学号
学号,参照Student,与CNO组成主键
CNO
Char(4)
课程号
课程号,参照Course
Scorce
Numeric(4,1)
成绩
Credit
Tinyint
学分
四、自定义数据类型
(1)使用SQLServerManagementStudio工具创建用户自定义数据类型:
studentNo,char(8)
(2)系统存储过程sp_addtype创建用户自定义数据类型:
courseNo,char(4)
(3)修改MyDB数据库中的各表,学号和课程号应用自定义的数据类型。
五、修改表结构
(1)使用Alter修改Student表结构,使其增加一列Department(系别)Char(12)。
(2)使用SQLServerManagementStudio工具删除刚刚增加的Department。
六、插入数据
使用SQLServerManagementStudio工具或insertinto语句,分别向下列表格插入数据。
(1)向表(Student)中插入数据
SNO
SName
Sex
ClsNO
StuAddr
Birthday
Height
TotalCredit
19920101
王军
男
CS01
下关40#
1976.12.21
1.76
10
19920102
李杰
男
CS01
江边路96#
1974.5.24
1.72
9
19920306
王彤
女
MT04
中央路94#
1977.3.18
1.65
9
19940106
吴杪
女
PH08
莲化小区74#
1979.4.8
1.60
4
插入数据之后使用命令:
Select*fromStudent;检查插入数据的正确性
(2)向表(Class)中插入数据
ClsNO
ClsName
Director
Specialty
CS01
计算机一班
王宁
计算机应用
MT04
数学四班
陈晨
数学
PH08
物理八班
葛格
物理
插入数据之后使用命令:
Select*fromClass;检查插入数据的正确性
(3)向表(Course)中插入数据
CNO
CName
PCNO
Credit
0001
数学
Null
6
0003
计算机基础
0001
3
0007
物理
0001
4
插入数据之后使用命令:
Select*fromCourse;检查插入数据的正确性
(4)向表(Grade)中插入数据
SNO
CNO
Score
Credit
19920101
0001
90
6
19920101
0007
86
4
19920102
0001
87
6
19920102
0003
76
3
19920306
0001
87
6
19920306
0003
93
3
19940106
0007
85
4
插入数据之后使用命令:
Select*fromGrade;检查插入数据的正确性
七、删除表中的数据
(1)使用SQLServerManagementStudio工具删除课程号为0001的选课记录。
(2)使用T-SQL语言删除Grade表中学号为19920101的数据
八、删除表格
(1)使用SQLSQLServerManagementStudio工具删除Class表。
(2)使用DropTable命令删除Grade表。
*注意在删除之前,请将数据文件拷贝一个副本,已备以后实验使用。
五、问题解答及实验结果
三、创建表
(1)使用SQLServerManagementStudio工具在MyDB数据库中创建Student和Class表。
1、Student表的结构
创建student表的T_SQL语句
CREATETABLE[dbo].[Student](
[SNO][char](8)COLLATEChinese_PRC_CI_ASNOTNULL,
[sName][varchar](10)COLLATEChinese_PRC_CI_ASNULL,
[Sex][char]
(2)COLLATEChinese_PRC_CI_ASNULL,
[ClsNo][nchar](10)COLLATEChinese_PRC_CI_ASNULL,
[StuAddr][varchar](20)COLLATEChinese_PRC_CI_ASNULL,
[Birthday][smalldatetime]NULL,
[Height][numeric](4,2)NULL,
[TotalCredit][tinyint]NULL,
CONSTRAINT[PK_Student]PRIMARYKEYCLUSTERED
(
[SNO]ASC
)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY]
)ON[PRIMARY]
2、Class的表为的结构为
创建Class表的T_SQL语句
CREATETABLE[dbo].[Class](
[ClsNo][nchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[ClsName][varchar](16)COLLATEChinese_PRC_CI_ASNULL,
[Direcor][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[Specialty][varchar](30)COLLATEChinese_PRC_CI_ASNULL,
CONSTRAINT[PK_Class]PRIMARYKEYCLUSTERED
(
[ClsNo]ASC
)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY]
)ON[PRIMARY]
(2)使用T-SQL语言在MyDB数据库中创建再Course和Grade表,为以后的实验做准备。
1、Course表的结构为:
Course表的T_SQL语句为:
CREATETABLE[dbo].[Course](
[CNO][char](4)COLLATEChinese_PRC_CI_ASNOTNULL,
[CName][varchar](16)COLLATEChinese_PRC_CI_ASNOTNULL,
[PCNO][char](4)COLLATEChinese_PRC_CI_ASNULL,
[Credit][tinyint]NOTNULL,
CONSTRAINT[PK__Course__00551192]PRIMARYKEYCLUSTERED
(
[CNO]ASC
)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY]
)ON[PRIMARY]
2、Grade表的结构为:
Grade表的t_sql语句为:
CREATETABLEGrade
(SNOchar(8)NOTNULL,
CNOchar(4)NOTNULL,
ScorceNumeric(4,1),
CreditTinyint,
PRIMARYKEY(SNO,CNO),
FOREIGNKEY(SNO)REFERENCESStudent(SNO),
FOREIGNKEY(CNO)REFERENCESCourse(CNO)
)
四、自定义数据类型
(1)使用SQLServerManagementStudio工具创建用户自定义数据类型:
studentNo,char(8)
CREATETYPE[dbo].[courseNo]FROM[char](4)NOTNULL
(2)系统存储过程sp_addtype创建用户自定义数据类型:
courseNo,char(4)
CREATETYPE[dbo].[courseNoNo]FROM[char](4)NULL
五、修改表结构
(1)使用Alter修改Student表结构,使其增加一列Department(系别)Char(12)。
ALTERTABLEStudent
ADDDeparmentchar(12)
(2)使用SQLServerManagementStudio工具删除刚刚增加的Department。
六、插入数据
(1)向表(Student)中插入数据
insertinto
Student(SNO,SName,Sex,ClsNO,StuAddr,Birthday,Height,TotalCredit)
values('19920101','王军','男','CS01','下关40#',1976.12.21,1.76,10)
insertintoStudent(SNO,SName,Sex,ClsNO,StuAddr,Birthday,Height,TotalCredit)
values('19920102','李杰','男','CS01','江边路96#',1974.5.24,1.72,9)
insertintoStudent(SNO,SName,Sex,ClsNO,StuAddr,Birthday,Height,TotalCredit)
values('19920306','王彤','女','MT04','中央路94#',1977.3.18,1.65,9)
insertintoStudent(SNO,SName,Sex,ClsNO,StuAddr,Birthday,Height,TotalCredit)
values('19940106','吴秒','女','PH04','莲花小区74#',1979.4.8,1.60,4)
(2)向表(Class)中插入数据
insertinto
Class(ClsNO,ClsName,Director,Specialty)
values('CS01','计算机一班','王宁','计算机应用')
insertintoClass(ClsNO,ClsName,Director,Specialty)
values('MT04','数学四班','陈晨','数学')
insertintoClass(ClsNO,ClsName,Director,Specialty)
values('PH08','物理八班','葛格','物理')
(3)向表(Course)中插入数据
insertinto
Course(CNO,CName,PCNO,Credit)
values('0001','数学','null',6)
insertintoCourse(CNO,CName,PCNO,Credit)
values('0003','计算机基础','0001',3)
insertintoCourse(CNO,CName,PCNO,Credit)
values('0007','物理','0001',4)
(4)向表(Grade)中插入数据
insertinto
Grade(SNO,CNO,Score,Credit)
values('19920101','0001',90,6)
insertintoGrade(SNO,CNO,Score,Credit)
values('19920101','0007',86,4)
insertintoGrade(SNO,CNO,Score,Credit)
values('19920102','0001',87,6)
insertintoGrade(SNO,CNO,Score,Credit)
values('19920102','0003',76,3)
insertintoGrade(SNO,CNO,Score,Credit)
values('19920306','0001',87,6)
insertintoGrade(SNO,CNO,Score,Credit)
values('19920306','0003',93,3)
insertintoGrade(SNO,CNO,Score,Credit)
values('19940106','0007',85,4)
七、删除表中数据
(2)使用t_sql语言删除Grade表中学号为19920101的数据
DELETE
FROM Grade
WHERESNO=’19920101’;
八、删除表格
(2)使用DROP 命令删除Grade表
DROPTABLEGrade;
六、实验体会和收获
此次实验让我收获很大,让我学会了怎样建表,怎样插入数据,怎样建立表之间的关系,让我意识到:
1)创建表很重要,但是更加重要的是要清楚表与表之间的逻辑关系,只有理清了表的逻辑关系,才不容易造成要删除旧表重新建立表这样大出血的事情!
还好我的表里面都还没有插入数据,修改起来比较方便。
2)对于一些重要的SQL文件,应该保存起来做备份,能够帮助后面的学习,有时候总是会犯一些语法错误,看自己之前写的语句,修改起来更加方便快捷。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库原理实验二 数据库 原理 实验