实验三数据表的创建与管理Word格式.docx
《实验三数据表的创建与管理Word格式.docx》由会员分享,可在线阅读,更多相关《实验三数据表的创建与管理Word格式.docx(16页珍藏版)》请在冰点文库上搜索。
char(4)
cname
课程名
char(20)
credit
学分
Float
pcno
先修课
describe
课程描述
varchar(100)
表1.3.3选课表SC结构
主键(同时都是外键)
grade
成绩
具体步骤如下:
(1)在SQLServerManagementStudio的对象管理器中,单击数据库前面的“+”号,选择“表”并击右键,在弹出的快捷菜单中选择“新建表”菜单项,则进入设计表字段对话框,如图
图1.3.1设计字段对话框
(2)在设计表字段对话框中,共有三列参数:
列名,数据类型,允许Null值。
“列名”就是数据库表的字段名,而“数据类型”是字段值的类型即整型、字符型、日期时间型等类型,“允许Null值”是用来设置该字段中的值能不能为空。
“列属性”显示在表设计器的底部窗格中。
主要有:
●常规
展开此项可显示“名称”、“允许空值”、“数据类型”、“默认值或绑定”、“长度”、“精度”和“小数位数”。
名称:
显示所选列的名称。
长度:
显示基于字符的数据类型所允许的字符数。
此属性仅可用于基于字符的数据类型。
默认值或绑定:
当没有为此列指定值时显示此列的默认值。
此字段的值可以是SQLServer默认约束的值,也可以是此列被绑定到的全局约束的名称。
该下拉列表中包含数据库中定义的所有全局默认值。
若要将该列绑定到某个全局默认值,可以从下拉列表中进行选择。
另外,若要为该列创建默认约束,可以直接以文本格式键入默认值。
数据类型:
显示所选列的数据类型。
若要编辑此属性,只需单击该属性的值,展开下拉列表,然后选择其它值。
允许Null值:
指示此列是否允许空值。
若要编辑此属性,只需在表设计器的顶部窗格中单击与列对应的“允许Null值”复选框。
●表设计器
展开表设计器部分。
标识规范:
显示此列是否对其值强制唯一性的相关信息。
此属性的值是否为标识列以及是否与子属性“是标识”的值相同。
标识种子:
显示在此标识列的创建过程中指定的种子值。
默认情况下,会将值1赋给该单元格。
标识增量:
显示在此标识列的创建过程中指定的增量值。
计算列规范:
显示计算所得列的相关信息。
该属性显示的值与“公式”子属性的值相同,可显示计算所得列的公式。
公式:
显示计算所得列的公式。
简洁数据类型:
按与SQLCREATETABLE语句同样的格式显示有关字段的数据类型的信息。
排序规则:
显示当使用列值对查询结果的行进行排序时,SQLServer默认情况下对列应用的排序规则顺序。
③设计好表的字段后,单击“关闭”按钮(或直接按“保存”按钮),弹出是否要保存更改的提示对话框,如图
图1.3.2是否要保存更改提示对话框
④单击“是”按钮,弹出选择名称提示对话框,在这里命名为Student,单击“确定”按钮,则建立好了Student表。
用同样方法,可以建立起如表
实验3.2在学生管理数据库“EDUC”中,利用T-SQL语句创建数据表。
表结构如下:
表1.3.4学生信息表Student_info的结构
学生学号
学生姓名
学生性别
s_native
籍贯
varchar(50)
birthday
学生出生日期
Smalldatetime
续表
dno
学生所在院系编号
外键
classno
班级号
entime
学生入校时间
home
学生家庭住址
tel
学生联系电话
char(12)
表1.3.5课程信息表Course_info的结构
课程编号
char(10)
课程名称
experiment
实验时数
tinyint
lecture
授课学时
semester
开课学期
课程学分
表1.3.6学生成绩信息表SC_info的结构
主键(又分别是外键)
tcid
上课编号
smallint
score
学生成绩
表1.3.7教师信息表Teacher_info的结构
tno
教师编号
tname
教师姓名
教师性别
教师出生日期
smalldate
教师所在院系编号
title
教师职称
char(14)
教师家庭住址
教师电话
表1.3.8教师上课信息表TC_info的结构
学期
char(6)
schoolyear
学年
classroom
上课地点
classtime
上课时间
表1.3.9院系信息表Dept_info的结构
院系编号
dname
院系名称
char(16)
d_chair
院系领导
d_address
院系地址
电话号码
表班级信息表Class_info的结构
班级编号
classname
班级名称
monitor
班长
instructor
辅导员姓名
由各数据表之间的联系可以看出,应依次创建院系信息表Dept_info、班级信息表Class_info、学生信息表Student_info、教师信息表Teacher_info、课程信息表Course_info、最后创建学生成绩信息表SC_info和教师上课信息表TC_info。
该实验中只给出前三个数据表的代码,其它数据表创建的代码类似。
在数据库引擎查询文档中输入如下代码。
①创建院系信息表Dept_info代码:
USEEDUC
GO
CREATETABLEDept_info
(
dnochar(4)primarykey,
dnamechar(16)notnull,
d_chairchar(8),
d_addressvarchar(50),
telchar(12)
)
GO
②创建班级信息表Class_info代码:
CREATETABLEClass_info
classnochar(4)primarykey,
classnamechar(16)notnull,
monitorchar(8),
instructorchar(8),
telchar(12),
dnochar(4),
foreignkey(dno)REFERENCESDept_info(dno)
③创建学生信息表Student_info代码:
CREATETABLEStudent_info
snochar(8)primarykey,
snamechar(8)notnull,
sexchar
(2),
s_nativevarchar(50),
birthdaysmalldatetime,
classnochar(4),
entimesmalldatetime,
homevarchar(50),
foreignkey(dno)REFERENCESDept_info(dno),
foreignkey(classno)REFERENCESClass_info(classno)
2.数据输入和更新
(1)使用SQLServerManagementStudio直接输入和修改数据
在“对象资源管理器”中,依次展开“数据库”→“JXGL”→“表”,选择要输入数据的表,单击右键,在弹出的快捷菜单中选择“编辑前200行”菜单项,如图
图1.3.3SQLServerManagementStudio输入和修改数据界面
如果要删除记录,只需选择行头,然后单击右键,在弹出的快捷菜单中选择“删除”命令,弹出删除提示对话框,单击“是”按钮,就可以删除所选择的记录。
如果要修改某条记录,选择该记录所对应的字段项就可以直接修改。
注意:
对于有外关键字字段值的输入,需要先输入参照数据表的数据。
(2)使用T-SQL语句向数据表中插入和更新数据
实验3.3使用T-SQL语句向数据表中插入和更新数据。
①向数据表S中插入记录(’S13’,’吕淑霞’,19,’女’,’CS’),则在数据库引擎查询文档中输入如下代码:
USEJXGL
INSERTINTOS(sno,sname,age,sex,sdept)
VALUES('
S13'
'
吕淑霞'
19,'
女'
CS'
在上述代码中,利用插入语句向数据表中插入了一条记录。
语句格式为:
INSERTINTO表名(字段名1,字段名2,…)valuses(字段值1,字段值2,…)
使用插入语句时要注意以下几点:
●字段名的个数要与字段值的个数相同。
●在插入时,字段名与字段值按对应位置进行插入,所以字段值的类型要与相应字段名的数据类型相同。
●如果字段名允许为空,则可以用NULL代替没有填写的项。
在这里要注意允许为空的含义,允许为空是指该字段值存在,但现在不知道。
正确输入后,按下键盘上的“F5”键或“执行”按钮就执行该SQL语句了,这样就可以向数据表插入数据了。
②吕淑霞同学选修了“电子商务”这门课,期未的考试成绩为95分,SQL语句如下:
USEJXGL
INSERTINTOSC(sno,cno,grade)VALUES('
C10'
95)
其中'
、'
分别为吕淑霞同学的学号和“电子商务”的课程号。
或只给指定属性赋值:
USEJXGL
INSERTINTOSC(sno,cno)VALUES('
C9'
③修改吕淑霞同学“电子商务”的成绩为90。
UPDATESCSETGRADE=90
WHERESNO='
ANDCNO='
④在表SC中删除学号为’S13’和课号’C10’的记录。
DELETEFROMSCWHEREsno='
andcno='
3.数据表结构的修改
(1)使用SQLServerManagementStudio修改表结构
选定要修改的数据表单击右键弹出快捷菜单,选定“设计”菜单,出现图
(2)使用T-SQL语句修改表结构
先打开表所在的数据库,再使用ALTER语句增加、修改或删除字段的相关信息。
实验3.4修改数据表结构。
①为学生表“S”中年龄“age”字段增加约束,限制年龄在15岁到30岁之间(包括15岁和30岁)。
ALTERTABLES
ADDCONSTRAINTCON_ageCHECK(age>
=15andage<
=30)
GO
②在学生表“S”中增加班级字段“class”为可变字符串类型(varchar),长度为20。
ALTERTABLESADDclassvarchar(20)
③修改学生表“S”中的“class”字段的长度为50。
ALTERTABLESALTERCOLUMNclassvarchar(50)
④删除学生表“S”中的“class”字段。
ALTERTABLESDROPCOLUMNclass
4.查看数据表信息
利用sp_spaceused和sp_MSforeachtable这两个存储过程,可以方便的统计出用户数据表的大小,包括记录总数和空间占用情况。
实验3.4查看数据表的相关信息
(1)查看指定表“S”的空间大小等信息。
EXECsp_spaceused'
S'
(2)查看所有用户表的空间表大小等信息。
EXECsp_MSforeachtable"
execsp_spaceused'
?
'
"
四、注意事项
(1)输入数据时要注意数据类型、主键和数据约束的限制。
(2)数据更改和数据删除时要注意外键约束。
五、思考题
(1)数据库中一般不允许更改主键数据。
如果需要更改主键数据时,应怎样处理?
(2)为什么不能随意删除被参照表中的主键。
六、练习题
1.创建数据表。
分别使用SQLServerManagementStudio和T-SQL命令创建图书管理数据库“TSGL”中的四个数据表的结构:
readers(读者信息表)、books(图书信息表)、borrowinf(借阅信息表)、readtype(读者类型表)。
各表的结构如下:
readers表结构
ReaderID
读者编号
Char(10)
Name
读者姓名
Char(8)
RederType
读者类型
Int
BorrowedQuantity
已借数量
int
books表的结构
含义
BookID
图书编号
char(15)
图书名称
Author
作者
Publisher
出版社
varchar(30)
PublishedDate
出版日期
smalldatetime
Price
价格
real
borrowinf表的结构
主键(外键)
BorrowedDate
借阅日期
datetime
ReturnDate
归还日期
readtype表的结构
TypeID
类型编号
类型名称
Varchar(20)
LimitBorrowQuantity
限借数量
BorrowTerm
借阅期限(月)
该表中数据至少包括教师、学生和其他人三种类型。
2.向数据表中输入数据。
利用SQLServerManagementStudio和T-SQL向表中输入数据。
3.依照上述实验,完成下列操作:
①用INSERT命令在readers表中插入两条记录。
②用UPDATE命令将readtype表中教师的限借阅数量修改为30,借阅期限修改为180天。
③用DELETE命令删除书名为“数据结构”的图书信息。
内容总结
(1)实验三数据表的创建与管理一、实验目的要求学生熟练掌握SQLserverManagementStudio的使用和利用T-SQL语句进行数据表的创建和删除,并对数据表和表中数据进行有效的管理
(2)计算列规范:
显示计算所得列的相关信息(3)该属性显示的值与“公式”子属性的值相同,可显示计算所得列的公式