当前位置:文档之家› 数据库上机实验操作步骤

数据库上机实验操作步骤

数据库上机实验操作步骤
数据库上机实验操作步骤

数据库系统原理上机实验

预备知识

一、本实验指导书采用的数据库例子(见本课程参考用书《数据库系统概论》(第三版)P59) Student-Course-SC数据库:一个学生可以修多门课程,一门课程可以被多个学生选修,则

学生、课程之间的E-R图如下:

转化为关系数据模型:

Student(Sno, Sname,Ssex,Sage,Sdept)

Course(Cno,Cname,Cpno,Ccredit)

SC(Sno,Cno,Grade)

物理数据模型如下:

索引:对表Course中的字段Ccredit创建降序索引,索引名为IX_Course_Ccredit;

检查约束:对表Student中的字段Sno创建检查约束LEN(Sno)>4,约束名为CK_Student_Sno;

图表:建立名为“SC_Diagrame1”的图表,反映“SC”、“Student”、“Course”三张表间的

备份和维护计划:为自己所建立的数据库创建备份和维护计划。

二、实验过程中,除了通过实验讲义中的练习熟悉SQL Server2000系统外,同学们必须完成一个数据库应用系统的大作业,题目为“简单的学生选课系统”,编程语言自选,但后台数据库必须采用SQL Server2000。

三、安排的实验总课时为16(不包括编程),实验一至实验四均为2课时,实验五为8课时。

实验一开始使用SQL Server2000

一、实验目的

1、学会安装SQL Server 2000系统:

2、掌握Enterprise Manager的基本用法,熟悉SQL Server 2000环境;

3、掌握使用Enterprise Manager创建数据库、表、索引、关系、检查约束、数据库图表以及管理SQL Server的方法。

二、实验内容

l、安装SQL Server 2000系统(示例:在Windows2000 Professional上安装SQL Server 2000(个人版)

2、启动Enterprise Manager,浏览分层结构

3、创建数据库

4、创建表

5、创建索引

6、创建关系

7、创建检查约束

8、刨建数据库图表

9、管理SQL Server

三、实验步骤

l、在Windows2000 Professional上安装SQL Server 2000个人版

请看这部分的演示SQL Server 2000 setup

2、启动Enterprise Manager,浏览分层结构

在启动Enterprise Manager之前,检查服务管理器,确保服务器正在运行;

现在,选择“开始/程序/Microsoft SQL Server/企业管理器(Enterprise Manager)”,这时,将出现Enterprise Manager窗口;

Enterprise Manager窗口又被分为两个大的窗格,在左边的窗格——树(Console Tree)中,以分层结构显示了Enterprise Manager所能识别的所有SQL Server对象,可以通过单击“展开”图标展开分层结构中的项目(当然,也可以通过双击该项目完成这个功能),相应地,可以通过单击“折叠”图标折叠分层结构中的项目,浏览SQL Server对象;

注意:当单击或双击某个项目时,它所包含的子项目还将显示在右边的大窗格中;

在左边的窗格——树(Console Tree)中,找到“数据库”,展开该对象,其中,“master”、“model”、“msdn”、“tempdb”为“系统数据库”,注意:只许看,不许动!

展开除系统数据库以外的其它数据库,浏览数据库对象。

请看这部分的演示Starting Enterprise Manager

完成这部分的作业:在实验报告中列出你所浏览到的主要的SQL Server对象和数据库

3、创建数据库

3.l创建新的数据库

最简单的方法是使用“创建数据库向导”(Create Database Wizard);

定位到服务器的“数据库”文件夹,单击企业管理器工具栏上的“运行向导”(Wizard)

按钮,这时将出现“选择向导”(Select Wizard)对话框;

在该对话框的“数据库”(Database)区中.选择“创建数据库向导”(Create Database Wizard),单击“确定”,这时将显示向导的第一个页面;

单击“下一步”,这时将显示一个请求新数据库名称和位置的页面;

在“数据库名称”(D atabase name)字段中键入你想要的数据库名称(如:MySC);

单击“数据库文件位置”(Database file location)字段旁的“浏览”(Browse)按钮,更改数据库文件的位置(默认位置为安装该服务器的文件夹MSSQL/data),这时将显示

一个请求新位置的对话框,定位到你想要的文件夹(如,D:\myDatabase\):单击“事务日志文件位置”(Transaction log file location)字段旁的“浏览”(Browse) 按钮,更改事务日志的位置,这时将显示一个请求新位置的对话框。定位到你想要的文件夹(如,D:\myTransactionLog\):

注意:实际应用中你应当将事务日志存放在一个与数据库文件不同的位置,最好在不

同的机器上!

单击“下一步”,这时将显示一个请求数据库文件名称和初始大小的页面,接受默认值单击“下一步”,这时将显示一个页面.让你选择数据库文件是自动增长,还是仅在你

扩大它(们)时增长。接受默认设置;

单击“下一步”,这时将显示一个请求事务日志名称和初始大小的页面,接受默认值;

单击“下一步”,这时将显示一个页面,让你选择是否让事务日志文件自动增长,接受

默认设置;

单击“下一步”,这时将显示一个确认你所做选择的页面;

单击“完成”,这时向导将创建数据库及事务日志文件,然后询问是否为新数据库创建

一个“维护计划”:

单击“否”,这时将关闭该向导。

3、2设置数据库属性

注意:重命名数据库不能在“企业管理器”中进行!

.在“树”窗格中选定“MySC”数据库(即刚才建好的那个库);

.单击工具栏上的“属性”按钮,这时将显示该数据库的“属性”对话框;

.单击“数据文件”选项卡,这时将显示数据库的数据文件的属性;

.将其“增长百分比”设为20%;

.单击“确定”,这时SQLServer将设置新的属性,并关闭“属性”对话框;

3、3删除数据库

.在“树”窗格中选定“MySC”数据库;

按“Delete”键,这时将显示一条要求你确认删除的消息;

.单击“否”(若单击“是”,将删除该数据库及其所有相关的引用!)。

请看这部分的演示Creating Database

完成这部分的作业:创建自己的“学生——课程”数据库

4、创建表

4、1建新表.

.定位到“MySC”数据库的“表”文件夹,这时将显示现有表的列表;

.单击工具栏上的“新建”按钮,这时将打开“表设计器”;

.单击工具栏上的“属性”按钮,这时将打开该表的“属性”对话框;

.更改“表名”为“Student”;

.单击“关闭”,这时将关闭“属性”对话框。

4、2为表添加列

4、2、l为表添加数字型列

在“列名”单元格中键入“Sage”,然后按“Tab”键,这时SQL Server建议将“char” 作为数据类型;

将数据类型改为“tinyint”,这时SQL Server将把列的长度设为“1”.并启用“默认值”、“标识”、“公式”字段;

在“描述”单元格中键入“学生的年龄”。

提示:为列添加描述是SQL Server 2000中新增的功能。

4、2、2为表添加字符型列

在“列名”单元格中键入“Sno”,然后按“Tab”键,这时SQL Server建议将“char”作为数据类型;

.把该列的长度改为“5”;

注意:一个英文字母占l字节,一个汉字占2字节!

.取消选中“允许空”复选框:

注意:“Sno”是主键列,唯一地标识一条记录,显然不可为“空”!

.在“描述”单元格中键入“学生的学号”。

4、2、3为表添加标识列

提示:“标识值”将唯一标识每一行。为表添加标识列后,插入到该表的新行将被自动添加“标识值”。

.在“列名”单元格中键入“Identity”,然后按“Tab”键,这时SQL Server建议将“char”作为数据类型;

将数据类型改为“decimal”,这时SQL Server将把列的长度设为“9”,并启用“精度”、“小数位数”、“标识”字段;

.取消选中“允许空”复选框;

提示:若忘记做这一步,则在后面设置完“标识”字段后会自动完成该步骤。

注意:“标识值”显然不可为“空”!

在“描述”单元格中键入“标识列”;

.将“标识”字段改为“是(不用丁复制)”,这时SQL Server将建议把字段“标识种子”和“标识递增量”的值都设为l,接受该设置。

提示:“标识种子”为该表的第一行被指定的标识值,而标识值将在“标识种子”的基础上按“标识递增量”增加。

4、2、4为表添加日期列

.在“列名”单元格中键入“MyDate”.然后按“Tab”键,这时SQL Server建议将“char”作为数据类型;

.将数据类型改为“datetime”,这时SQL Server将把列的长度设为“8”;

.在“描述”单元格中键入“日期列”。

4、2、5保存和关闭表

.单击“表设计器”’工具栏上的“保存”按钮,这时SQL Server将保存表的定义;.关闭“表设计器”窗口。

4、3管理表

4、3、l修改列

(1)、重新命名列

在“树”中选定“MySC”数据库的“表”文件夹,这时将在“Details Pane”窗格中显示现有表的列表;

.右击“Details Pane”中的“Student”表,然后选择“设计表”,这时SQLServer将打开“表设计器”;

-选定“列名”单元格中的“Identity”,然后键入“MyIdentity”,这时SQL Server 将更改该列的名称;

.单击“表设计器”工具栏上的“保存”按钮,保存所做的更改。

(2)、删除列

. 通过单击列名称左边的灰框来选定”MyDate”列;

.按“Delete”键,这时SQL Server将删除该列;

.单击“表设计器”工具栏上的“保存”按钮,保存所做的更改;

.关闭“表设计器”窗口.

4、3、2修改表

(1)、重新命名表

.在“树”中选定“MySC”数据库的“表”文件夹,这时将在“Details Pane”窗格中显示现有表的列表;

. 右击“Details Pane”中的“Student”表,然后选择”重命名”;

. 键入“NewStudent”,然后按“确定”键。这时SQLServer将显示一个“重命名”对话框,警告“更改表的名称将会使其他对象中对该表的引用失效”;

.单击“查看相关性”,显示可能会受到影响的对象,这时 SQL Server将打开“相关性”对话框;

.关闭该对话框;

.单击“重命名”对话框中的“否”,不改变原有的表名。

(2)、删除表

.选定“Details Pane”中的“Student”表:

.按“Delete”键,这时SQL Server将显示“除去对象”对话框:

提示:可以通过单击“显示相关性”,显示可能会受到影响的对象;

.单击“取消”,暂不删除该表。

注意:删除表时,将从数据库中删除该表及其所有的数据,恢复的唯一方法是使用数据库备份。

请看这部分的演示Creating Table

完成这部分的作业:按“预备知识”的要求创建“Student”、“Course”、“SC”表。

5、创建索引

5、1创建新的索引

5、1、1使用“创建索引向导”创建索引

.从“树”中定位到“Mysc”数据库,这时SQL Server将在“Details Pane”窗格中显示数据库对象的列表;

单击企业管理器工具栏上的“运行向导”(Wizard)按钮,这时将出现“选择向导”(Select Wizard)对话框;

在该对话框的“数据库”(Database)区中,选择“创建索引向导”(Create Index Wizard),单击“确定”,这时将显示向导的第一个页面;

单击下一步”,这时将显示一个页面,请求创建索引所需的数据库和表;

.确保选定的数据库为“MySC”,并选定Student作为表名;

.单击“下一步”,这时向导将显示该表的列;

.单击“Sname”和“Sdept”列的“包含在索引”单元格,以此在索引中包括它们;

单击“下一步”,这时向导将显示一个请求索引属性的页面;

.接受默认值,单击“下一步”,这时向导将显示一个确认你所做选择和请求索引名称的页面;

.选定“Sdept”字段,然后单击“上移”按钮,更改索引的字段顺序(当然,你可以随意更改索引字段的顺序,这里的指示仅作演示之需);

.单击“完成”,这时向导将显示一条确认已经创建索引的消息。

5、1、2创建主键索引

注意:SQL Server将在你定义表的主键时自动创建一个称为“主键索引”的聚集索引(有时又称“聚簇索引”)。在一张表上至多只能建立一个聚集索引!

.在“树”中选定“MySC”数据库的“表”文件夹,这时将在“Details Pane”窗格中显示现有表的列表;

.右击“Details Pane”中的“Student”表,然后选择“设计表”,这时SQL Server 将打开“表设计器”;

.通过单击列名左边的灰框来选定网格中的“Sno”列。这时SQL Server将选定该列;.单击“表设计器”工具栏上的“设置主键”按钮,这时SQL Server将把选定的列设置为主键:

. 单击“表设计器”工具栏上的“保存”按钮,保存所做的设置并关闭窗口。

5、l、3创建简单索引

.右击“Details Pane”中的“SC”表,然后选择“设计表”,这时SQL Server将打开“表设计器”;

.单击“表设计器”工具栏上的“管理索引/键”按钮,这时SQL Server将打开该表的“属性”对话框,其中显示“索引/键”属性页;

提示:也可以通过单击“属性”按钮.打开“属性”对话框,然后单击“索引/键”选项卡,完成这个步骤。

单击“新建”.这时SQL Server将建议把“PK_SC”作为索引名,把“Sno”作为索引列;

提示:即把“IX表名”作为索引名,把表中第一列作为索引列,故是你建表时添加列的次序决定了当前的显示,若因此而与指示的显示不同,不必介意。

. 可将索引名改为“IX__SC_Grade”;

.通过从组合框中选择列来把索引列更改为“Grade”;

.选中“创建UNIQUE”复选框,创建“唯一的索引”;

.选中“索引”选项;

提示:可以根据需要选中“创建UNIQUE”复选框,创建“唯一的索引”。它确保对于索引中定的列,不会在一个表的两个列中包含重复的数据。

. 单击“关闭”.这时SQL Server将关闭“属性”对话框:

. 单击“表设计器”工具栏上的“保存”按钮,保存所做的设置并关闭窗口。

5、l、4创建组合索引

右击"Details Pane”中的“Student”表,然后选择“设计表”,这时SQLServer将打开“表设计器”

单击“表设计器”工具栏上的“管理索引/键”按钮,这时SQLServer将打开该表的“属性”对话框.其中显示“索引/键”属性页;

单击“新建”,这时SQL Server将建议把“IX_Student”作为索引名,把“Sage”作为索引列;

通过单击“列名”单元格,然后从组合框中选择它,将“Ssex”添加到索引中(此时的“列名”中已有了两个索引列了);

.单击“关闭”,这时SQL Server将关闭“属性”对话框;

.单击“表设计器”工具栏上的“保存”按钮,保存所做的设置并关闭窗口。

5、2维护索引

5、2、l修改索引

(1)重新命名索引

.右击“Details Pane”中的“Student”表.然后选择“设计表”,这时SQL Server 将打开“表设计器“;

.单击“表设计器”工具栏上的“管理索引/键”按钮,这时SQL Server将打开该表的“属性”对话框,其中显示“索引/键”属性页;

在“选定的索引”组合框中选定“student_index_1”,这时SQL Server将显示该索引的详细信息;

可将索引名改为“Ix_Student_Sage&Ssex”;

.单击“关闭”,这时SQLServer将关闭“属性”对话框:

.单击“表设计器”工具栏上的“保存”按钮,保存所做的设置。

(2)更改索引中的列

. 确保在“Student”表的设计器里

.单击“表设计器”工具栏上的“管理索引/键”按钮,这时SQL Server将打开该表的“属性”对话框,其中显示”索引/键”属性页;

.在“选定的索引”组合框中选定“IX_Student”,这时SQL Server将显示该索引的详细信息;

.在“列名”字段中选定“Sdept”单元格,然后将索引列更改为“Ssex”;

.单击“关闭”,这时SQL Server将关闭“属性”对话框;

.单击“表设计器”工具栏上的“保存”按钮,保存所做的设置并关闭窗口。

5、2、2删除索引

.确保在“Student”表的设计器里

.单击“表设计器”工具栏上的“管理索引/键”按钮,这时SQL Server将打开该表的“属性”对话框,其中显示“索引/键”属性页;

.在“选定的索引”组合框中选定“Ⅸ_Student”,这时SQL Server将显示该索引的详细信息:

.单击“Delete”按钮,这时SQL Server将删除该索引;

. 单击“关闭”,这时SQL Server将关闭“属性”对话框;

.单击“表设计器”工具栏上的“保存”按钮,保存所做的设置并关闭窗口。

请看这部分的演示Creating Index

完成这部分的作业:按“预备知识”的要求创建索引。

注意:切勿遗漏各表的主键!

6、创建关系

6、1创建一个关系

提示:使用SQL Server可以直接建立一对一、一对多关系,且这两种关系的创建方式是完全相同的,SQL Server将根据在外键表中指定的列来决定关系的类型。而多对多关系是通过“连接表”来创建的,连接表由关系中的一个表的主键组成。在表级上,关系是通过包括

一个多方表(称为“外键表”)的一方表(称为“主键表”)中的唯一标识符(通常情况下为“主键”)来模式化的.

.右击“Details Pane”中的“SC”表,然后选择“设计表”,这时SQL Server将打开“表设计器”;

.单击“表设计器”工具栏上的“管理关系”按钮,这时SQL Server将打开该表的“属性”对话框,其中显示“关系”属性页;

.单击“新建”,这时SQLServer将建议把“Details Pane”中的表格列表的第一个表用于新的关系;

.选择“Course”作为主键表,这时SQL Server建议将“FK_SC_Course”作为关系名; . 选择“Cno”作为主键字段;

. 选择“Cno”作为键键字段;

.单击“关闭”,这时SQL Server将关闭“属性”对话框;

.单击“表设计器”工具栏上的“保存”按钮,这时SQL Server将显示一个对话框,要求确认是否将对这两个表所做的更改保存到你的数据库中;

.单击“是”,这时SQLServer将创建关系;

.关闭“表设计器”窗口。

6、2维护关系

6、2、l重命名关系

.右击“Details Pane”中的“SC”表,然后选择“设计表”,这时SQL Server将打开“表设计器”:

.单击“表设计器”工具栏上的“管理关系”按钮,这时SQL Server将打开该表的“属性”对话框,其中显示“关系”属性页;

.在“选定的关系”组合框中选定“FK_SC_Course”,这时SQL Server将显示该关系的详细信息;

.选定“关系名”字段中的文本,然后键入“DeleteMe”;

.单击“关闭”,这时SQL Server将关闭“属性”对话框;

.单击“表设计器”工具栏上的“保存”按钮,这时SQL Server将显示一个对话框.要求确认是否将对这两个表所做的更改保存到你的数据库中;

.单击“是”,这时SQL Server将创建关系;

.关闭“表设计器”窗口。

6、2、2删除关系

.右击“Details Pane”中的“SC”表,然后选择“设计表”,这时SQLServer将打开“表设计器”;

.单击“表设计器”工具栏上的“管理关系”按钮,这时SQLServer将打开该表的“属性”对话框,其中显示“关系”属性页;

.在“选定的关系”组合框中选定“DeleteMe”,这时SQL Server将显示该关系的详细信息;’

.单击“删除”按钮,这时SQL Server将显示一条要求确认删除的消息;

.单击“是”;

.单击“关闭”,这时SQLServer将关闭“属性”对话框;

.单击“表设计器”工具栏上的“保存”按钮,这时SQL Server将显示一个对话框,要求确认是否将对这两个表所作的更改保存到你的数据库中;

.单击“是”,这时SQL Server将删除关系;

.关闭“表设计器”窗口.

请看这部分的演示Creating Relationships

÷完成这部分的作业:按“预备知识”的要求创建关系。

7、创建检查约束

7、l创建一个检查约束

提示:数据库设计中的一个很重要的方面是确保“数据完整性”.上一部分所讲的“关系”可以确保“相关完整性”;而“检查约束”用于强制数据库完接性的两种其它形式:“域完整性”和“实体完整性”;“域”是列中可以包含的值的范围;“实体完整性”强制实体本身的完整性,还可以涉及一个表中多个列的条件赋值。检查约束以“布尔表达式”的形式来指定。

.右击“Details Pane”中的“Student”表,然后选择“设计表”,这时SQLServer将打开“表设计器”;

. 单击“表设计器”工具栏上的“管理约束”按钮,这时SQL Server将打开该表的“属性”对话框,其中显示“约束”属性页;

.单击“新建”,这时SQLServer将建议把CK_Student”作为约束名,接受这个名称;

.输入“LEN(Sno)>=4”作为约束表达式;

提示:LEN是一个Transact-SQL函数,它将返回字符串中的字符个数.

. 单击“关闭”,这时SQL Server将关闭“属性”对话框;

.单击“表设计器”工具栏上的“保存”按钮,这时SQL Server将检查表中的所有行是否满足检查约束,然后保存约束。

7、2管理检查约束

7、2、1修改检查约束

.确保打开了“Student”表的“表设计器”;

.单击“表设计器”工具栏上的“管理约束”按钮,这时 SQLServer将打开该表的“属性”对话框,其中显示“约束”属性页;

.在“选定的约束”组合框中选定“CK _Student”,这时SQL Server将显示该关系的详细信息;

. 将约束文本改为“LEN(Sno)>4”,作为新的约束表达式;

.单击“关闭”,这时SQL Server将关闭“属性”对话框;

.单击“表设计器”工具栏上的“保存”按钮,这时SQL Server将检查表中的所有行是否满足检查约束,然后保存约束。

7、2、2维护检查约束

(1)重命名检查约束

.确保打开了“Student”表的“表设计器”;

.单击“表设计器”工具栏上的“管理约束”按钮,这时SQL Server将打开该表的“属性”对话框,其中显示“约束”属性页;

.在“选定的约束”组合框中选定“CK_Student”,然后将它改为“CK_Student_Sno” . 单击“关闭”,这时SQL Server将关闭“属性”对话框:

.单击“表设计器”工具栏上的“保存”按钮,这时SQL Server将检查表中的所有行是否满足检查约束,然后保存约束。

(2)删除检查约束

.确保打开了“Student”表的“表设计器”;

.单击“表设计器”工具栏上的“管理约束”按钮,这时SQL Server将打开该表的“属性”对话框,其中显示“约束”属性页;

.在“选定的约束”组合框中选定“CK_Student_Sno”,然后单击“删除”按钮;

.单击“关闭”,这时SQL Server将关闭“属性”对话框;

.单击“表设计器”工具栏上的“保存”按钮,这时SQL Server将删除该约束;

.关闭“表设计器”。

请看这部分的演示Creatin~Constraints

÷完成这部分的作业:按“预备知识”的要求创建检查约束。

8、创建数据库图表

提示:数据库图表为可视化数据库中的表的结构和关系(称为“数据库方案”)提供了一种很好的方法。可以在“关系图”窗口中创建整个数据库方案,但是从现有的表格创建图表是较为常用的方法。

8、l从现有的方案创建数据库图表

8、1、1创建一个教据库图表

. 定位到“MySC”数据库,这时SQL Server将在“Details Pane”窗格中显示数据库对象的列表;

.单击企业管理器工具栏上的“新建”按钮,这时将出现“创建数据库关系图向导”的第一个页面;

.单击“下一步”,这时将显示一个页面,要求你选择要在数据库图表中包括的表;.单击“自动添加相关的表”复选框,并将相关表的级别设为“l”;

.在“可用的表”列表中选定“SC”,然后单击“添加”,这时SQL Server将把"SC”表及所有相关表添加到要在图表中包含的表的列表中;

. 单击“下一步”。这时向导将显示一个页面,要求确认要添加到数据库图表中的表的列表;

.单击“完成”,这时向导将创建图表。

提示:SQL Server用线连接两个表指出它们间存在的关系,可通过单击和拖动来重新组织这些关系线。

.单击“保存”按钮.这时SQL Server将显示一个要求提供图表名称的对话框;

.键入“SC_Diagraml”作为图表名,然后单击“确定”,这时SQL Server将保存图表。

8、1、2更改数据库图表中显示的详细信息

.通过单击图表中的表名选中“SC”表;

提示:可以通过按住“Ctrl”键并单击鼠标左键来选定你所需要的多个表。

.单击“编辑关系图”窗口工具栏上的“显示”按钮,从下拉列表中选择“标准”.这时SQLServer将把“数据类型”、“长度”及“允许空”的设置添加到"SC”表显示的内容中; . 单击工具栏上的“排列表”按钮,这时SQL Server将重新组织数据库图表,以适应“SC”表所需的额外空间;

. 单击“保存”按钮,这时SQL Server将保存这个新的图表布局。

8、l、3将现有的表添加到数据库图表中

.单击工具栏上的“在关系图上添加表”按钮,这时SQL Server将显示“添加表”对话框;

.在列表中选定“dtproperties”表,然后单击“添加”.这时SQL Server将把该表添加到图表中:

提示:由于“dtproperties”表是一个与“MySC”数据库中数据表无关的系统表,故SQLServer将不会在这个图表中添加任何关系线;

单击“关闭”,关闭“添加表”对话框,然后单击“编辑关系图”工具栏上的“保存”按钮.这时SQL Server将用新表保存该图表。

8、l、4从数据库图表中删除表

.右键单击数据库图表中的“dtproperties”表,然后从快捷菜单中选择“从关系图中删除表”.这时SQLServer将从图表中删除该表;

.单击“保存”按钮,这时SQL Server将保存图表。

8、2使用数据库图表维护数据库

8、2、l更改数据库方案

提示:“编辑关系图”窗口还允许在它的图形化环境下维护数据库方案:你可以添加新表、创建关系、修改现有表等,使你方便地进行少量的调整。

在“编辑关系图”窗口中为表添加列

.向下拖动”SC”表的右下角,直到显示出足够的空行;

.单击“列名”字段中的第一个空白单元格。添加一个名为“Description”的新列,将该列的数据类型设置为“varchar”,将“长度”设置为50;

提示:此时“SC“表的名称后多了一个星号(*),表明该表被更改,但尚未保存所做的更改。.单击“排列表”按钮,这时SQL Server将重新调整表的显示大小:

.单击“保存”按钮,这时SQL Server将显示一个要求确认对“SC”表所做更改的对话框;

.单击“是”,这时SQL Server将用新列更新“SC”表,并删除“SC”表名后的星号。

8、2、2创建数据库对象

在“编辑关系图”窗口中创建表

.右键单击“编辑关系图”窗口的空白区域,然后从快捷菜单中选择“新建表”,这时SQL Server将显示一个请求新表名称的对话框;

提示:也可通过单击“编辑关系图”窗口工具栏上的”新建表”按钮来创建新表。

.键入”Sample”作为新表名称,然后单击“确定”.这时SQL Server将把该表添加到图表中;

.为新表添加两个列:

.单击列名左边的灰框选定“Sno”列,然后单击工具栏上的“设置主键”按钮,这时SQL Server将把“Sno”设置为该表的主键;

.右键单击该表,然后从快捷菜单中选择“表视图”,然后选择“列名”这时SQL Server 将更改该表的显示方式;

.单击“保存”按钮,这时SQL Server将显示一个要求确认对数据库图表所做更改的对话框;

.单击“是”,这时SOL Server将把新行添加到数据库中。

8、2、3在“编辑关系图”窗口中创建关系

.在数据库图表中选定“SC”表的“Sno”列,然后将它拖到“Sample”表的“Sno”列中,这时SQL Server将打开“创建关系”对话框;

.单击“确定”,这时SQL Server将关闭该对话框;

.单击“保存”按钮,这时SQL Server将显示一个要求确认对数据库方案所做更改的对话框;

.单击“是”,这时SQL Server将保存该图表,并更新数据库方案。

÷请看这部分的演示Creating Diagram

÷完成这部分的作业:按“预备知识”的要求创建图表。

9、管理SQLServer

9、1备份和恢复数据库

提示:为防止数据库受到诸如计算机硬件失败、软件本身混乱、死机和用户犯错等的破坏,SQL Server提供“备份和恢复数据库”的保护方法,即:定期为数据库制作一个副本,将它们存放在一个安全的位置;一旦出现问题,可以使用这个备份来恢复数据库,恢复到出问题之前的状态。

9、1、l使用“创建数据库备份向导”备份数据库

提示:亦可通过选择数据库快捷菜单中的“备份数据库”来备份数据库.其选项与“备份向导”相同。

定位到“MySC”数据库,单击企业管理器工具栏上的“运行向导”按钮,这时将出现“选择向导”对话框;

在该对话框的“管理”区中,选择“创建数据库备份向导”,单击“确定”,这时将显示向导的第一个页面:

单击“下一步”。这时将显示一个页面,要求你选择要备份的数据库;

确保在组合框中选定“MySC”,然后单击“下一步”,这时将显示一个页面,要求你命名并描述备份;

在描述框中键入"Initial Backup”;

单击“下一步”,这时将显示一个页面,询问你要执行哪一种备份:完全备份、差异备份或事务日志备份;

提示:“完全备份”:制作一个完整的数据库备份;“差异备份”:只记录最后一次完全备份之后更改的信息;“事务日志备份”:允许将数据库恢复到某一特定的时间点,若服务器失败,SQL Server将使用事务日志来自动恢复数据库。

接受默认设置(完全备份),单击“下一步”,这时将显示一个页面,要求你选择备份目标;

单击“浏览”(Browse)按钮,这时将显示“备份设备位置”对话框.定位到你想要的文件夹 (如,D:\MyBackup\);

注意:实际应用中你应当将备份存放在一个与数据库文件不同的位置,最好在不同的机器上!

单击“确定”,返回向导。在“属性”区,你可以选择“追加到”或“重写”备份媒体.选择“追加到备份媒体”;

单击“下一步”,这时将显示一个页面。要求你确认并安排细节;

因为在本次备份中,并未要求SQL Server验证备份,因此取消选中“检查媒体集名称和备份集到期时间”复选框;

提示:SQL Server以“媒体集”的形式组织备份媒体。媒体集可以是单个磁盘文件,亦可是20个甚至更多的备份磁带集。

单击“下一步”,这时将显示一个确认你所做选择的页面;

单击“完成”,这时向导将执行备份,然后将显示一条消息,指出备份已经成功地完成。

9、1、2恢复(还原)数据库

在“树”中右键单击“MySC”指向“所有任务”,然后单击“还原数据库”,这时将显示“还原数据库”对话框;

单击“确定”,执行恢复完毕后,将显示一条消息,指出恢复已经成功完成。

9、2使用“数据库维护计划向导”

提示:SQL Server还提供一种在预定时间定期自动执行备份的机制---“数据库维护计划”。

定位到“MySC”数据库,单击企业管理器工具栏上的“运行向导”按钮,这时将出现“选择向导”对话框:

在该对话框的“管理”区中,选择“创建数据库维护计划向导”,单击“确定”,这时将显示向导的第一个页面;

单击“下一步”,这时将显示一个页面,要求你选择要创建维护计划的数据库;

提示:默认选中你启动向导时所定位的数据库,当然。你可以在该对话框中更改这个选择。

单击“下一步”,这时将显示一个页面,要求你选择要被更新的优化信息;

.单击“下一步”,这时将显示一个页面,询问你是否执行完整性检查;

单击“下一步”,这时将显示一个页面,要求你指定数据库备份计划;

.单击“更改”,这时将显示“编辑反复出现的作业调度”对话框;

.在“发生频率”组中选中“每周”,这时向导将更改该对话框,以反映用于每周备份的选项;

.选中在每周星期日进行备份的选项按钮;

. 单击“确定”,返回向导。

. 单击“下一步”,这时将显示一个页面,要求指定备份目录;

·选中“使用次目录”选项按钮,然后单击“浏览”按钮,这时将显示“查找备份目录”对话框;

·定位到“D:\MyBackup\”,然后单击“确定”,这时将关闭该对话框;

.单击“下一步”。这时将显示一个页面,询问你是否在备份计划中包括事务日志; . 单击“下一步”,这时将显示一个页面,询间在执行完计划后是否生成一个报告; . 单击“下一步”,这时将显示一个页面,询问你是否在本地服务器存储维护历史记录; . 单击“下一步”,这时将显示一个确认你所做选择的页面:

. 单击“完成”,这时向导将创建维护计划,然后将显示一条消息,指出维护计划已经成功地完成。

注意:确保“树\管理\SQL Server代理”正在运行,否则右键单击“SQL Server代理”,在快捷菜单中选择“属性”,打开“属性”对话框,选中“连接”选项卡,单击“确定”,进行连接即可。

请看这部分的演示Creating Maintenance Plan.

完成这部分的作业:按“预备知识”的要求创建数据库备份和维护计划。

数据库实验 (第三次) 题目1 实验内容: 1. 检索上海产的零件的工程名称; 2. 检索供应工程J1零件P1的供应商号SNO; 3. 检索供应工程J1零件为红色的供应商号SNO; 4. 检索没有使用天津生产的红色零件的工程号JNO; 5. 检索至少用了供应商S1所供应的全部零件的工程号JNO; 6. 检索购买了零件P1的工程项目号JNO及数量QTY,并要求对查询的结果按数 量QTY降序排列。

1 select jname from j where jno in (select jno from spj where sno in (select sno from s where city ='上海' ) ); 2 select sno from spj where jno ='j1'and pno ='p1' 3

selectdistinct sno from spj where pno in (select pno from p where color='红'and pno in (select pno from spj where jno ='j1' ) ); 4 selectdistinct jno from spj where pno notin (select pno from p where color ='红'and pno in (select pno from spj where sno in (select sno from s where city ='天津' ) ) )

5 select jno from spj where sno ='s1' 6 select jno,qty from spj where pno ='p1' orderby qty desc 四﹑思考题 1.如何提高数据查询和连接速度。 建立视图 2. 试比较连接查询和嵌套查询 有些嵌套查询是可以用连接来代替的,而且使用连接的方式,性能要比 嵌套查询高出很多 当查询涉及多个关系时,用嵌套查询逐步求解结构层次清楚,易于构造,具有结构化程序设计的优点。但是相比于连接运算,目前商用关系数据库管理系统对嵌套查询的优化做的还不够完善,所以在实际应用中,能够用连接运算表达的查询尽可能采用连接运算。

上机实验七——视图的建立及操作 一、实习目的: 掌握创建、删除、和查询视图的方法,验证可更新视图和不可更新视图。 二、实习准备: 1.复习第三章3.6节视图 2. 完成习题三第16题中的各项操作的SQL语句。 3.了解可更新视图和不课更新视图 三、实习内容:验证习题三第16题中的各项操作的SQL语句。 ①建立01311班选修了1号课程的学生视图Stu_01311_1 CREATE VIEW Stu_01311_1 AS SELECT * FROM Grade WHERE Cno='1'AND Sno in( SELECT Sno FROM Student WHERE Clno='01311') WITH CHECK OPTION ②建立01311班选修了1号课程并且成绩不及格的学生视图Stu_01311_2 CREATE VIEW Stu_01311_2 AS SELECT * FROM Grade

WHERE Cno='1'AND Gmark<60 AND Sno in( SELECT Sno FROM Student WHERE Clno='01311') WITH CHECK OPTION ③建立视图Stu_year,由学生学号、姓名、出生年份组成 CREATE VIEW Stu_year AS SELECT Sno,Sname,year=2001-Sage FROM Student ④查询1990年以后出生的学生姓名 SELECT Sname FROM Student WHERE 2001-Sage<1990; ⑤查询01311班选修了1号课程并且成绩不及格的学生的学号、姓名、出生年份SELECT Sno,Sname,2014-Sage FROM Student WHERE Clno=01311 AND EXISTS(

SQL-Server数据库上机实验报告

《数据库系统原理》上机实验报告 学号:1120131743 姓名:谈兆年 班级:07111301

一、实验目的与要求: ●熟练使用SQL语句 ●掌握关系模型上的完整性约束机制 二、实验内容 1:利用SQL语句创建Employee数据库 CREATE DATABASE Employee; 结果: 2:利用SQL语句在Employee数据库中创建人员表person、月薪表salary及部门表dept。 做法:按表1、表2、表3中的字段说明创建 表1 person表结构 字段名数据 类型 字段 长度 允许空 否 字段说明 P_no Char 6 Not Null 工号,主键P_na Varch10 Not 姓名

me ar Null Sex Char 2 Not Null 性别 Birth date Dateti me Null 出生日期 Prof Varch ar 10 Null 职称 Dept no Char 4 Not Null 部门代码,外键 (参照dept表)表2 salary表结构 字段名数据 类型 字段 长度 允许空 否 字段说明 P_no Char 6 Not Null 工号,主键,外键(参照person表) Base Dec 5 Null 基本工资Bonu s Dec 5 Null 奖金,要求>50 Fact Dec 5 Null 实发工资=基本工 资+奖金 Mont h Int 2 Not Null 月份

表3 dept表结构 字段名数据 类型 字段 长度 允许空 否 字段说明 Dept no Char 4 Not Null 部门代码,主键, Dna me Varch ar 10 Not Null 部门名称 程序为: CREATE TABLE dept( deptno CHAR(4) PRIMARY KEY NOT NULL, dname V ARCHAR(10) NOT NULL) CREATE TABLE Person( P_no CHAR(6) PRIMARY KEY Not Null, P_name V ARCHAR(10) Not Null, Sex CHAR(2) Not Null, Birthdate Datetime Null, Prof V ARCHAR(10) Null, Deptno CHAR(4) Not Null, FOREIGN KEY(Deptno) REFERENCES

数据库原理上机实验指导 一、实验目的和要求 1.实验目的 力图通过本实践课程的学习,使学生掌握数据库管理系统的基本概念、操作方法和管理方法,能够根据用户应用需求设计出合理的数据库应用系统逻辑模型方案,并且实现之。 2.实验要求 本实践课程主要介绍Microsoft SQL Server 2000系统的基本概念、基本知识;讲述数据库管理系统的安装、操作、设计、管理等基本概念及其操作方法;学习如何创建和管理数据库系统的步骤,为承担DBA角色作好准备。重点要求掌握Transact-SQL语言,学会数据库应用系统逻辑模型的设计和实现。 要求学生实验前认真准备,实验后提供实验报告,给出详细实验结果以及设计依据。 实验报告的格式应采用统一封面,统一的实验报告纸。封面应包括:课程名称、实验序号、名称、专业、班级、姓名、同组实验者、实验时间。实验报告内容应包括:实验名称、目的、内容、实验步骤、实验记录、数据处理(或原理论证、或实验现象描述、或结构说明等)。 二、实验环境介绍 1.硬件设备要求 微型计算机,最好具有局域网环境 2.软件设备要求 Windows 2000或Windows XP操作系统; MS SQL Server 2000数据库管理系统。 三、实验内容和学时分配 1.实验内容 实验1:服务器管理 实验2:创建和管理数据库 实验3:Transact-SQL语言——数据查询 实验4:Transact-SQL语言——数据定义与数据更新 实验5:数据库安全与保护——用户管理和权限管理 实验6:数据库安全与保护——数据完整性 实验7:数据库安全与保护——数据库的一致性和并发性 实验8:数据库安全与保护——数据库的备份与恢复 实验9:存储过程和触发器 实验10:嵌入式SQL的使用

创建数据表与数据输入 Part I. 使用SQL Server Management Studio创建数据表和输入数据1. 在SQL Server Management Studio中创建数据表 P69 1.(1)-(6) 2. 为数据表输入数据 P76 4.(1)-(4) 3. 数据浏览 P77 1. (1)-(2) 2. (1)-(3) Part II. 使用SQL语句创建数据表和输入数据 1. 使用SQL语句创建数据表 P72. 例3-2 2.使用SQL语句输入数据 P82. 例3.8 习题:P.105 (1)(2)insert

数据操作Insert、Update、Delete P105 3. 上机练习题(2)(4) Insert (100001, 1000, 2002-12-18 0:00:00) (100002, 2000, 2010-3-20 0:00:00) Update (100001, 1500, 2002-12-18 0:00:00) (100002, 2000, 2012-9-25 0:00:00) Delete

1.将teaching数据库中score表的studentno列设置为引用表student的外键。 ALTER TABLE Score ADD CONSTRAINT FK_score_student FOREIGN KEY (studentno) REFERENCES student(studentno) 2.将teaching数据库中class表的classname创建UNIQUE约束。 ALTER TABLE class ADD CONSTRAINT UQ_class UNIQUE(classname) 执行如下插入语句,查看提示信息 INSERT INTO class VALUES(‘090602’, ’计算机0902’, ’计算机学院’, ’马文斐’) 3. 为teaching数据库中student表的birthday列创建CHECK约束,规定学生的年龄在17-25岁之间。 ALTER TABLE student ADD CONSTRAINT CK_birthday CHECK(YEAR(GETDATE())-YEAR(birthday)) BETWEEN 17 AND 25 执行如下插入语句,查看提示信息 INSERT INTO student(studentno, sname, sex, birthday, classno) VALUES (‘0922221328’, ’张源’, ’男’, ’1983-04-05’, ’090501’) 提示:表达式YEAR(GETDATE())-YEAR(birthday) 4. 为teaching数据库创建规则prof_rule,规定教师职称取值只能为’助教’,’讲师’,’副教授’,’教授’,并将其绑定到teacher表的prof列上。 CREATE RULE prof_rule AS @prof IN(’助教’,’讲师’,’副教授’,’教授’) EXEC sp_bindrule ‘prof_rule’, ‘teacher.prof’ 执行如下插入语句,查看提示信息 INSERT INTO teacher VALUES(‘t05002’, ’张源’, ’软件工程’, ’工程师’, ’计算机学院’) 提示:表达式IN(职称列表) 5. 编写程序,输出在1-3000之间能被17整除的最大数值 提示:可使循环控制变量从最大值开始,逐步减少,第一个满足被17整除的数值即为所求解的结果,可通过BREAK语句跳出循环。(如果使循环控制变量从小到大逐步增加,则循环次数将大大增加,程序执行效率将下降。)PRINT ‘1-3000之间能被17整除的最大数值为:’ +CAST(@i AS CHAR(4)) DECLARE @s INT, @i INT SELECT @s=0, @i=3000 WHILE @i>=1 BEGIN IF @i%17=0 BEGIN PRINT ‘1-3000之间能被17整除的最大数值为:’ + CAST(@i AS CHAR(4)) BREAK END @i = @i-1 END

实验一数据库的创建与连接 目的和要求 (1)掌握PowerBuidler9.0数据库的创建与连接方法; (2)创建一个SQL Server数据库,为其配置ODBC数据源和DBProfile,然后在PowerBuilder环境中连接数据库; (3)创建数据库中的表,管理表并输入数据到表中。 上机准备 (l)启动Windows操作系统,如果在Windows操作系统的控制面板中没有安装ODBC32,必须进行ODBC的安装; (2)进人PowerBuilder 9.0集成环境,熟悉系统环境; (3)创建的应用个人应用mypb; (4)复习创建数据库的有关内容。 上机步骤 1..创建SQL Server 数据库 创建SQL Server数据库的步骤: (1)运行SQL Server 服务; (2)运行SQL Server 企业管理器; (3)创建student数据库; (4)在student数据库中,创建student表(见表1)。 2.配置ODBC 数据源 配置ODBC数据源的步骤: (1)在PowerBuilder数据库画板的窗口中,双击ODBC项下Utlities项的“ODBC Administrator”项,将弹出“ODBC数据源管理器”对话框: (2)选择“用户DSN”页,在该页的列表框中,列出了已有的数据源,若要修改已有的数据源,可以中击“配置”按钮进行修改。这里,我们需要添加一个ODBC数据源,所以,中击“添加”按钮创建新数据源,将出现标题为“创建新数据源”的对话框; (3)在“创建新数据源”的对话框中提供了一个系统支持的数据库驱动程序列表框,选择合适的驱动程序。这儿我们选择SQL Server,单击“完成”按钮,将弹出“创建SQL Server 新数据源”对话框; (4)输入新的数据源名称,这里为mydb。然后,选择想连接的SQL Server服务器,可选择local,然后单击“下一步”按钮; (5)选择SQL Server验证,登录ID 为sa,密码默认为空,然后单击“下一步”按钮; (5)更改默认的数据库为student,然后单击“下一步”按钮; (5)默认系统值,然后单击“完成”按钮;

数据库上机实验内容及要求(第二部分) 1.建立工厂管理数据库 工厂(包括厂名和厂长名)需要建立一个管理数据库存储以下信息: (1)一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址和联系电话; (2)一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和工种; (3)一个车间生产多种产品,产品有产品号和价格;每种产品只能由一个车间生产; (4)一个车间制造多种零件,一种零件也可能为多个车间制造。零件有零件号、重量和价格; (5)一种产品可由多种零件组成,一种零件也可以装配出多种产品; (6)产品和零件均存入仓库; (7)厂内有多个仓库,仓库有仓库号、仓库主任姓名和电话。 根据以上需求分析结果,按照下述要求,设计并建立工厂管理数据库。 ◆分析实体及联系,设计E-R图。 ◆将E-R图转换成关系模式,并规范化到3NF。 ◆在Microsoft SQL Server2000中基于“企业管理器”建立数据库及相关对象(主 码,外码,索引,约束等)。 ◆测试数据入库 2.基于“查询分析器”,完成并保存下述题目的SQL脚本 (1)建立“工种”是“钳工”的所有职工详细信息的视图; create view View_工人_钳工 as select* from职工表 where工种='钳工' with check option (2)建立“车间号”是“CJ01”的钳工详细信息的视图; create view View_钳工_CJ01 as select* from View_工人_钳工 where车间号='CJ01' (3)建立使用了“零件号”是“LJ0002”的所有产品详细信息的视图; create view View_产品_零件LJ0002 as select产品表.产品号,价格,车间号,仓库号 from装配表,产品表 where装配表.产品号=产品表.产品号and零件号='LJ0002'(4)对零件表按照“零件号”建立唯一索引; create unique index Index_U_零件号on零件表(零件号) (5)对职工表按照“性别”建立聚簇索引; create clustered index Index_C_性别on职工表(性别) (6)查询使用了“零件号”是“LJ0002”的产品的生产车间号;

《数据库技术与管理》上机实验报告 班级:工程管理1101班 姓名: 学号:

实验报告一 《数据库技术与管理》上机实验报告 专业:工程管理学号:姓名:班级:1101班 实验时间2012.11.24 实验地点西配楼 实验内容1.创建数据库 (1) A.使用企业管理器创建数据库 B.在Data上点击鼠标右键,选择新建数据库 C.输入数据库名称,并点击数据文件和事务日志选项卡,分别输入相应信息 D.点击确定后可以看到在SQL Server的数据库中新增加了YGKQ数据库。 (2) 使用SQL语句创建数据库 CREATE DATABASE YGKQ ON (NAME=YGKQ _Data, FILENAME='C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\YGKQ_Data.mdf’ SIZE=10MB, MAXSIZE=50MB, FILEGROWTH=5% ) LOG ON (NAME=YGKQ _log, FILENAME=' C:\Program Files\MicrosoftSQL Server\MSSQL\Data\YGKQ _log.ldf ', SIZE=2MB, MAXSIZE=5MB, FILEGROWTH=1MB ) 2. 创建表 (1) 使用企业管理器创建表 第一步:在YGKQ数据库展开点击表,在所有表的展开上点击右键选择新建表 第二步:按照要求依次输入表的列名、数据类型、长度、是否允许空以及对这一列的描述。 第三步:点击鼠标右键,设置主键 第四步:将所有列信息输入完成后点击保存,输入文件名。第一张表创建完成。 可以在表展开中查看到新建的表 第五步:按照上述方法将其他表新建完成。 (2) 使用SQL语句创建表 第一步:打开事件分析器,输入SQL语句 create table qqxl ( sno char(4) primary key, --员工号 sname char(8) not null,--姓名 absent datetime,--缺勤时间(主键) absent int,--缺勤天数(主键)

For the things that have been done in a certain period, the general inspection of the system is also a specific general analysis to find out the shortcomings and deficiencies 数据库上机实验报告正式 版

数据库上机实验报告正式版 下载提示:此报告资料适用于某一时期已经做过的事情,进行一次全面系统的总检查、总评价,同时也是一次具体的总分析、总研究,找出成绩、缺点和不足,并找出可提升点和教训记录成文,为以后遇到同类事项提供借鉴的经验。文档可以直接使用,也可根据实际需要修订后使用。 数据库上机实验报告 试验内容 1、数据表的建立 基本表《简单的》带有主键 带有外码约束的(外码来自其他表或者本表) 2、数据表的修改 添加删除列 修改列属性类型 添加删除约束(约束名) 元组的添加,修改,删除 删除数据表

试验过程 1、createtablestudent ( snochar(9)primarykey,/*sno是主码列级完整性约束条件*/ snamechar(20)unique,/*sname取唯一值*/ ssexchar(2), sagesmallint,/*类型为smallint*/ sdeptchar(20)/*所在系*/ ); createtablecourse ( cnochar(4)primarykey,/*列级完整性约束条件,cno是主码*/

cnamechar(40), cpnochar(4),/*cpno的含义是先行课*/ ccreditsmallint, foreignkey(cpno)referencescourse(cno) /*表级完整性约束条件,cpno是外码,被参照表是course,被参照列是 cno*/ ); createtablesc ( snochar(9), cnochar(4), gradesmallint,

实验二代码参考: 1.-- 创建学生表 create table student ( studid char(6) primary key, studname varchar2(16) not null, gender char(4) check(gender in('男','女')), addr varchar2(256) ); -- 创建课程表 create table course ( courseid char(6) primary key, coursename varchar2(32) not null unique, teacher varchar2(16) , score number check(score in (1,3,5)) ); -- 创建选课表 create table courSelc ( recid number(4) primary key, studid char(6), courseid char(6), score number(2) check(score >=0 and score <=100), constraint fk_stud foreign key(studid) references student(studid), constraint fk_cour foreign key(courseid) references course(courseid) ); 2. alter table student modify studName null; 3.1 alter table course modify courseName null; 3.2 alter table course add examdate date; 4.insert into course values('M1001','数学','奥巴马','3',to_date('2012-1- 1','yyyy-mm-dd')); insert into course values('J2002','军事理论','拿破仑','5',to_date('2012-1-1','yyyy-mm-dd'));

附录C 上机实验 C.1 第4章上机实验 下列实验均使用SQL Server 的SSMS工具实现。 1.用图形化方法创建符合如下条件的数据库(创建数据库的方法可参见本书附录A): ●数据库名为:学生数据库 ●主要数据文件的逻辑文件名为:Students_data,存放在D:\Data文件夹下(若D: 盘中无此文件夹,请先建立此文件夹,然后再创建数据库。),初始大小为:5MB, 增长方式为自动增长,每次增加1MB。 ●日志文件的逻辑文件名字为:Students_log,也存放在D:\Data文件夹下,初始大 小为:2MB,增长方式为自动增长,每次增加10%。 2.选用已建立的“学生数据库”,写出创建满足表C-1到4-4条件的表的SQL语句,并执行所写代码。(注:“说明”部分不作为表定义内容)

(1)在Teacher表中添加一个职称列,列名为:Title,类型为nchar(4)。 (2)为Teacher表中的Title列增加取值范围约束,取值范围为:{教授,副教授,讲师}。(3)将Course表中Credit列的类型改为:tinyint。 (4)删除Student表中的Sid和Sdate列。 (5)为Teacher表添加主键约束,其主键为:Tno。 C.2 第5章上机实验 本实验均在SQL Server 的SSMS工具中实现。首先在已创建的“学生数据库”中创建本章表5-1~5-3所示的Student、Course和SC表,并插入表5-4~5-6所示数据,然后编写实现如下操作的SQL语句,执行所写的语句,并查看执行结果。 1.查询SC表中的全部数据。 2.查询计算机系学生的姓名和年龄。 3.查询成绩在70~80分的学生的学号、课程号和成绩。 4.查询计算机系年龄在18~20岁的男生姓名和年龄。 5.查询C001课程的最高分。 6.查询计算机系学生的最大年龄和最小年龄。 7.统计每个系的学生人数。 8.统计每门课程的选课人数和最高成绩。 9.统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。 10.列出总成绩超过200的学生的学号和总成绩。 11.查询选了C002课程的学生姓名和所在系。 12.查询考试成绩80分以上的学生姓名、课程号和成绩,并按成绩降序排列结果。 13.查询与VB在同一学期开设的课程的课程名和开课学期。 14.查询与李勇年龄相同的学生的姓名、所在系和年龄。 15.查询哪些课程没有学生选修,列出课程号和课程名。 16.查询每个学生的选课情况,包括未选课的学生,列出学生的学号、姓名、选的课程号。 17.查询计算机系哪些学生没有选课,列出学生姓名。 18.查询计算机系年龄最大的三个学生的姓名和年龄。 19.列出“VB”课程考试成绩前三名的学生的学号、姓名、所在系和VB成绩。 20.查询选课门数最多的前2位学生,列出学号和选课门数。 21.查询计算机系学生姓名、年龄和年龄情况,其中年龄情况为:如果年龄小于18,则显 示“偏小”;如果年龄在18-22,则显示“合适”;如果年龄大于22,则显示“偏大”。 22.统计每门课程的选课人数,包括有人选的课程和没有人选的课程,列出课程号,选课人 数及选课情况,其中选课情况为:如果此门课程的选课人数超过100人,则显示“人多”; 如果此门课程的选课人数在40~100,则显示“一般”;如果此门课程的选课人数在1~40,则显示“人少”;如果此门课程没有人选,则显示“无人选”。 23.查询计算机系选了VB课程的学生姓名、所在系和考试成绩,并将结果保存到新表 VB_Grade中。

数据库上机实验报告 Ships表 Classes表 Outcomes表 Battles表

a)找出至少有10门炮的军舰类别名和制造国家 SELECT class, country FROM Classes WHERE numGuns >= 10 b)找出所有在1918年以前下水的舰船的名字,并且把结果列名改为ShipName. SELECT name AS ShipName FROM Ships WHERE YEAR(launched)<1918 c)找出所有在战斗中被击沉的船只和那次战斗的名字。 SELECT ship AS ShipName, battle FROM Outcomes WHERE result='sunk' d)找出所有和它的类别名同名的船只。 SELECT name AS ShipName FROM Ships WHERE name = class e)找出所有以“R”字符打头的船只的名字。 SELECT name AS ShipName FROM Ships WHERE name LIKE'R%'

a)找出重量超过35000吨的船只。 SELECT https://www.doczj.com/doc/e617682160.html, FROM Ships , Classes WHERE Ships.class = Classes.class AND Classes.displacement>35000 b)找出参加Guadalcanal战斗的船只的名字、排水量和火炮数量。 SELECT https://www.doczj.com/doc/e617682160.html,, C.displacement, C.numGuns FROM Ships S, Outcomes O, Classes C WHERE https://www.doczj.com/doc/e617682160.html,=O.ship AND S.class =C.class AND O.battle ='Guadalcanal' c)列出数据库在抗洪提到的所有船只。 SELECT name ShipName FROM Ships UNION SELECT ship ShipName FROM Outcomes d)找出同时拥有战列舰和巡洋舰的国家。 SELECT C1.country FROM Classes C1, Classes C2 WHERE C1.country = C2.country AND C1.type='bb'AND C2.type='bc';

数据库上机实验报告 4 学号:姓名:日期:年月日 实验目的:(1)练习连接查询;(2)练习视图的创建与使用;(3)学习使用ODBC的方法;(4)体验T-SQL的功能;体验存储过程的功能;体验表值函数、标量值函数的作用;体验ranking等功能。 1 练习视图及连接查询。 (1)创建一个视图,视图名为viNF,视图内容为select id,count(*) as nf from friends group by id。执行成功后,将SQL语句复制到下方。 (2)基于viNF视图,查找拥有最多好友的用户、最少好友的用户。执行成功后,将SQL语句复制到下方。 (3)基于users表和viNF视图进行连接查询。分别进行内连接、全外连接、左外连接、右外连接四种操作。执行成功后,将SQL语句复制到下方,并回答:四种结果表,哪两个的结果是一致的,为什么? (4)将题(3)中全外连接保存为一个新的视图viUAF。 2 通过ODBC用Excel打开users表。 3 体验T-SQL。 回顾实验2中的题目: 定义最低价格为成本价;依据此成本价做如下计算: 连接Goods,Goods_Extent,Sellers表,按照总利润,输出前10名;要求输出表的格式为(商品名称,卖家名称,商品价格,运费,卖家信誉,卖家好评率,历史销量,历史利润,期内销量,期内利润,总销量,总利润) 利用如下语句进行查询,体会和之前有什么不同。如感兴趣,自己可以仿照写一个变量定义、赋值及应用的例子。 declare @cost as float; select @cost=min(good_price)from goods; select top 10 good_name as商品名称, goods.seller_name as卖家名称, good_price as商品价格, good_shipping as运费,

实验一 (1)无条件单表查询 select sname NAME,'year of birth:' BIRTH,2004-sage BIRTHDAY,LOWER(sdept) DEPARTMENT FROM student; (2)有条件单表查询 SELECT sname,sdept,sage FROM student WHERE sage NOT BETWEEN 20 AND 23; (3)单表嵌套(一层)查询 SELECT sno,sname,sdept FROM student WHERE sdept IN(SELECT sdept FROM student WHERE sname='刘晨'); (4)复合条件多表查询 SELECT student.sno,sname,cname,grade FROM student ,sc,course WHERE student.sno=sc.sno AND https://www.doczj.com/doc/e617682160.html,o=https://www.doczj.com/doc/e617682160.html,o; (5)使用COUNT()的单表查询 SELECT COUNT(*) FROM student; (6)使用AVG()的单表查询 SELECT AVG(grade) '平均成绩' from SC where CNO='1'; (7)查询结果分组 SELECT cno,COUNT(sno) '人数' FROM sc GROUP BY cno; (8)查询结果排序 SELECT * FROM student ORDER BY sdept,sage DESC; (9)使用通配符的查询 SELECT sname,sno,ssex FROM student WHERE sname NOT LIKE'刘%'; (10)使用换码字符的单表查询 SELECT cno,ccredit FROM course WHERE cname LIKE 'DB\_Design'ESCAPE'\'; (11)插入单个元组 插入一个新学生元组 Insert into student (sno,sname,ssex,sdept,sage) values ('200215128','陈冬','男','IS',18) (12)插入子查询结果 对每一个系,求学生平均年龄,并把结果存入数据库 Create table dept_age(sdept char(15),avg_age int) Insert into dept_age(sdept,avg_age) select sdept,avg(sage) from student group by sdept (13)修改某个元组的值 将学生200215121的年龄改为22岁 Update student set sage=’22’ where sno=’200215121’ (14)修改多个元组的值

试用SQL的查询语句表达下列查询: 1.检索王丽同学所学课程的课程号和课程名。 select Cno ,Cname from c where Cno in (select cno from sc where sno in (select sno from s where sname='王丽' )) 2.检索年龄大于23岁的男学生的学号和姓名。 select sno,sname from s where sex='男' and age>23 3.检索‘c01’课程中一门课程的女学生姓名 select sname from s where sex='女' and sno in (select sno from sc where cno='c01') 4.检索s01同学不学的课程的课程号。 select cno from c where cno not in (select cno from sc where sno ='s01') 5.检索至少选修两门课程的学生学号。 select sc.sno from s,sc where s.sno=sc.sno group by sc.sno having count(https://www.doczj.com/doc/e617682160.html,o)>=2 6.每个学生选修的课程门数。 解法一: select so.sno sno,https://www.doczj.com/doc/e617682160.html,ount,s.sname from(select sc.sno sno,count(sc.sno) ccount from sc,s where s.sno=sc.sno group by sc.sno ) so,s where s.sno=so.sno 解法二: select sc.sno sno,s.sname,count(sc.sno) ccount from sc,s where s.sno=sc.sno group by sc.sno,sname

在订单数据库OrderDB中,完成如下的查询: (1)查询员工的姓名、职务和薪水。 select employeeName 员工姓名,headShip 职务,salary 薪水 from Employee (2)查询姓名中含有“有限”的客户名称和所在地。 select customerName 客户名称,address 所在地 from customer where customerName like'%有限%' (3)查询出姓“张”并且姓名的最后一个字为“梅”的员工。 select employeeNo 编号,sex 性别,birthday 出生日期,address 地址,telephone 联系电话,employeeName 员工姓名,headShip 职务,salary 薪水 from Employee where employeeName like'张%梅' (4)查询住址中含有“上海”或“南昌”的女员工,并显示其姓名、所属部门、职务、住址、出生日期和性别。如果出生日期为空,则显示“不祥”,否则按格式 “yyyy—mm—dd”显示,性别用“男”和“女”显示。 select employeeName 员工姓名,department 所属部门,headShip 职务,address 地址, case sex when'F'then'女' when'M'then'男' end性别, isnull(convert(char(10),birthday,120),'不详')出生日期 from Employee where sex like'F'and address like'上海%'or sex like'F'and address like'南昌%' (5)查询出职务为“职员”或职务为“科长”的女员工的信息。 select employeeNo 员工编号,employeeName 员工姓名, case sex when'F'then'女' when'M'then'男' end性别,birthday 出生日期,address 地址,telephone 联系电话,hireDate 雇佣时间,department 所属部门,headShip 职务,salary 薪水 from Employee where sex like'F'and headShip like'职员'or sex like'F'and headShip like'科长' (6)选取编号不在C20050001~C20050004之间的客户编号、客户名称、客户地址。 select customerNo 客户编号,customerName 客户名称,address 地址 from Customer where customerNo not between'C20050001'and'C20050004' (7)在表OrderMaster中挑选出销售金额大于等于5000元的订单。 先统计订单主表中的订单金额,使用命令:

重庆邮电大学移通学院 数据库集中上机报告 学生:马志鹏 学号: 022******* 班级: 02210901 专业:计算机应用技术 重庆邮电大学移通学院 2011年6月

第一天:Access数据库基本操作 1 实验目的 1、熟悉的掌握Access数据库结构与创建 2、了解创建、修改、删除、查询、保存等操作 3、输入数据创建、设计器创建、向导创建。 2 实验内容 3 实验结果 1. 2. 2

重庆邮电大学移通学院 3 2 Access 数据表的编辑 第二天 数据表基本操作 1 表关系与编辑数据 1 实验目的: 1、实现一对一,一对多,多对多的实体关系 2、对“学生基本信息”表中的记录进行排序,按出生日期降序排列 3、从“学生基本信息”表中筛选出所有计算机系男生的记录 4、从“学生基本信息”表中筛选出回族和蒙古族的所有学生记录

2 实验内容 1. SELECT 学生基本信息表.学生姓名, 成绩档案表.* FROM 成绩档案表INNER JOIN 学生基本信息表ON 成绩档案表.学生学号= 学生基本信息表.学生学号 WHERE (((学生基本信息表.学生姓名)="张冰冰")); 2 SELECT 学生基本信息表.* FROM 学生基本信息表 WHERE (((学生基本信息表.性别)="男") AND ((学生基本信息表.班级名称)="计算机系")); 3 SELECT 成绩档案表.C语言, 课程表.* FROM 成绩档案表, 课程表; 4 SELECT 学生基本信息表.*, 学生基本信息表.性别, 学生基本信息表.班级名称FROM 学生基本信息表WHERE (((学生基本信息表.性别)<>"男") AND ((学生基本信息表.班级名称)<>"计算机系")); 5 SELECT 学生基本信息表.*, 学生基本信息表.出生日期 FROM 学生基本信息表WHERE (((Month([出生日期]))=9) AND ((Day([出生日期]))=1)); 6 SELECT 学生基本信息表.* FROM 学生基本信息表WHERE (((学生基本信息表.学生姓名) Like "李*")); 3 实验结果 4

《数据库技术与应用》上机实验报告 姓名:谢优贤 学号:020******* 专业班级:安全工程1003班

通过这次上机实验,我做了学生信息管理系统数据库,通过创建表、查询、窗体、报表和宏对输入数据库中的学生的基本信息进行整理和操作,以便得到我们想要的信息。学生信息管理系统可以实现对学生的基本信息:学号、姓名、联系方式、性别、成绩等的查询,还有对教师的情况进行比较了解从而可以帮助学生更好地选课和学习,省去了纸质档案管理不方便的方面。 通过窗体的创建和美化,使我们在操作数据时有一个简洁明了美观的窗口,简化了用户的操作程序,方便用户的使用。报表的创建可以使用户想要的数据很好地呈现在纸上。使用宏命令还使数据库有了设置密码的功能,很好的保护了数据的使用权限;也可以使用宏命令打开我们希望打开的窗口。 一、主要上机内容 1. 数据库的创建: 我使用自行创建数据库的方式进行创建,数据库文件名为学生信息管理系统。数据库要实现的主要功能:学生基本信息及学习成绩情况的统计,通过窗体进行学生信息的查询、学生信息及成绩的普通查询、打印学生信息报表等。 2. 表的创建: 基本表为学生信息表、学生成绩表、教师信息表、课程信息表等均使用设计器创建表学生信息表的记录: 学生信息表结构: 在学生信息表中设置了学号为主键,为了方便输入又在学号字段中设置了掩码(如下图)

学生年龄一般不会太大或太小,于是为了防止填写信息时出错,添加了有效性规则 性别只有男和女之分,于是为了方便,选择了查询向导 同样在入学日期和电话字段也设置了输入掩码 头像属于图片类型,其数据类型为“OLE对象”,所得荣誉和自我介绍选择了“备注”类

相关主题
文本预览
相关文档 最新文档