1.实验目的
(1)把握启动和停止数据库效劳。
(2)熟练把握利用SQL Server Management Studio创建和删除数据库的方式。
(3)熟练把握利用SQL Server Management Studio创建和治理数据表的方式。
2.实验环境
操作系统:WINDOWS XP/2000/2003/vista
数据库治理系统:SQL SERVER 2005
3.实验内容
(1) 启动数据库效劳。
(2) 利用SQL Server Management Studio创建数据库:Warehouse1。
(3) 在Warehouse数据库中创建3张表:Receipt、Product、Storage。
(4) 在Receipt、Product、Storage表中输入数据。
4.实验步骤
(1)启动SQL Server效劳。在“开始”菜单上,依次点击“程序”|“Microsoft SQL Server 2005”|“配置工具”|“SQL Server Configuration Manager”选项。选择“SQL Server(MSSQLSERVER)”,单击鼠标右键后,选择“启动”。
(2) 在SQL Server Management Studio窗口当选择“数据库”文件夹,选择“新建数据库”命令,输入新建数据库的名字Warehouse1,单击“确信”按钮。
(3) 在Warehouse1数据库中成立表Receipt、Product、Storage,各表结构如下所示:
表3-4 Receipt表结构
| 列名 | 说明 | 数据类型 | 是否为主码 |
| ReceiptID | 入库单编号 | 字符型,长度为10 | 是 |
| ReceiptDate | 入库日期 | 日期时间型 | 否 |
| Vendor | 供应商名称 | 字符型,长度为50 | 否 |
| Remark | 备注 | 文本型 | 否 |
| 列名 | 说明 | 数据类型 | 是否为主码 |
| ProductID | 商品编号 | 字符型,长度为10 | 是 |
| ProductName | 商品名称 | 字符型,长度为20 | 否 |
| Unit | 计量单位 | 字符型,长度为10 | 否 |
| Price | 商品价格 | 定点精度型,精度为10,小数点后保留2位小数 | 否 |
| ProductionDate | 生产日期 | 字符型,长度为50 | 否 |
| 列名 | 说明 | 数据类型 | 是否为主码 |
| ReceiptID | 入库单编号 | 字符型,长度为10 | 是 |
| ProductID | 商品编号 | 字符型,长度为10 | 是 |
| Quantity | 入库数量 | 短整型 | 否 |
(5) 右击鼠标,选择“打开表”命令,打开表的数据记录窗口。
(6) 输入如表3-7所示的Recipt数据记录。
表3-7 Receipt表数据
| ReceiptID | ReceiptDate | Vendor | Remark |
| R0 | 2008-10-8 | 杭州娃哈哈 | 无 |
| R0 | 2008-11-24 | 沈阳桃李面包 | 无 |
| R0 | 2009-1-20 | 蒙牛乳业 | 无 |
| R0 | 2009-4-09 | 广东喜之郎 | 无 |
表3-8 Product表数据
| ProductID | ProductName | Unit | Price | ProductionDate |
| P001 | 娃哈哈纯净水 | 瓶 | 2008-9-16 | |
| P002 | 娃哈哈运动饮料 | 瓶 | 2008-9-20 | |
| P003 | 娃哈哈营养快线 | 瓶 | 2009-9-10 | |
| P004 | 蒙牛早餐奶 | 盒 | 2009-1-10 | |
| P005 | 蒙牛纯牛奶 | 袋 | 2009-1-8 | |
| P006 | 桃李面包 | 袋 | 2008-11-22 | |
| P007 | 喜之郎果冻 | 袋 | 2009-2-15 | |
| P008 | 德芙巧克力 | 袋 | 2009-3-28 |
表3-9 Storage表数据
| ReceiptID | ProductID | Quantity |
| R0 | P001 | 50 |
| R0 | P002 | 35 |
| R0 | P003 | 22 |
| R0 | P006 | 85 |
| R0 | P004 | 63 |
| R0 | P005 | 68 |
| R0 | P007 | 26 |
(10)删除Receipt表的Dealer列,保留该表。
(11)删除Receipt表。
(12)删除Warehouse1数据库。
5.试探题
(1) 有几种方式设置开机启动SQL Server效劳?
(2) 在为数据库创建表之前应该考虑哪些问题?
(3) 创建数据库和数据表时需要注意哪些问题?
实验2 SQL语言实验:数据概念
1.实验目的
(1)熟悉各类数据类型。
(2)能够运用数据概念语言(DDL)正确创建和治理数据库和数据表。
(3)把握6种经常使用的数据完整性约束。
2.实验环境
操作系统:WINDOWS XP/2000/2003/vista
数据库治理系统:SQL SERVER 2005
3.实验内容
(1) 利用数据概念语言创建数据库:Warehouse2。
(2) 利用数据概念语言在Warehouse数据库中创建3张表:Receipt、Product、Storage。
4.实验步骤
(1)打开SQL Server Management Studio窗口,在工具栏上单击“新建查询”命令,打开查询窗口。
(2) 利用CREATE DATABASE语句新建数据库,名为Warehouse2。
(3) 利用CREATE TABLE语句在Warehouse2数据库中成立表Receipt、Product、Storage,各表结构如下所示:
表4-14 Receipt表结构
| 列名 | 说明 | 数据类型 | 约束 |
| ReceiptID | 入库单编号 | 字符型,长度为10 | 主码 |
| ReceiptDate | 入库日期 | 日期时间型 | 非空 |
| Vendor | 供应商名称 | 字符型,长度为50 | 非空 |
| Remark | 备注 | 文本型 |
| 列名 | 说明 | 数据类型 | 约束 |
| ProductID | 商品编号 | 字符型,长度为10 | 主码 |
| ProductName | 商品名称 | 字符型,长度为20 | 取值惟一 |
| Unit | 计量单位 | 字符型,长度为10 | 默认值为“件” |
| Price | 商品价格 | 定点精度型,精度为10,小数点后保留2位小数 | 取值大于0 |
| ProductionDate | 生产日期 | 字符型,长度为50 | 非空 |
| 列名 | 说明 | 数据类型 | 约束 |
| ReceiptID | 入库单编号 | 字符型,长度为10 | 主码,引用Receipt的外码 |
| ProductID | 商品编号 | 字符型,长度为10 | 主码,引用Product的外码 |
| Quantity | 入库数量 | 短整型 | 取值大于0 |
① 插入Dealer(经手人)列,数据类型为整型。
② 插入Checker(审核人)列,数据类型为字符型,长度为10。
③ 将Dealer列的数据类型改为字符型,长度为10。
④ 删除Dealer列。
⑤ 删除Checker列。
(5)利用CREATE INDEX语句为Receipt表在ReceiptDate列上成立降序排列索引I_Date。
(6) 删除Receipt表的I_Date索引。
(7)删除Receipt表。
(8)删除Warehouse2数据库。
5.试探题
(1) 用sql语句创建表时需要注意哪些问题?
(2) 如何修改表的结构?
(3) 删除索引时需要注意哪些问题?
实验3 SQL语言实验:数据操纵
1.实验目的
(1)熟练把握数据查询语句的大体用法。
(2)熟练把握数据更新语句的大体用法。
2.实验环境
操作系统:WINDOWS XP/2000/2003/vista
数据库治理系统:SQL SERVER 2005
3.实验内容
(1) 利用数据操纵语言(DML)完成对Warehouse1数据库中大体表的数据查询。
(2) 利用数据操纵语言(DML)完成对Warehouse1数据库中大体表的数据更新。
4.实验步骤
(1)打开SQL Server Management Studio窗口,在工具栏上单击“新建查询”命令,打开查询窗口。
(2)简单查询。
1 查询全部商品的商品编号和名称。
2 查询全部商品的详细记录。
3 查询Storage表中的所有商品编号(排除取值相同的行)。
4 查询供给商为“杭州娃哈哈”的所有入库单信息。
5 查询入库数量大于40件的入库明细信息。
6 查询商品价钱在10~20(包括10和20)的商品信息。
7 查询供给商为“杭州娃哈哈”、“蒙牛乳业”、“广东喜之郎”的入库单信息。
8 查询商品名称最后三个字是“纯净水”的商品的名称及其价钱。
9 备注为空的入库单信息。
10 查询生产日期在2020年,而且价钱高于2元的商品编号、名称及其价钱。
11 查询所有商品信息,查询结果按商品价钱降序排列。
12 查询2020年入库的入库单编号、入库日期及供给商名称,查询结果按供给商降序排列,同一供给商的入库单按入库日期升序排列。
13 统计所有入库单的总数量。
14 查询商品编号为“P001”的入库总数量。
15 查询商品表中的最高价钱、最低价钱和所有商品的平均价钱。
(3)连接查询与嵌套查询。
1 查询每张入库单及其入库商品的情形,列出入库单编号、入库日期、供给商名称、入库商品名称、入库数量。
2 查询与“P001”(注:商品编号)同年生产的商品信息。
3 查询“杭州娃哈哈”供给的所有商品的编号、名称、单价。
4 查询“桃李面包”的所有入库明细,列出入库单编号、入库日期、入库数量。
5 统计入库商品种类超过2种入库单编号及入库日期。
(4)数据更新。
1 向大体表Receipt中插入如下入库单元组:
| ReceiptID | ReceiptDate | Vendor | Remark |
| R0 | 2008-10-8 | 杭州娃哈哈 | |
| R0 | 2009-1-20 | 蒙牛乳业 |
3 将Storage表中所有的入库数量增加10件。
4 将“蒙牛乳业”供给的所有商品的入库数量改成零。
5 删除入库单编号为“R0”的入库单记录。
6 从Storage表中,把“杭州娃哈哈”供给的“娃哈哈纯净水”商品的入库记录删除。
7 删除Storage表中的所有入库明细记录。
5.试探题
(1)创建查询时,应遵循的大体原那么有哪些?
(2)能够在WHERE中利用的运算符有哪些?各运算符的功能是什么?
(3)关于表Storage,别离执行DROP TABLE Storage和DELETE FROM Storage两条命令,结果有什么不同?
实验4 视图的创建与利用
1.实验目的
(1)熟练把握创建视图语句的大体用法。
(2)熟练把握查询、更新和删除视图语句的大体用法。
2.实验环境
操作系统:WINDOWS XP/2000/2003/vista
数据库治理系统:SQL SERVER 2005
3.实验内容
(1) 利用SQL语言在Warehouse1数据库上创建视图。
(2) 利用SQL语言完成对所创建视图的查询、更新和删除操作。
4.实验步骤
(1)打开SQL Server Management Studio窗口,在工具栏上单击“新建查询”命令,打开查询窗口。
(2) 创建视图。
① 成立2020年生产的商品视图。
② 成立2020年生产的商品视图,输出其商品编号、名称、价钱。
③ 成立2020年生产的商品视图,输出其商品编号、名称、价钱,而且改换列名。
④ 修改Product表的结构,增加Remark(备注)一列,再执行上述3组语句,查看结果。
⑤ 成立供给商为“杭州娃哈哈”供给2020年生产的商品的入库单视图。
⑥ 将商品编号及其平均入库数量成立一个视图。
⑦ 成立一个反映入库单年份的视图。
(3) 查询视图。
① 查询价钱高于10元的2020年生产的商品信息。
② 查询平均入库数量超过50件的商品信息。
③ 统计每一年的入库单数量。
(4)更新视图。
① 向2020年生产的商品视图中插入一条记录,其中商品编号为P011,名称为亲亲果冻,计量单位为袋,价钱为8元,生产日期为2020-5-16。
② 通过如下两组SQL语句,成立2020年的入库单视图。然后别离向两视图中插入一条2020年入库的入库单记录,查看执行结果。
CREATE VIEW Receipt_2020_1
AS
SELECT ReceiptID, Vendor, Remark FROM Receipt
WHERE Year(ReceiptDate) = ‘2020’
CREATE VIEW Receipt_2020_2
AS
SELECT ReceiptID, Vendor, Remark FROM Receipt
WHERE Year(ReceiptDate) = ‘2020’
WITH CHECK OPTION
③ 将2020年生产的商品视图中的“亲亲果冻”的商品价钱改成10元。
④ 删除价钱高于20元的2020年生产的商品信息。
(5)删除视图。
删除视图Receipt_2020_1和Receipt_2020_2。
5.试探题
(1) 创建视图需要注意哪些问题?
(2) 哪些视图不许诺更新?
(3) 视图与大体表之间有什么关系?
实验5 数据库设计
(一)实验目的与要求
1.熟悉E-R模型的大体概念和图形的表示方式。
2.把握将现实世界的事物转化成E-R图的大体技术。
3.熟悉关系数据模型的大体概念。
4.把握将E-R图转化为关系表的大体技术。
(二)实验环境
SQL SERVER 2000
(三)预备工作
安装好SQL SERVER2000
(四)实验内容
现需要开发一个数据库,对所有学生社团进行统一治理。每一个社团都会从社团成员当选出一名学生作为负责人,每一个社团有一个指导教师。学生能够志愿选择参加一个或多个社团,每一个社团也由多名学生组成。凡参加社团的学生都以学号识别。各社团的信息包括社团名称、成立日期、指导教师姓名、负责人、活动地址等。社团成员的信息包括学号、姓名、性别、所在系等。
1.依照需求确信实体,属性和联系。
2.将实体,属性和联系转化为E-R图。
3.将E-R图转化为表
(五)实验步骤
1.依照需求提炼出实体
2.确信实体间的联系
3.生成多个分E-R图
4.归并分E-R图,生成初步E-R图
5.确信各个实体和联系的属性
6.排除冗余,设计大体E-R图
7.把E-R图转换为关系模型,并进行优化
8.设计用户的子模式
9.把关系模式转换为物理表
10.写出创建表的语句,并在SQL SERVER中实现
实验6 数据库平安
1.实验目的
(1)把握如何治理数据库用户。
(2)把握如何治理数据库角色和如何为数据库角色添加和删除用户。
(3)熟练把握如何授予和剥夺权限。
2.实验环境
操作系统:WINDOWS XP/2000/2003/vista
数据库治理系统:SQL SERVER 2005
3.实验内容
利用SQL Server Management Studio完成对Warehouse数据库的平安治理。
4.实验步骤
(1)打开SQL Server Management Studio窗口,设置效劳器身份验证模式为“SQL Server和Windows身份验证模式”。
(2)创建登录账户User1,User2,User3,User4。
(3)新建Warehouse数据库用户User1,User2,User3,User4,并将其别离关联到User1,User2,User3,User4登录账户中。
(4)新建Warehouse数据库角色Role,并将用户User1,User2添加到该角色中。
(5)打开查询窗口,利用数据操纵语言(DCL)练习权限的授予与收回。
① 将查询Receipt表的权限授予所有效户。
② 将查询Product表的权限授予用户User3。
③ 将查询Storage表和修改入库数量的权限授予用户User4,并许诺将此权限再授予其他用户。
④ 将向Product表插入数据的权限授予角色Role。
⑤ 收回所有效户对Receipt表的查询权限。
⑥ 将用户User4对入库数量的修改权限收回。
⑦ 收回角色Role对Product表的插入数据权限。
(6)删除Warehouse数据库用户User3,User4。
(7)删除Warehouse数据库角色Role。
5.试探题
(1) 新建数据库用户时需要注意哪些问题?
(2) 登录账户、数据库用户与数据库角色之间有什么关系?
(3) 利用数据库用户属性窗口中“平安对象”选项卡完成上述的权限授予操作。下载本文