数据库系统原理实验报告
实验一 SQL Server基本使用与数据定义
一.实验目的
1.掌握“服务管理器” 、“企业管理器”及“查询分析器”基本使用方法;
2.熟悉数据库建模及E/R图的画法;
3.掌握SQL Server 中数据库、及数据表的建立与管理方法;
4.掌握数据的导入/导出及数据库备份/还原方法。
二.实验内容
一、SQL Server 基本使用
1.启动SQL SERVER。
2.注册服务器
3.企业管理器属性
4.查询分析器介绍
5.查看数据库及浏览表中记录
二、数据库的建立与管理
1.数据库建模
2.启动、并打开SQL Server
3.使用图形界面创建数据库和表
4.使用查询分析器创建表
5.数据库的备份与还原
实验二 SQL查询
一.实验目的:
1.掌握SQL语言中SELECT语句的多种查询方式。
2.掌握对表建立与删除索引的方法。
3.掌握聚焦函数的使用方法。
4.掌握集合查询方法。
二.实验内容:
1.建立与删除[索引]的方法。
在各表中,分别按代理商编号、客户编号、产品编号及订单编号建立索引。
CREATE INDEX 代理商No ON 代理商(代理商编号)
CREATE INDEX 客户No ON 客户(客户编号)
CREATE INDEX 产品No ON 产品(产品编号)
CREATE INDEX 订单No ON 订单(订单编号)
2.单表查询,
① 从产品表中查询现有产品的库存量。
SELECT COUNT(*)
FROM 产品
② 从客户表中查询“王五”的地址及代理商编号。
SELECT 地址,代理商编号
FROM 客户
WHERE 姓名='王五'
③ 从代理商表中查询代理商“惠普”的提成金额。
SELECT 提成金额
FROM 代理商
WHERE 姓名='惠普'
④ 从订货项目表中查询编号为“444”的订单所订购的商品编号及数量。
SELECT 产品编号,订购数量
FROM 订货项目
WHERE 订单编号='444'
⑤ 分别求代理商和客户的总数。
SELECT COUNT(*) 代理商数
FROM 代理商
SELECT COUNT(*) 客户数
FROM 客户
⑥ 从订货项目表中,查询编号为0033的产品定货总数量。
SELECT COUNT(*) 订货总数量
FROM 订货项目
WHERE 订单编号='0033'
3.多表查询
① 查询编号为300的客户通过的代理商的姓名和地址。
SELECT 代理商.姓名,代理商.地址
FROM 代理商.客户
WHERE 代理商.代理商编号=客户.代理商编号
② 查询产品编号为0033、订货数量大于100的客户编号及其姓名。
SELECT 客户编号,客户姓名
FROM客户.订单项目 ,订单
WHERE 客户.客户编号=订单.客户编号AND
订单.订单编号=订单项目.订单编号AND
产品编号=0033 AND 订购数量>100
③ 查询每个客户的订单,显示客户编号、客户名、订单编号及订货日期。
SELECT 客户.客户编号,客户.客户姓名,订单.订单编号,订单.订货日期
FROM客户,订单
WHERE 客户.客户编号=订单.客户编号
④ 查询所有20##年以后订货项目。
SELECT *
FROM订单
WHERE 订货日期>20##-01-01
⑤ 查询提成金额为100000以上(含100000)的代理商所对应的客户。
SELECT 客户.姓名
FROM客户.代理商编号=代理商.代理商编号AND
代理商.提成金额>100000
4、嵌套查询
分别用带有IN谓词的子查询和带比较运算符的子查询实现以下操作
① 查询与“刘晨”在同一个系学习的学生。
SELECT *
FROM Student
WHERE Sdept IN (SELECT Sdept
FROM Student
WHERE Sname=”刘晨”)
② 查询选修了课程名为“操作系统”的学生。
SELECT Sname
FROM Student
WHERE Sno IN (SELECT Sno
FROM SC
WHERE Cno IN(SELECT Cno
FROM Course
WHERE Cname=”操作系统”))
实验三、数据更新与视图
一.实验目的:
1.掌握向表中进行数据更新的方法。
2. 掌握视图的创建与删除方法。
3.掌握视图的查询与更新方法。
4. 掌握进行集合查询的方法。
二.实验内容:
1.插入数据。
使用INSERT语句完成各表中数据的插入。
仅以此条为例:
INSERT
INTO 客户(客户编号,姓名,地址,邮政编码,收支差额,贷款限额,代理商编号)
VALUES (600,'李明','西环路号','100001','20.00','300.00',03)
2.修改数据。
①更新所有代理商的提成比例为20%。
UPDATE 代理商
SET 提成比例=20
②为产品表格增加一个新字段----缺货量。
ALTER TABLE 产品 ADD 缺货量 INT
③将编号为0011的产品单价更新为1000。
UPDATE 产品
SET 价格=1000
WHERE 产品编号= 0011
④创建一个名为deptage 表,一列存放系名(sdept),另一列存放相应的学生平均年龄(avgage)。对student表按系分组求平均年龄,存入deptage中。
CREATE TABLE deptage
(sdept CHAR(20),
avgage INT
)
INSERT
INTO deptage(sdept,avgage)
SELECT sdept,AVG(Sage)
FROM student
Group BY sdept
3.删除数据。
①删除编号为700的客户。
DELETE
FROM 客户
WHERE 客户编号=700
②删除编号为05的代理商。
DELETE
FROM 代理商
WHERE 代理商编号=05
③删除编号为订单编号为444的所有订货信息。
DELETE
FROM 订单
WHERE 订单编号=444
4.建立视图
①建立含有订单号及拥有该订单的客户编号和代理商号三个字段的视图。
CREATE VIEW 订单客户代理商
AS
SELECT 订单.订单编号,订单.客户编号,客户.代理商编号
FROM 订单,客户
WHERE 订单.客户编号=客户.客户编号
②建立一个含有客户编号、客户所订的产品、该产品的订购价及该产品的描述四个字段的视图。
CREATE VIEW 客户产品价格
AS
SELECT 订单.客户编号,产品.产品编号,产品.价格,产品.描述信息
FROM 订单,产品,订货项目
WHERE 订单.订单编号=订货项目.订单编号 AND 订货项目.产品编号=产品.产品编号
③建立一个含有产品编号、产品库存量及产品在订量三个字段的视图。
CREATE VIEW 产品订货
AS
SELECT 产品.产品编号,产品.库存量,订货项目.订购数量
FROM 产品,订货项目
WHERE 产品.产品编号=订货项目.产品编号
④建立一个含计算机科学系的学生及年龄不大于19岁的学生的视图。
⑤建立一个选修了课程1或者选修了课程2的学生视图。
⑥建立一个既选修了课程1又选修了课程2的学生视图。
5.在视图基础上的查询
①查询所有订单的客户和代理商。
SELECT *
From 订单客户代理商
②查询编号为400的客户所订的产品以及该产品的单价。
SELECT 产品编号,价格
From 客户产品价格
WHERE 客户编号=400
实验四 数据库的安全
一.实验目的
1.掌握SQL Server 中数据库安全性管理的策略与方法。
二.实验内容
数据库的安全主要包括几个方面的内容:安全模式,SQL Server服务器安全, SQL Server登录帐号, 角色, SQL Server用户和许可等内容.
安全模式包括如下内容:
(1) 安全规划:
(2) 选择安全的形式:指选择用户登录的登录认证方式.
(3) 配置安全角色实验完成规划实施某部门SQL Server安全策略
具体要求如下:
1. 部门总监(1人):作为系统管理人员,允许任何操作。
a) 用户名:vadmin
b) 服务器角色:sysadmin
c) 数据库角色:无
d) 权限:无
2. 服务器登录安全管理员(1人):可设置和管理用户登录帐号,授权访问订单数据库。
a) 用户名:vsafemanager
b) 服务器角色:securityadmin
c) 数据库角色:无
d) 权限:无
3. 数据库维护人员(1人):可对订单数据库进行任何操作,没有登录管理操作权限。
a) 用户名:vmaintainer
b) 服务器角色:无
c) 数据库角色:db_owner
d) 权限:无
4. 数据录入人员(2人):可进行数据录入,不能创建与修改表结构及其它授权等操作。
a) 用户名:vdata_in01,vdata_in02
b) 服务器角色:无
c) 数据库角色:db_datawriter
d) 权限:无
e) 订单管理人员(2人):能对订单数据库中的订单表和项目表进行更新,其它表仅能查询。
f) 用户名:vorder01,vorder02
g) 服务器角色:无
h) 数据库角色:db_datareader
i) 权限:对订单表和项目表设置插入(INSERT)、更新(UPDATE)权限
5. 客户管理人员(2人):能对订单数据库中的代理商表和客户表进行更新,其它表仅能查询。
a) 用户名:vcustomer01, vcustomer02
b) 服务器角色:无
c) 数据库角色:db_datareader
d) 权限:对代理商表和客户表设置更新(UPDATE)权限
实验五 数据库连接与访问
开放数据库互连(ODBC)是Microsoft引进的一种早期数据库接口技术。它实际上是我们要在本章后面加以讨论的ADO的前身。Microsoft引进这种技术的一个主要原因是,以非语言专用的方式,提供给程序员一种访问数据库内容的简单方法。换句话说,访问DBF文件或其他数据库以得到数据库中的数据时,无需懂得数据库程序设计语言。
一.实验目的
1. 掌握客户端访问数据库的方法。
2. 掌握常用数据感知元件的应用。
二.实验内容
要求:根据以上方法,创建一主窗体和两个子窗体,在主窗体中使用按钮控制连接两子窗体。在子窗体中分别连接访问订单表和订货项目表,并用DBNavigator控制记录浏览。
本题使用VB.Net完成
使用了DataSet、BindingSource、TableAdapter等数据库连接控件
《数据库系统原理》实验报告一
实验一 SQLSERVER2000的安装及建库、建表
1 目的要求
1.1 熟悉SQLSERVER2000操作软件;
1.2 掌握SQLSERVER2000建库,建表的方法。简单查询语句的使用方法。 2 实验内容
2.1 SQLSERVER2005的安装及启动;
2.2 SQLSERVER2005工具的使用;
2.3 建立系表、学生表、课程表、选课表,并在表中进行值的输入。
2.4 备份已建功立业的数据库
3 所需实验设施设备
安装的SQLSERVER2000及PC计算机
参考资料(建表代码)
CREATE TABLE 系基本情况表
( 系号 CHAR(6) PRIMARY KEY,
系名 VARCHAR(20) NOT NULL UNIQUE,
领导 VARCHAR(20) UNIQUE,
电话 VARCHAR(20) UNIQUE
)
CREATE TABLE 学生基本情况表
( 学号 CHAR(8) PRIMARY KEY,
姓名 VARCHAR(16) NOT NULL ,
性别 CHAR(2) check(性别='男'or 性别='女'),
出生日期 datetime check(出生日期>='1900' and 出生日期<='2100'),
所属系 char(6) DEFAULT 'D0300',
家庭地址 VARCHAR(50) NULL,
FOREIGN KEY(所属系) REFERENCES 系基本情况表(系号)
)
CREATE TABLE 课程表
( 课程号 CHAR(10) PRIMARY KEY,
课程名 VARCHAR(20) NOT NULL UNIQUE,
学分 TINYINT check(学分<=10),
学时数 tinyint check(学时数<200),
)
CREATE TABLE 学生选课表
(学号 char(8) NOT NULL REFERENCES 学生基本情况表(学号),
课程号 CHAR(10) NOT NULL REFERENCES 课程表(课程号),
成绩 TINYINT CHECK(成绩>=0 AND 成绩<=100),
primary key (学号,课程号)
) 系表(系号,系名,领导,电话)
①
学生表(学号,姓名,性别,出生日期,家庭地址,所属系)
② √①
课程表(课程号,课程名,学时,学分)
③
选课表(学号,课程号,成绩)
√ ② √ ③
8 上机实验设计
8.1 创建“学生基本情况与成绩管理系统”数据库
8.2 创建这个数据库中的如下4张表(以a,b,c,d为序,创建时注意保存SQL语句的文本):
a 系表(系号,系名,领导,电话)
b 学生表(学号,姓名,性别,出生日期,家庭地址,所属系), c 课程表(课程号,课程名,学时,学分),
d 选课表(学号,课程号,成绩)
8.3 对上述4张表,练习其创建顺序的求解方法
8.4 对每张表均输入10个记录的数据。
8.5 备份自己的数据库。
8.6 对上述5项再做第二遍
8.1数据库的备份与还原
设用户在机内已建有一个数据库A,数据库A中有数据文件a1,a2,?,ak。为了保护数据库A及所有文件,我们可以在其它设备上(如本地的其它磁盘或U盘)建立数据库A的备份A。建立A的目的是,一旦机内数据库A的数据被损坏,可由其备份A恢复数据库A。同学们在机房内更多地是使用U盘来备份正在逐步展开与逐步完善的数据库实例,下面以在U盘上建立A的备份为例,给出建立其备份A的步骤。
建立备份的方法有二种:(一)使用企业管理器备份。(二)运用SQL语句建立备份。
(一)使用企业管理器备份。
(1)在一个文件上建立一个数据库A的备份A步骤如下:
_______________
SQL server Enterprise manager \ Microsoft SQL(展开) \ Local (windows NT) (展开) \数据库A(右击)所有任务 \ 备份 \ 点击“添加(数据库A)” \ 选择备份文件名\ 点击H盘(U盘) \ 输入文件名A.bak \ 确定 \ 确定
数据库A的备份A在H:中被建好后,可查看H:中的已备份文件A.bak。
(2)在一个备份设备上建立一个数据库A的备份A步骤如下:
SQL server Enterprise manager \ Microsoft SQL(展开) \ Local (windows NT) (展开) \数据库A(右击)所有任务 \ 备份 \ 点击“添加(数据库A)” \ 选择备份设备\ 确定 \ 确定
在备份设备上备份,必段首先创建备份设备.创建务份设备的方法如下:
企业管理器\展开企业管理器\管理\备份(右击)\新设备备份\在”名称”文本框中输入备份设备名称\确定
(3)由A还原数据库A的步骤:
设有数据库备份A,且机内已有数据库A。此时由A还原数据库A的步骤: 企业管理器 \ 数据库展开 \ 数据库A(右击)\ 所有任务 \ 还原数据库 \ 确定 \ 确定 \ 确定。
于是,原数据库A被还原。
教学设计:在还原数据库A前,将原象数据库A作一些删除,而后再观察其还原效果。
注意:(1)设A是机上原象数据库A的备份,且机中还有数据库C,D。那么,A吸能对原象数据库A进行还原,而不能对其它数据库如C、D进行还原。这就是说,(2)只有删除了原象数据库A之后,才能用A对C或D进行还原。
________________________
实验一SQLServer基本使用与数据定义一实验目的1掌握企业管理器及查询的定义方法使用方法2熟悉数据库建模及ER图的画法3掌握S…
实验一SQLServer基本使用与数据定义一实验目的1掌握服务管理器企业管理器及查询分析器基本使用方法2熟悉数据库建模及ER图的画…
SQLServer实验报告学号姓名专业信息管理与信息系统目录实训一数据库的基本操作实训二表实训三数据完整性实训四索引实训五数据查询…
HEFEIUNIVERSITY数据库设计报告题目产品销售系统系别电子信息与电气工程系班级09级电气信息类5班学号090507503…
重庆大学经济与工商管理学院实验报告课程名称数据库原理及应用实验学期20xx年至20xx年第2学期学生所在学院经济与工商管理学院年级…
西安科技大学数据库原理及应用课程设计报告题目寄宿学校管理信息系统的设计与实现学院计算机科学与技术学院专业及班级软件工程1202及1…
实验报告书实验名称数据库建模技术之数据库设计专业班级111030706学号1110307060111103070619姓名陈杰潘耀…
数据库技术实践报告学校长沙理工大学继教院兵器助学站点姓名考籍号指导老师数据库技术实践报告一实习目的实习从基本的建立数据库及表对象入…
Sunway科技报告数据库sunwaySTR产品介绍科技报告很大程度上展示了一个国家或一个机构的科学研究和技术开发水平也是了解他们…
XML与数据库技术研究20xxE8009070022陈海赞1引言11技术背景XMLExtensibleMarkupLanguage…