资源描述
实验二 数据表的创建和管理
【实验目的】
(1)掌握数据表的相关理论知识
(2)掌握利用SQL语句创建数据表的方法
(3)掌握利用对象资源管理器创建数据表方法
(4)掌握利用SQL语句操作数据表数据的方法
(5)掌握利用对象资源管理器操作数据表数据的方法
【实验要求】
(1)复习所需理论知识
(2)按照实验步骤的要求完成验证题目
(3)按照自主设计题目要求完成数据表的创建
(4)按照自主设计题目要求完成数据表的数据操作
(5)以班级姓名文件夹形式提交完成的两种实验题目数据文件和日志文件
(6)以班级姓名文件夹形式提交数据表创建和数据操作的SQL语句
【实验环境】
Windows XP操作系统或windows 2000/2003操作系统,SQL Server 2005数据库管理系统
【实验步骤】
一、利用对象资源管理器
(1)按照验证性实验题目的要求完成数据表的创建
(2)按照验证性实验题目的要求完成对数据表数据的操作
(2)按照自主设计实验题目的要求完成数据表的创建
(4)按照自主设计实验题目的要求完成对数据表数据的操作
(5)对自主设计实验题目和验证性实验题目创建相应的数据库关系图
二、利用SQL语句
(1)按照验证性实验题目的要求完成数据表的创建
(2)按照验证性实验题目的要求完成数据表数据的操作
(3)按照自主设计实验题目的要求完成数据表的创建
(4)按照自主设计实验题目的要求完成数据表的数据操作
注意用到的SQL语句要分别保存,并命名为shiyan2_1.sql, shiyan2_2.sql,shiyan2_3.sql,shiyan2_4.sql,shiyan2_5.sql依此类推即可(只要是用到的SQL语句就要保存)
13
【验证性实验题目】
实验所用素材:
student(学生表)
列名
数据类型
长度
是否可空
主码
含义
Sno
Char
8
否
是
学号
Sname
Char
10
否
否
姓名
Ssex
Char
4
是
否
性别
Sage
Int
是
否
年龄
Sdept
Char
20
是
否
系别
Course(课程表)
列名
数据类型
长度
是否可空
主码
含义
cno
Char
8
否
是
课号
cname
Char
20
否
否
课程名
Cpno
Char
8
是
否
先行课号
Ccredit
Int
是
否
学分
Sc(选课)
列名
数据类型
长度
是否可空
主码
含义
Sno
Char
8
否
是
学号
Cno
Char
8
否
是
课号
Grade
Decimal
6,2
是
否
成绩
数据表中参考数据:(也可根据需要自己设计)
Student表中数据:
Sno
Sname
Ssex
Sage
Sdept
20110101
孙晓
女
19
CS
20110102
赵孟州
男
20
CS
20110103
孙迪
男
19
CS
20110104
刘艳伟
女
18
CS
20110201
李地
女
21
IS
20110202
张亚楠
女
20
IS
20110203
褚云伟
男
19
IS
20110301
刘亮
男
21
MS
20110302
于小倩
女
19
MS
20110303
宋楠
女
18
MS
Course表中数据:
Cno
Cname
Cpno
Ccredit
86050101
高等数学
NULL
4
86050102
大学英语
NULL
4
86050201
计算机基础
NULL
3
86050202
C语言
86050201
4
86050203
数据库
86050204
4
86050204
数据结构
86050202
4
86050205
操作系统
86050206
4
86050206
数据处理
86050201
4
86050207
信息系统
86050203
4
Sc表中数据:
Sno
Cno
Grade
20110101
86050101
87
20110101
86050102
96
20110101
86050201
98
20110102
86050201
87
20110102
86050202
54
20110103
86050202
76
一、创建数据表并设置主、外键
1、使用对象管理器
【步骤1】参考实验一,将stud数据库附加到相应的服务器中(如已经在服务数据库结点中,则此步可以省略)。
【步骤2】选择stud数据库结点下的表结点,在此结点上单击鼠标右键,出现弹出式菜单,在弹出式菜单中选择“新建表”,出现如图1所示的设计表视图。
图1 设计表界面
【步骤3】在图1所示的表设计视图中,按照student表的列名和具体列数据类型和允许为空的要求添加student数据表的相应列。并在相仿相应的列属性最下面的“说明”中,注明列的含义。如图2所示。参照第一列的方法按照数据表要求添加所有列并设置相应“说明”。
【步骤4】创建好student数据表后,将光标停在sno列上,然后选择“对象资源管理器”上方的“设置主键”按钮(钥匙形态的按钮),这时在sno列前方就出现了小钥匙形态的图形,说明该列为主键列。如图3所示。然后将表设计器关闭,会出现提示保存的界面,将表的名称改为student,然后保存即可。
图2 设计表中某列的说明
图3 设计表中某列为主键
【步骤5】参照student表的创建方法,创建course表和sc表。注意sc表为双属性构成码,在选择两个属性列时需要使用shift键和鼠标选择配合。
三个表都创建好后(设置号主键),就可以设置相应的外键(外码)关系了。外键的设置主要是针对sc表和course与student表的关系而创建的,它是为了保证表的参照完整性关系。
【步骤6】在数据库stud中下打开“表”结点视图,在其中的dbo.sc表上右击鼠标,在弹出式菜单中选择“修改表”打开表设计视图,然后在“对象资源管理器”上方选择“关系”按钮(“主键”按钮右侧的按钮),出现如图4所示的外键关系界面。
图4 设计表的外键关系
【步骤7】单击“添加”按钮,出现如图5所示界面,在此界面单击“表和列规范”后的浏览按钮,打开如图6所示界面。
选择主键表“student”,并在其下方选择好“sno”属性,然后外键表中将“cno”属性去掉即可。如果需要改变主外键关系名,直接从上方的关系名编辑框中修改即可,这里就是用默认值了。然后单击“确定”按钮。这时student表和sc表的主外键关系就建好了。
图5 单击添加按钮
图6 选择表和列规范
【步骤8】回到图5所示界面,按照【步骤7】接着添加course表和sc表的主外键关系,都设置好后,单击“关闭”按钮即可。
2、使用SQL语言创建数据表并设置主外键关系。
在本次实验附加的stud数据库中利用SQL语言创建数据表,数据表的基本结构参见素材,注意表名分别为student1,course1和sc1,并设置相应的主外键关系和列完整性(自定义完整性)。
【步骤1】单击stud数据库结点(确保当前是在stud数据库中进行操作),然后选择“新建查询”,在出现的SQL语言编辑环境中输入如下语句。
CREATE TABLE STUDENT1 --创建student1表
(SNO CHAR(8) primary key, --学号为主键
SNAME CHAR(8) NOT NULL, --姓名
SSEX CHAR (4), --性别
SAGE SMALLINT, --年龄
SDEPT CHAR(10)); --专业
CREATE TABLE COURSE1 --创建course1表
(CNO CHAR(8) NOT NULL, --课程号
CNAME CHAR(20) NOT NULL, --课程名称
CPNO CHAR(8), --先行课号
CCREDIT SMALLINT, --学分
PRIMARY KEY(CNO)); --课程号为主键
CREATE TABLE SC1 --创建sc1表
(SNO CHAR(8) NOT NULL, --学号
CNO CHAR(8) NOT NULL, --课程号
GRADE INT, --成绩
PRIMARY KEY(SNO,CNO), --学号、课程号为主键
FOREIGN KEY(SNO) REFERENCES STUDENT(SNO), --学号为外键
FOREIGN KEY(CNO) REFERENCES COURSE(CNO), --课程号为外键
CHECK((GRADE IS NULL) OR (GRADE BETWEEN 0 AND 100)));
--成绩约束条件
【步骤2】单击“执行”按钮,然后在stud1数据库结点上刷新一下,然后在下方表结点中会出现student1、course1、sc1表。
【步骤3】将SQL语句保存在指定目录下并命名为shiyan2_1.sql。
使用SQL语句创建数据表应注意以下问题:
(1)在SQL Server2005中,SQL语言加注释使用的是两个短横杠“--”;
(2)对于主码的设置,如果是单属性主码,则直接在属性后利用primary key进行主码说明(属列级完整性),如果是多属性码,则需要单独进行主键说明(属表级完整性),如SC表;
(3)外键关系需要在外键表中进行说明,利用保留字foreign key 和references;
(4)表的创建语句只能执行一次,否则会出现同名表已经存在的错误,而且如果前面的表没有问题,而后面的表有问题,利用“执行”按钮后,前面的没问题的表会创建成功,而后面的表则创建失败,修改后再执行,则会出现表重名问题,所以建议对于初学者,将创建表的语句分开来写,一个表一个SQL语句。
二、建立数据库关系图
数据表创建好后,可以针对数据表建立数据库关系图,已方便查看表间关系,具体方法如下:
【步骤1】在“对象资源管理器”下方的数据库结点中,找到要创建数据库关系图的数据库,这里选择stud,然后展开stud数据库结点,在其下方找到“数据库关系图”结点,右击此结点,在出现大弹出式菜单中选择“新建数据库关系图”。出现如图7所示界面。
图7 创建数据库关系图添加表
图8 创建好的数据库关系图
【步骤2】在图7中,利用ctrl键和鼠标配合将三个表都选上,然后单击“添加”按钮,这时在“对象资源管理器”的右侧的关系图中就出现了如图8所示的三个数据库表关系图。然后关闭关系图界面,将关系图保存即可。
三、为数据表输入数据/删除数据
注意:数据表创建好后就可以输入数据了。数据表输入数据的顺序应该是先输入student(student1)和course(course1)的数据,最后在输入sc(sc1)表的数据。因为sc(sc1)表的数据要参考student(student1)和course(course1)表。
1、使用对象资源管理器法
【步骤1】在stud数据库结点下找到表结点,如未展开则将其展开,找到dbo.student表,右击此表,选择“打开表”命令,出现如图9所示界面。
图9 打开表为表输入数据界面
【步骤2】参照素材中所给数据或根据自己需要输入数据。
注意:主码不能相同。输入完后,单击“关闭”按钮即可完成保存功能,不会再有提示信息。
【步骤3】参照【步骤1】和【步骤2】为course和sc表输入数据。
注意:sc表中的sno和cno属性的值在student和course中必须存在,否则会不满足参照完整性关系。
【步骤4】如果想删除某一条信息要注意,sc表中的信息删除一般不会出问题,但是student和course表的删除就会有问题,如果在sc表中有相应的参照信息则student和course表中的信息不能随便删除。要想删除信息在要删除信息上单击鼠标右键选择“删除”即可。
2、使用SQL方法
使用stud中的student1表为例进行说明。
【步骤1】在相应的数据库stud结点上单击,然后选择“新建查询”按钮,在出现的SQL语句编辑环境中输入如下语句,然后单击“执行”按钮。
insert into student1
values('20021122','刘晨','女',19,'CS')
删除信息使用的命令是:
Delete from student1; --删除学生表全部信息
Delete from student1
Where sno=’20021121’; --删除指定学生信息
如果语句没有问题,在下方相应的消息框中会出现“1行受影响”的字样,如果有错误则出现相应的错误信息。
【步骤2】参考【步骤1】为student1表插入更多数据,并为course1和sc1表插入数据。
使用SQL语句进行插入和删除数据信息时应注意:
(1)由于insert命令没有条件,所以每次只能插入一条数据,如果想插入多条数据就得使用多个insert语句。而delete命令删除数据一次可以删多条。
(2)在用insert命令插入数据时,需要注意,要插入的数据个数与数据类型以及数据的先后顺序必须与表的结构完全一样,否则会出现错误。
(3)利用insert命令插入数据非常灵活,可以插入一整条数据,也可以插入指定属性数据。如:insert into student1(sno,sname)
values(‘20021123’,’赵琳’)
(4)在插入数据时要确保操作的数据库为指定数据库(在处于SQL编辑环境时,对象资源管理器上方有数据库选择的下拉钮,可根据需要进行选择)。
四、修改表结构
针对stud数据库的student表增加标识列,列名为stuid,数据类型为int型。
1、利用对象资源管理器方法
【步骤1】在数据库stud结点的表结点中找到student表,然后右击,选择“修改表”命令,打开表设计器。
【步骤2】将光标停在sno属性上,右击鼠标,在弹出式菜单中选择“插入列”,这时会在sno属性列上方出现一个新的空列,将新的空列属性名设置为stuid,数据类型为int,不允许为空。
【步骤3】在下方的列属性中,将stuid设置为标识列。如图10所示,将标识规范展开,在下方的“是否标识”后面选择“是”,将标识增量和标识种子都设成1。那么stuid列就会根据student表中元组的条数自动进行增1操作,第一条的stuid为1。
图10 为表设置identity列(标识)
2、利用SQL方法
(1)在stud数据库的student1表中增加stuid列,数据类型为整型
【步骤】选中相应的数据库stud结点,然后“新建查询”,在SQL语言的编辑环境中输入如下语句,然后执行。如果需要设置成标识,再利用对象资源管理器方法进行设置即可。
alter table student1 add stuid int identity;
(2)在stud数据库的course1表中,将课程名称设置成唯一值的约束条件。
【步骤】选中相应的数据库stud结点,然后“新建查询”,在SQL语言的编辑环境中输入如下语句,然后执行。
alter table course1 add unique(cname);
如果还需要利用语句进行其他设置请参考教材进行实践即可。
五、数据表索引的设置
当数据表建立好后,一般就会将主键设置好,一旦具有主键,主键就是一个聚簇索引和唯一索引,一个表只能有一个聚簇索引,但可以有多个唯一索引。索引是为了提高检索效率而设置的,但是在更新时如果表的索引过多则会使更新速度变慢。
1、利用对象资源管理器为表student的sname设置唯一索引。
【步骤1】在对象资源管理器下的相应数据库结点上找到表结点,并将其打开,在下面找到具体要设置索引的表,此时选择student,将此表结点展开,在下面找到“索引”选项,然后右击。如图11所示。
图11 为指定表创建索引
【步骤2】在弹出式菜单中选择“新建索引”,这时会打开如图12所示的新建索引窗口。在此窗口中设置索引名称stuname,索引类型为“非聚簇”,将“唯一”前面的复选框选上。
【步骤3】设置好索引的相关内容后,需要指定要为哪一列设置索引,这是需要在图12中选择“添加”按钮,在打开的学生表相关列中选择sname即可(如果是多列则选择多列)。
图12 新建索引窗口
【步骤4】最后单击“确定”按钮,索引创建完毕。
2、利用SQL方法为course的cname列设置唯一索引。
【步骤1】在对象资源管理去中选好数据表所在的数据库结点,然后单击“新建查询”,在SQL编辑环境中输入如下命令:
create unique index couname on course(cname)
【步骤2】单击“执行”按钮,命令完成后索引就创建好了。找到相应数据库结点的相关表的索引结点可以看到相应的索引信息。
如果想为sc表建立sno升序cno降序的唯一索引可采用
create unique index scno on sc(sno asc,cno desc)
3、利用对象资源管理器删除和修改索引
【步骤1】在对象资源管理器下方的相应数据库结点中,找到相应的表结点,将其展开后找到要删除或修改索引的表,将表结点下的索引展开,找到要删除或修改的索引。
【步骤2】在要修改或删除的索引上单击鼠标右键,在弹出是菜单中选择相应操作,如果是要删除则直接选择删除,如果是要修改则选择属性,当修改时除了索引名不能修改,其他都能改。
请同学们自己实践,可以针对自己创建的索引进行修改和删除。
4、利用SQL删除索引
删除索引的命令为drop index 索引名。
六、数据表的删除
1、使用对象资源管理器
数据表删除是找到相应数据库结点后找到相应的数据表,在要删除的数据表上单击鼠标右键,在弹出式菜单中选择删除即可。
2、使用SQL命令
找到相应的数据库结点,然后单击“新建连接”,打开SQL编辑器,然后输入如下命令:
Drop table 表名;
注意:如果使用命令对数据表的插入、删除、修改、建索引等操作,都必须明确表所在的数据库,也就是在对象资源管理器中找到相应的数据库结点并选中后,再单击“新建查询”打开SQL编辑环境,进行语句编辑和执行。
当然也可以在打开SQL编辑环境后,在对象资源管理器上方的数据库下拉列表中选择相应数据库。
【自主设计实验题目】
一、附加实验一创建的数据库ck。
二、针对第一次作业中的相应关系模式设计具体的二维表。
关系模式为:
供应商(供应商号、姓名、地址、电话号码、账号)
仓库(仓库号、面积、电话号码)
职工(职工号、姓名、年龄、职称、仓库号、是否领导(或领导职务))
项目(项目号、预算、开工日期)
零件(零件号、名称、规格、单价、描述)
供应(供应商号、项目号、零件号、供应量)
库存(仓库号、零件号、库存量)
二维表设计为:
(1)gys表
列名
数据类型及长度
是否主码
是否可空
说明
Gysh
Char(10)
是
否
供应商号
Gyxm
Char(10)
否
否
姓名
Gydzh
Char(40)
否
是
地址
Gydh
Char(12)
否
是
电话号码
Gyzhh
Char(20)
否
是
账号
(2)ck表
列名
数据类型及长度
是否主码
是否可空
说明
Ckh
Char(10)
是
否
仓库号
Ckmj
Decimal(10,2)
否
是
面积
Ckdh
Char(12)
否
是
电话号码
(3)zg表
列名
数据类型及长度
是否主码
是否可空
说明
Zgh
Char(10)
是
否
职工号
Zgxm
Decimal(10,2)
否
否
姓名
Zgnl
Smallint
否
否
年龄
Zgzch
Char(20)
否
是
职称
Ckh
Char(10)
否
是
仓库号
Zgld
Char(4)
否
是
是否领导
(4)xm表
列名
数据类型及长度
是否主码
是否可空
说明
Xmh
Char(10)
是
否
项目号
Xmys
Decimal(10,2)
否
是
预算
Xmkg
Date
否
是
开工日期
(5)lj表
列名
数据类型及长度
是否主码
是否可空
说明
Ljh
Char(10)
是
否
零件号
Ljmch
Char(20)
否
否
名称
Ljgg
Char(20)
否
是
规格
Ljdw
Char(4)
否
是
单位
Ljmsh
Varchar(100)
否
是
描述
(6)gy表
列名
数据类型及长度
是否主码
是否可空
说明
Gysh
Char(10)
是
否
供应商号
Xmh
Char(10)
是
否
项目号
Ljh
Char(10)
是
否
零件号
Gyl
Int
否
是
供应量
(7)kc表
列名
数据类型及长度
是否主码
是否可空
说明
Ckh
Char(10)
是
否
仓库号
Ljh
Char(10)
是
否
零件号
Kcl
Int
否
是
库存量
三、在SQL Server2005环境中,使用对象资源管理器创建表(1)--(4),利用SQL语言创建表(5)--(7)(命名规则按照前面的标号继续类推)。
注意:在创建表的过程中要建好相应的主外键。
四、为部分数据表输入模拟数据,注意主键、外键限制和数据类型长度限制。
五、创建数据库关系图,命名为diagram_ck。
六、为表zg表添加标识列,并设置标识规范,标识种子为1,增量为1。
七、为lj表的ljmch(零件名称列)创建唯一索引非聚簇索引。2010年读书节活动方案
一、 活动目的:
书是人类的朋友,书是人类进步的阶梯!为了拓宽学生的知识面,通过开展“和书交朋友,遨游知识大海洋”系列读书活动,激发学生读书的兴趣,让每一个学生都想读书、爱读书、会读书,从小养成热爱书籍,博览群书的好习惯,并在读书实践活动中陶冶情操,获取真知,树立理想!
二、活动目标:
1、通过活动,建立起以学校班级、个人为主的班级图书角和个人小书库。
2、通过活动,在校园内形成热爱读书的良好风气。
3、通过活动,使学生养成博览群书的好习惯。
4、通过活动,促进学生知识更新、思维活跃、综合实践能力的提高。
三、活动实施的计划
1、 做好读书登记簿
(1) 每个学生结合实际,准备一本读书登记簿,具体格式可让学生根据自己喜好来设计、装饰,使其生动活泼、各具特色,其中要有读书的内容、容量、实现时间、好词佳句集锦、心得体会等栏目,高年级可适当作读书笔记。
(2) 每个班级结合学生的计划和班级实际情况,也制定出相应的班级读书目标和读书成长规划书,其中要有措施、有保障、有效果、有考评,简洁明了,易于操作。
(3)中队会组织一次“读书交流会”展示同学们的读书登记簿并做出相应评价。
2、 举办读书展览:
各班级定期举办“读书博览会”,以“名人名言”、格言、谚语、经典名句、“书海拾贝”、“我最喜欢的___”、“好书推荐”等形式,向同学们介绍看过的新书、好书、及书中的部分内容交流自己在读书活动中的心得体会,在班级中形成良好的读书氛围。
3、 出读书小报:
展开阅读全文