数据库技术实验六

合集下载

实验六 数据安全性实验

实验六  数据安全性实验

实验六数据安全性实验实验目的和要求:加深对数据安全性的理解,掌握SQL SERVER中有关用户、角色及操作权限的管理方法。

实验内容:1. 建立教学数据库teaching2. 建立教学数据库的三个基本表:S (S#, SNAME, AGE, SEX) 学生(学号,姓名,年龄,性别)SC (S#, C#, GRADE ) 选修(学号,课程号,成绩)C (C#, CNAME, TEACHER) 课程(课程号,课程名,任课教师)3.输入数据基本表C的数据4. 数据修改、删除1)把C2课程的非空成绩提高10%。

2)在SC表中删除课程名为PHYSICS的成绩的元组。

3)在S和SC表中删除学号为S8的所有数据。

5. 计算每个学生有成绩的课程门数、平均成绩。

6. 创建一个登录用户(1)打开企业管理器中的安全性文件夹,右击其中的登录文件夹,在弹出的菜单中选择“新建登录”选项后,就会出现一个登录属性对话框,在常规选项卡中输入用户名(login1),选择该用户的安全认证模式,选择默认数据库和默认语言。

如使用SQL SERVER安全认证模式,可以直接在名称栏中输入新登录名,并在下面的栏目中输入登录密码。

(2)选择数据库访问选项卡,确定用户能访问的数据库为教学数据库teaching,操作完成后,单击“确定”按钮,完成创建登录用户的工作。

7. 创建新的数据库用户在企业管理器中扩展SQL服务器及数据库文件夹。

右击用户文件夹,弹出的菜单中选择“新建数据库用户”项,会出现新建数据库用户属性对话框。

在对话框的登录名栏中选择一个SQL服务器登录用户名(login1),并在它下面的用户名栏中输入数据库用户名u2,单击“确定”按钮完成。

8.使用GRANT语句,把对基本表S、SC、C的使用权限授给用户u2。

并用REVOKE 语句回收权限。

实现数据转换实验内容:1)利用DTS的功能导出数据。

2)利用DTS的功能导入数据。

3)利用DTS设计器导入、导出数据。

数据库技术及VFP应用实验报告(六)

数据库技术及VFP应用实验报告(六)

2.在“数据”选项卡中选择“查询”
中将学生登记表和学生成绩表添加到“查询设计器”中
3.在“字段”选项卡中将学号、姓名、性别3个字段添加到“选定字段”中
4.单击“函数与表达式”框的按钮,打开“表达式生成器”的对话框,在表达式框中输入:YEAR(DATE())-YEAR(学生登记表.出生日期)as年龄。

单击“确定”
5.仿照第4步的方法,生成新字段“平均分”和“总分”,在表达式框中输入:AVG(绩)as平均分,SUM(成绩)as总分。

6.在“排序依据”选项卡中将“选定字段”中的“ SUM(成绩)as总分”
序条件”列表框中,在“排序选项”中选择“降序”
7.在“分组依据”选项卡中,将“学生登记表.学号”字段添加到“分组字段”列表框中
8.单击“满足条件”按钮,打开满足条件对话框,输入条件
钮,
10.按CTRL+S键,保存查询,命名为“平均分总分”
实验总结及意见
通过本次实验我进一步掌握Visual Foxpro中用查询设计器建立查询的基本。

数据库作业实验六

数据库作业实验六

数据库作业实验六实验六实验名称:连接查询⼀、实验⽬的掌握使⽤连接的⽅法从多个表中查询数据。

理解内连接、外连接(包括左外连接、右外连接和全外连接)、⾃⾝连接的概念和使⽤。

要求学⽣熟练掌握在FROM⼦句和在WHERE⼦句中指定连接条件的这两种⽅法。

⼆、实验原理在查询语句的FROM⼦句中⽤以下形式实现各种连接操作:●FROM 表1 [INNER] JOIN 表2 ON 表1.列名=表2.列名(实现内连接)●FROM 表1 LEFT [OUTER] JOIN 表2 ON 表1.列名=表2.列名(实现左外连接)●FROM 表1 RIGHT [OUTER] JOIN 表2 ON 表1.列名=表2.列名(实现右外连接)●FROM 表1 FULL [OUTER] JOIN 表2 ON 表1.列名=表2.列名(实现全外连接)●FROM 表1 AS 别名1 JOIN 表1 AS 别名2 ON 别名1.列名=别名2.列名(实现⾃⾝连接)在查询语句的WHERE⼦句中⽤以下形式实现各种连接操作:●FROM 表1,表2 WHERE 表1.列名=表2.列名(实现内连接)●FROM 表1,表2 WHERE 表1.列名*=表2.列名(实现左外连接)●FROM 表1,表2 WHERE 表1.列名=*表2.列名(实现右外连接)●FROM 表1 AS 别名1 ,表1 AS 别名2 WHERE 别名1.列名=别名2.列名(实现⾃⾝连接)三、实验设备安装有SQL SERVER 2005的计算机。

四、实验⽰例1、检索product 表和sale_item表中数量⼤于2的相同产品的产品编号、产品名称、数量、单价。

select a.prod_id,a.qty,a.unit_price,b.prod_namefrom sale_item as a inner join product as b /*如果改成left join/right join 试分析结果*/on (a.prod_id=b.pro_id) and a.qty>2order by a.prod_id2、查找出employee表中住址相同的员⼯的姓名、性别、职称、薪⽔、住址。

(完整版)数据库技术与应用实验报告

(完整版)数据库技术与应用实验报告

(完整版)数据库技术与应用实验报告《数据库技术与应用》实验报告班级学号:姓名:实验日期:指导老师:实验名称一、实验一表的建立与维护实验目的与要求 1.初步掌握根据一个应用目标把现实问题抽象为关系数据模型的方法,从而为解决实际问题奠定数据基础。

2.掌握表的建立与维护的一般方法。

3.理解表的记录指针与当前记录的意义。

4.掌握表的打开、关闭、浏览、显示等操作方法。

5.掌握表结构的修改。

6.掌握记录的增加与删除等操作。

7.掌握数据复制方法。

8.二、实验准备 1、复习关系数据库的有关概念,深刻理解Virsual FoxPro中所采用的关系模型的实质及Virsual FoxPro所支持的数据模型。

2、复习表的建立、现实与维护等操作。

三、实验内容下表是某校学生花名册,根据该表完成以下操作,写出操作步骤。

学习成绩性学号姓名别学 009901 张小强男 98 85 否 20XX年获全数外语出生年月否少数民族受奖情况国数学奥林匹克竞赛二等奖。

009902 009903 009904 009905 陈斌李哲男男 88 56 75 88 75 82 72 81 否是否是20XX年获全国中学生田径运动会100米第三名009906 009907 009908 009909 张青松男封小莉女周晓钱倩女女 65 82 65 83 81 73 78 85 否否20XX年获广东省三好学生称号 009910 009911 孙力军男肖彬彬女 64 55 68 95 是否赵大明男冯珊女否否1.设计一个表的结构,使其能描述上表的信息,同时又符合关系模型的基本要求。

2.建立表,输入表中的数据,并将保存在自己盘中。

3.给全部女生的数学成绩加5分。

4.将记录指针定位到第5号记录。

5.将记录指针指向孙力军同学。

6.显示所有姓“张”学生的情况。

7.把表的姓名字段宽度修改为8。

8.浏览记录数据,且表头用汉字。

9.把少数民族学生的记录复制到中。

数据库原理综合实验报告

数据库原理综合实验报告

实验六数据库原理综合实验1实验目的(1)运用所学的数据库设计技术,针对一个具体的应用系统,完成系统数据库的概念模型、逻辑模型和物理模型的设计。

以巩固理论课程上所学的知识,更好地掌握数据库设计技术方法。

(2)对前面章节所学的知识加以综合应用。

2实验内容给定一个应用环境,如学生选课系统、超市管理系统、某企业库存管理系统、学校图书管理系统、学校综合积分管理系统等等。

(同学们课从上述选定一个题目,也可以选取一个自己较熟悉的应用环境)。

完成下面的工作2.1 数据库概念模型设计(1)进行需求分析。

-对系统的语义进行描述(包括功能、所需的数据及他们之间的关系和处理方法)(2)识别系统中的实体及实体的属性,分析实体之间的联系。

(3)设计数据库概念模型,画出E-R图。

2.2 数据库逻辑模型设计(1)根据数据库概念模型设计数据库的逻辑模型。

-将E-R模型转化到逻辑模型(2)根据应用需要和规范化理论对逻辑模型进行优化。

2.3 数据库物理模型设计(1)针对某种DBMS,设计数据库物理模型,包括表空间、表和索引等于物理存储有关的设计。

(2)优化物理模型(3)生成某种DBMS的SQL语句,创建数据库及其表。

2.4 装载数据(1)收集真实数据或者生成模拟数据。

(2)批量加载数据到数据库中。

(3)设计一系列SQL语句,尤其是连接查询、嵌套查询等SQL语句,以测试数据库性能。

3实验要求(1)可以借助POWERDESIGNER等系统分析与设计辅助工具进行数据库设计,也可以使用WORD文件直接生成各种设计文档。

(2)选择的数据库应用系统应该规模适中,不宜太大太复杂,可能做不完;也不宜太小太简单,甚至仅有三两个表组成。

(3)要设计良好的数据库完整性约束。

(4)思考题:数据库设计通常由哪些辅助工具?各有哪些优缺点?4实验步骤4.1 数据库概念模型设计(1)进行需求分析。

学生需要有学号、姓名、性别、年龄、专业等信息。

选课需要有学号、课号、成绩等信息课程需要有课程号、课程名、先修课、学分等信息(2)设计数据库概念模型,画出E-R图。

实验6 数据库及表

实验6 数据库及表

实验六数据库及表
1.创建一个名为“工资管理系统.accdb”的空数据库文件,依据下图所示的表的结构,在图书管理数据库中创建“工资”、“员工”、“部门”3个表。

结构如下:
字段长度根据需要进行设置。

员工表数据如下:(可以通过复制粘贴进行),并在最后一行增加个人的资料
其他两表的数据分别在“工资.xlsx”“部门.xlsx”,通过导入数据的方式创建表及数据,然后再对表结构进行适当修改
2.将所有日期型字段的格式设置为“短日期”。

3.设置“性别”字段的默认值为“男”,“民族”的默认值为“汉族”
4. 设置年龄的有效性规则在20岁到60岁之间(>=20 and <=60),有效性文本为“年龄必须在20到60之间”,设置“性别”有效性规则为男或女 ("男" or "女")
5.设置出生日期的输入掩码为“9900/90/90;0;_”
6.设置“部门号”字段采用下拉框输入,数据来自于部门表,(使用查询向导的方式生成)
7.对员工表先按部门排序,然后按姓名排序。

实验六 数据库的完整性定义与检查 (2)

实验六  数据库的完整性定义与检查 (2)

实验六数据库的完整性定义与检查实验目的:1.充分理解关系数据库中关于数据库完整性的概念。

2.掌握实体完整性的定义和检查方法。

3.掌握参照完整性的定义和检查方法。

4.掌握用户自定义完整性的定义和检查方法。

实验内容:一、在企业管理器中定义以下数据表中各字段的完整性约束(包括实体完整性、参照完整性和用户定义完整性)。

1.Student表。

记录学生基本信息。

表1-1 Student 表结构[Sno] [char](9)PRIMARY KEY,[Sname] [char](8)NOT NULL,[Ssex] [char](2)CHECK(Ssex IN('女','男')),[Sage] SMALLINT CHECK(Sage>=15 AND Sage<=45),[Sdept] [char](20)default('计算机'))2.Course表。

记录课程信息。

表1-2 Course 表结构[Cno] [char](10)PRIMARY KEY,[Cname] [char](20)NOT NULL,[Ccredit] SMALLINT CHECK(Ccredit>0),[Semester] SMALLINT CHECK(Semester>0),[Period] SMALLINT CHECK(Period>0),)3.Sc表。

记录学生选修课程的信息。

表1-3 Sc 表结构[Sno] [char](9)NOT NULL,[Cno] [char](10)NOT NULL,[Grade]SMALLINT CHECK(Grade>=0 and Grade<=100),PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES Student(Sno),FOREIGN KEY(Cno)REFERENCES Course(Cno))二、在查询编辑器中,写出创建表的语句同时写出设置实体完整性、参照完整性和用户自定义完整性的语句。

数据库技术实验实训报告

数据库技术实验实训报告

一、实验实训目的1. 理解数据库技术的概念、原理和方法。

2. 掌握数据库设计、创建、管理和维护的基本技能。

3. 熟悉数据库查询语言SQL的使用。

4. 学会使用数据库开发工具进行数据库应用系统的开发。

二、实验实训内容1. 数据库设计- 实验内容:设计一个简单的学生信息数据库,包括学生表、课程表、成绩表等。

- 实验步骤:1) 使用E-R图工具绘制数据库概念结构图。

2) 将E-R图转换为关系模式,确定实体、属性和关系。

3) 使用数据库设计工具(如PowerDesigner)创建数据库结构。

4) 在数据库中创建表,并设置主键、外键等约束。

2. 数据库创建与维护- 实验内容:创建一个学生信息数据库,并对其进行基本维护操作。

- 实验步骤:1) 使用SQL语句创建学生信息数据库。

2) 使用SQL语句创建学生表、课程表、成绩表等。

3) 使用SQL语句插入、删除、修改和查询数据。

4) 使用SQL语句进行数据库备份和恢复。

3. 数据库查询- 实验内容:使用SQL查询语言对学生信息数据库进行查询操作。

- 实验步骤:1) 使用SELECT语句进行简单查询,如查询学生姓名和年龄。

2) 使用WHERE子句进行条件查询,如查询成绩在80分以上的学生。

3) 使用JOIN语句进行多表查询,如查询学生的姓名、课程名称和成绩。

4) 使用ORDER BY子句进行排序,如按成绩降序查询学生。

4. 数据库编程- 实验内容:使用Transact-SQL编程语言编写存储过程和触发器。

- 实验步骤:1) 创建一个存储过程,实现学生信息的插入、删除和修改。

2) 创建一个触发器,当学生信息表中的数据发生变化时,自动更新其他相关表的数据。

5. 数据库应用系统开发- 实验内容:使用数据库开发工具(如Visual Studio)开发一个简单的学生信息管理系统。

- 实验步骤:1) 使用数据库连接控件连接到数据库。

2) 使用数据绑定控件显示数据库中的数据。

3) 使用事件驱动编程实现数据的新增、修改、删除和查询等功能。

实验六 视图和索引 实验指导

实验六 视图和索引 实验指导

实验六视图和索引实验指导一、视图视图是SQL Server中重要的数据库对象。

视图常用于集中、简化和定制显示数据库的数据信息,为用户从多种角度观察数据库中的数据提方便。

为了屏蔽数据的复杂性、简化用户对数据的操作、控制用户访问数据的权限、保护数据安全,常为不同的用户创建不同的视图。

1. 视图的基本概念视图是从一个或多个表或视图导出的表;其结构和数据是建立在对表的查询基础上的。

和表一样,视图也是包括几个被定义的数据列和多个数据行。

但就本质而言,这些数据列和数据行来源于其所引用的表。

所以,视图不是真实存在的基础表,而是一张虚表。

视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中。

视图一经定义便存储在数据库中,与其相对应的数据并没有像表那样又在数据库中再存储一份。

通过视图看到的数据,只是存放在基本表中的数据。

对视图的操作与对表的操作一样,可以对其进行查询、修改(有一定的限制)、删除。

当对通过视图看到的数据进行修改时,相应的基本表的数据也要发生变化,同时若基本表的数据发生变化,则这种变化也可以自动地反映到视图中。

可以将任何符合视图创建规定的SELCT语句命名和存储为视图。

在视图中北查询的表称为基表。

视图的常见实例如下。

●一个基表的行或列的于集。

●两个或多个表的合并。

●两个或多个表的联接。

●一个基表的统计总汇。

●另外一个视图的子集。

●视图和基表的混合。

2. 创建视图在SQL Server2008中创建视图,创建者必须拥有创建视图的权限,并且对视图中引用的基表或视图有许可权。

此外,创建视图前还应该注意以下几点:●只能在当前数据库中创建视图。

如果使用分布式查询,视图所引用的基表和视图可以存在于其他数据库或其他服务器中。

●在一个视图中最多引用1024列,视图中记录的行数限制由基表中的记录数目决定。

●视图的名称必须遵循标识符的命名规则,且对每个架构都必须唯一,并且该名称不得与该架构包含的任何表的名称相同。

数据库实用技术-实验六

数据库实用技术-实验六

实验报告单院(系)计算机学院专业计算机科学与技术班级姓名学号同组人实验室S4305 组号日期课程数据库实用技术指导教师成绩实验项目编号8103203006 实验项目名称索引和数据的完整性一、实验目的(1)掌握索引的使用方法;(2)掌握数据完整性的实现方法;二、实验环境WIN7操作系统SQL Server2008三、实验原理(或要求)(1)了解索引的作用与分类;(2)掌握索引的创建方法;(3)理解数据的完整性的概念与分类;(4)掌握各种数据完整性的实现方法。

四、实验步骤(1)建立索引①使用CREATE INDEX语句创建索引。

●对YGGL数据库的Employees表中的DepartmentID列建立索引。

在查询分析器中输入如下程序并执行:USE YGGLGOCREATE INDEX depart_indON Employees(DepartmentID)GO●在Employees表的Name列和Address列上建立复合索引。

CREATE INDEX Ad_indON Employees(Name,Address)●对Departments表上的DepartmentName列建立唯一非聚集索引。

CREATE UNIQUE INDEX Dep_indON Departments(DepartName)②使用界面方式创建索引。

使用界面方式在Employees表的PhoneNumber列上创建索引。

启动SQL Server Management Studio,在对象资源管理器中展开数据库YGGL,展开表Employees,右击“索引,选择“新建索引”选项。

在新建索引的窗口中填写索引的名称和类型,单击“添加”按钮,在列表框中选择要创建的索引的列,选择完单击“确定”按钮即完成创建工作。

(2)重建索引。

重建表Employees中的所有索引。

USE YGGLGOALTER INDEX ALLON Employees REBUILD(3)删除索引。

数据库实验报告(实验六)(合集五篇)

数据库实验报告(实验六)(合集五篇)

数据库实验报告(实验六)(合集五篇)第一篇:数据库实验报告(实验六)实验六SQL语言数据查询语言DQL一、实验内容了解SQL语言的SELECT语句对数据的查询,学会在Navicat for MySQL中用SELECT语句对表中的数据进行简单查询、连接查询、嵌套查询和组合查询。

启动Navicat for MySQL,用SELECT语句进行简单查询操作,具体实验步骤如下:(实验步骤里的内容)1启动Navicat for MySQL,登录到本地数据库服务器后,连接到test数据库上。

用Create Table建立Student表、Course表和Choose表:2.用INSERT语句分别向Student表中插入3个元组、Course表中插入3个元组、Choose表中插入7个元组:3.用SELECT语句,查询计算机学院学生的学号和姓名。

4.用SELECT语句的between…and…表示查询条件,查询年龄在20~23岁的学生信息。

5.用SELECT语句的COUNT()聚集函数,统计Student表中学生总人数。

6.分别用SELECT语句的max()、min()、sum()、avg()四个聚集函数,计算Choose表中C1课程的最高分、最低分、总分、平均分。

7.用SELECT语句对空值(NULL)的判断条件,查询Course表中先修课称编号为空值的课程编号和课程名称。

8.用SELECT语句的连接查询,查询学生的学号、姓名、选修的课程名及成绩。

9.用SELECT的存在量词EXISTS,查询与“张三”在同一个学院学习的学生信息。

10.用SELECT语句的嵌套查询,查询选修C1课程的成绩低于“张三”的学生的学号和成绩。

11.用SELECT语句的组合查询(UNION),查询选修了C1课程或者选修了C3课程的学生学号。

12.用SELECT语句的组合查询(UNION)与DISTINCT短语,查询选修了C1课程或者选修了C3课程的学生学号,并取消重复的数据。

数据库实验实验6视图1

数据库实验实验6视图1

实验六数据库的视图一、实验目的1.掌握创建视图的SQL语句的用法。

2.掌握使用企业管管理器创建视图的方法。

3.掌握使用创建视图向导创建视图的方法。

4.掌握修改视图的方法。

二、实验内容1、在企业管理器里创建视图以建立客户编号为‘K00201’的客户全部信息的视图KH操作为例:(1)执行‚工具—向导‛命令图7.1(2)选择表中的字段(3)‚定义限制‛对话框,限制条件图7.3 (4)查询视图所得的结果SELECT * FROM KH练习:建立关于销售情况的视图XS,包括产品名称,客户名称,订购数量并查询结果。

2. 在企业管理器里修改视图如将视图KH改为客户编号为‘XXX’ (XXX自己输入相应的值) (1)执行‚设计视图‛命令(2)选择要在视图中引用的列(3)输入指定要检索行的准则(4)执行‚运行‛命令查看结果集图7.13 3.使用T-SQL语句更新视图3. 使用企业管理器删除视图图7.15 执行“删除”命令练习:在查询分析器中用T-SQL命令完成以下操作: 建立订购数量大于200的销售情况视图XS1(利用XS) 并查询结果CREATE VIEW XS1ASSELECT *FROM XSWHERE QUANTITY >200建立各产品的订购数量的总数的视图SL,包括产品编号,订购总量并查询结果CREATE VIEW SLASSELECT PCODE,OQUANTITYFROMSALE查找订购数量=300的客户名称,(利用视图XS1)并查询结果SELECT CNAMEFROM XS1WHERE建立所在地为长沙的客户的视图KH1 CREATE VIEW KH1ASSELECT *FROM CUSTOMERWHERE通过视图KH1插入记录(‘K00203‘,’王府井’,’长沙’)并查询结果INSERTINTO KH1V AULES(‘K00203‘,’王府井’,’长沙’)INSERTINTO KH1(CNO,CNAME,SITE)V ALUES('K00204','大润发','上海')通过视图KH1插入记录(‘K00204‘,’大润发’,‘上海’)并查询结果CREATE VIEW XS1 ASSELECT *FROM XSWHERE QUANTITY >200UPDATE KH1SET C INSERTINTO KH1(CNO,CNAME,SITE)V ALUES('K00204','大润发','上海') 将SL视图中C20012产品的总量更新为30。

《数据库技术实验报告书》

《数据库技术实验报告书》

2015-2016学年第二学期《Access数据库应用》实验指导书班级:14 大专软件学号:____________________ 姓名:____________________实验一Access 数据库结构与创建实验目的1. 掌握启动和退出Access 系统的常用方法。

2. 熟悉Access 的主窗口界面。

3. 会使用帮助系统。

4. 掌握数据库的两种创建方法。

5. 熟练操作打开/ 关闭数据库。

实验内容与步骤1. 启动数据库管理系统Access2010;2. 打开系统自带的“罗斯文”示例数据库,认识数据库的7 种对象,同时调出系统帮助文件,找到帮助中关于7 种对象的说明和解释,了解数据库的功能,理解数据库的总体结构;3. 用Access2010 创建一个空白数据库“银行管理系统” ;4. 用Access2010 中的向导创建一个“联系人”数据库表。

实训思考1. 文中介绍的启动和退出Access 的方法,是不是仅仅适合于Access?2. 有人说:“书本上介绍了如何使用Access,上课老师也讲授了方法,用不用帮助系统没有必要。

”上述观点对吗?3. 创建数据库的两种方法的优缺点分别是什么?各自用于什么情况?4. 打开数据库时,各种打开方式有何不同?分别用于什么环境?实验二Access数据表的创建实验目的1. 掌握数据库对象的管理方法。

2. 掌握表的各种创建方法。

实验内容与步骤1. 启动Access数据库管理系统。

2. 创建空白数据库“图书管理系统”,并保存在。

3. 使用向导创建表“读者类别”:①使用向导为“读者类别”表创建两个字段:类别编号和类别名称;②进入设计器,明确或修改表的“类别编号”字段的数据类型为“自动编:③向表中输入数据如下4. 通过输入数据创建表图书信息:①参照教材,通过输入数据创建表“图书信息”;②进入表设计器中,明确或修改表的结构为:5. 通过设计器创建表“读者信息”:①打开表设计器,按以下表结构,创建表“读者信息”:②在创建“学历/职称”字段时,请使用“查阅向导”。

中北大学ORACLE数据库技术实验指导书

中北大学ORACLE数据库技术实验指导书

ORACLE数据库技术实验指导书目录实验一SQL*PLUS用法及SQL语言中的简单查询语句实验二SQL语言中的分组查询和连接查询语句实验三SQL语言中的子查询及函数的使用实验四SQL语言中的数据操纵、事务控制和数据定义语句实验五SQL/PL块中SQL命令的使用实验六SQL/PL块中流程控制语句、游标、例外处理实验七数据库触发器、存储过程和存储函数实验一SQL*PLUS用法及SQL语言中的简单查询语句一、实验目的1、熟悉SQL语言交互式使用工具SQL*PLUS的使用方法2、熟悉SQL*PLUS常用命令的功能和使用方法3、掌握SQL语言中简单查询语句的功能和使用方法二、实验环境1、硬件设备:计算机局域网,服务器1台,客户机100台2、软件系统:Windows2000Server网络操作系统,Windows2000/XP客户机操作系统;Oracle9i服务端数据库系统,客户端工具。

三、实验内容1、SQL*PLUS的使用(1)进入(启动)SQL*PLUS在Windows环境下,双击SQL*PLUS图标或从程序组找SQL*PLUS,出现登录窗口输入正确的数据库用户名、密码和连接字符串后,若连接数据库成功,则会出现如下提示符:SQL> (2)退出SQL*PLUSSQL>exit则退回到Windows桌面。

(3)创建表结构:Create table创建部门登记表dept和雇员登记表emp的结构SQL>Create table dept(deptno number(2)not null,dname char(14),loc char(13));SQL>Create table emp(empno number(4)not null,ename char(9),job char(10),mgr number(4),Hiredate date,sal number(7,2),comm number(7,2),deptno number(2)not null);(4)显示表结构显示部门登记表dept和雇员登记表emp的结构SQL>desc deptSQL>desc emp(5)向表中插入记录向部门登记表dept中插入一条记录SQL>insert into deptValues(60,‘Computer’,‘Beijing’);SQL>select*from dept;向部门登记表dept中连续插入多条记录SQL>insert into dept(deptno,dname,loc)Values(&deptno,&dname,&loc);(6)执行SQL缓冲区中的命令SQL>/(直接执行)SQL>run(先显示命令的内容,再执行)(7)执行磁盘上的命令文件a.先调入缓冲区,再运行:SQL>get f:\ora\dept.sqlSQL>/b.用@或start命令将指定命令文件调入缓冲区并执行。

SQL数据库实验报告实验六

SQL数据库实验报告实验六

第1部分实验8 存储过程和触发器1.实验目的(1)掌握通过SQL Server 管理平台和Transact-SQL 语句CREA TE PROCEDURE 创建存储过程的方法和步骤。

(2)掌握使用Transact-SQL 语句EXECUTE 执行存储过程的方法。

(3)掌握通过SQL Server 管理平台和Transact-SQL 语句ALTER PROCEDURE 修改存储过程的方法。

(4)掌握通过SQL Server 管理平台和Transact-SQL 语句DROP PROCEDURE 删除存储过程的方法。

(5)掌握通过SQL Server 管理平台和Transact-SQL 语句CREA TE TRIGGER 创建触发器的方法和步骤。

(6)掌握引发触发器的方法。

(7)掌握使用SQL Server 管理平台或Transact-SQL 语句修改和删除触发器。

2.实验内容及步骤(1)在查询设计器中输入以下代码,创建一个利用流控制语句的存储过程letters_print ,该存储过程能够显示26个小写字母。

CREATE PROCEDURE letters_print ASDECLARE @count int SET @count=0 WHILE @count<26 BEGINPRINT CHAR(ASCII('a')+ @count) SET @count=@count +1 END单击查询分析器的“执行查询”按钮,查看studentsdb 数据库的存储过程是否有letters_print 。

使用EXECUTE 命令执行letters_print 存储过程。

(2)输入以下代码,创建存储过程stu_info,执行时通过输入姓名,可以查询该姓名对应的学生的各科成绩。

CREATE PROCEDURE stu_info @name varchar(40)ASSELECT a.学号,姓名,课程编号,分数FROM student_info a INNER JOIN grade taON a.学号= ta.学号WHERE 姓名= @name使用EXECUTE命令执行存储过程stu_info,其参数值为“马东”。

2013SQL实验六

2013SQL实验六

实验六数据库、表、约束、查询综合实验一、实验目的1.掌握应用Management Studio创建、修改、查看和删除数据库对象的方法。

2.掌握应用应用T-SQL创建、修改、查看和删除数据库对象的方法。

3.掌握INSERT、UPDA TE、DELETE语句操作数据的方法。

4.掌握查询分析器中设计查询的方法。

5.掌握使用T-SQL设计查询的语法和常用技巧。

二、实验要求1.建立eshop数据库,创建members表、products表和orders表,及各种要求的约束。

2.将样例数据录入到eshop数据库。

3.建立教学成绩管理数据库,并了解其结构。

4.按要求分别使用Management Studio和在查询窗口中使用T-SQL完成各种操作,保存实验结果,并上交实验报告。

三、实验步骤Ⅰ、建立ESHOP数据库1.Eshop数据库参数如下:数据库名:eshop主数据文件:逻辑名eshop_data存储位置c:\data\eshop_data.mdf初始大小 4 MB最大大小100 MB增长率 2 MB次要数据文件:逻辑名e_data_1存储位置c:\data\e_data_1.ndf文件组FG1初始大小 2 MB最大大小100 MB增长率10%日志文件:逻辑名eshop_log.ldf存储位置c:\data\eshop_log.ldf初始大小 2 MB最大大小无限制增长率10 MB2.在ESHOP数据库中建立如下表Members表,用于存放雇员信息:Products表,用于存放产品信息:Orders表,用于存放订单信息:3.录入数据到ESHOP数据库Ⅱ、ESHOP数据库中表和表记录的操作1.查看members表的相关信息。

2.在members表中新增一列电子邮件m_mail(V ARCHAR,20)。

3.将members表中的列m_address修改为(V ARCHAR,30)。

4.删除members表中列m_mail。

数据库技术实验六

数据库技术实验六

课程名称数据库技术实验成绩实验名称存储过程和触发器的使用学号XX 班级日期实验目的:1.掌握存储过程的使用方法;2.掌握触发器的实现方法;实验平台:利用RDBMS(SQL Server 2008)与其交互查询工具(查询分析器)来操作T-SQL语言;实验内容:1.存储过程(1)创建存储过程,要求当一个员工的工作年份大于6年时将其转到经理办公室工作。

alterprocedure yuangong_infolEmployeeID char(6),name nchar(20)asbegindeclare year intset year=(select WorkYearfrom Employeeswhere EmployeeID=EmployeeID)declare DepartmentID char(3)set DepartmentID=(select DepartmentIDfrom Departmentswhere DepartmentName=name)if (year>6)update Employeesset DepartmentID=DepartmentIDwhere EmployeeID=EmployeeIDEndexec dbo.yuangong_infol'000000','经理办公室'(2)创建存储过程,根据每个员工的学历将收入提高500元。

alterproc SA_INenu char(6)asbeginupdate Salaryset InCome=InCome+500from Salary,Employeeswhere Employees.EmployeeID=Salary.EmployeeID and Education=enuendselect InComefrom Salary,Employeeswhere Salary.EmployeeID=Employees.EmployeeID and Education='本科'goexec dbo.sa_in'本科'goselect InComefrom Salary,Employeeswhere Salary.EmployeeID=Employees.EmployeeID and Education='本科'select InComefrom Salary,Employeeswhere Salary.EmployeeID=Employees.EmployeeID and Education='本科'(3)创建存储过程,使用游标计算本科与以上学历的员工在总员工数中的比例。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验目的:1. 掌握存储过程的使用方法;2. 掌握触发器的实现方法;rjM_K.IGG...o.hpl叮碍 SUUieryJ.E . itir血Ecus tonardurji 5exV.'crtYMr ⑷崔加础ur 怙WilTrue中憎0帧Tnz 3SJ21121 1(2)创建存储过程,根据每个员工的学历将收入提高500元alter proc SA_IN @enuchar(6)asbeginupdate Salaryset InCome=InCome+500 from Salary,Employeeswhere Employees.EmployeeID =Salary.EmployeeID and Education=@enu endselect In Comefrom Salary,Employeeswhere Salary.EmployeeID = Employees.EmployeeID and Education ='本科' goexecdbo.sa_ in'本科'goselect In Comefrom Salary,Employeeswhere Salary.EmployeeID = Employees.EmployeeID and Educati0门=本科' select In Comefrom Salary,Employees where Salary.EmployeeID =Employees.EmployeeID■I■ ■ ■ H1 20B2 ;4 52A&7D1 34&D7 3031.55inCcwii*1;2532232937014羽曲才号3521(3)创建存储过程,使用游标计算本科及以上学历的员工在总员工数中的比例。

declare@edu varchar ( 10),@part_cou nt int 5@all_cou nt int Jdeclare mycursor cursor forselect disti net educati on ,COUNT( education ) over ( partitionby education ) as part_cou nt ,COUNT( education ) over () as all countand Educati0门=本科from Employees ope n mycursor fetch n ext frommycursor into @edu, @part_count , @all_count while @@FETCH_STATUS= 0 begin print@edu +'占总人数比例:'+co nvert ( varchar (100), con vert (n umeric (38,2), @part_cou nt/ 1.0 / @all_cou nt*100))+ '%'fetch n ext from mycursor into @edu, @part_count , @all_countendclose mycusor deallocate mycursor(4) 使用命令方式修改及删除一个存储过程。

if exists( select workyear from Employees where workyear =3)drop procedure workyear2. 触发器(1) 对于 YGGL 数据库,表 Employees 的Employeeid 列与表 Salary 的Employeeid 列应满足参照完整性规则,请用触发器实现两个表间的参照完整 性。

create trigger SalaryinsO on Salary for insert,update as beginif (select employeeid from in serted) not in (select EmployeelD from Employees) rollback endcreate trigger Employeesupdate0 on dbo.Employees for update as beginupdate Salaryset employeeid =(select employeeid from inserted) where employeeid =(select employeeid from deleted) endcreate trigger Employeesdelete0 on Employees for delete as亍o7第B侶代另begindelete from Salarywhere employeeid =(select employeeid from deleted)end(2)当修改表Employees时,若将Employees表中员工的工作时间增加 1 年,则将收入增加500,若增加2年则增加1000,依次增加。

若工作时间减少则无变化。

create trigger em_workyear on Employeesafter updateasbegindeclare @a int ,@b intset @a=( select workyear from in serted )set @b=( select workyear from deleted )if (@a>@b)update Salaryset in come =in come + ( @a- @b>* 500where enployeeid in( select EmployeesID from inserted )endupdate Employeesset workyear =12where EmployeesID ='000001'(3)创建UPDATE触发器,当Salary 表中In Come值增加500时,outCome 值则增加50。

create trigger sa_in come on Salaryfor update as begi nif (( select in come from in serted )-( select in come from deleted )= 500 )update Salary set outcome =outcome + 50where en ployeeid = (select en ployeeid from in serted )end select in come , outcomefrom Salary where en ployeeid ='000001'二结果J消息incorne outcorne12100.8123.M5) 创建INSTEAD OF触发器,实现向不可更新视图插入数据create view a_viewasselect Employees . EmployeesID , name , workyear , income , outcome from Employees , Salarywhere Employees . EmployeesID =Salary . enployeeidgocreate trigger gxston a_viewin stead of in sertasbegindeclare @Ei char (6), @name char ( 10), @wy tinyint ,@ic float ,@oc float select @Ei = EmployeesID , @name =name , @wy=workyear ,@ic = in come , @oc=outcome from in sertedin sert into Employees ( EmployeesID , name, workyear )values (@Ei, @name, @wy) in sert into Salary values ( @Ei, @ic , @oc)endin sert into a_viewvalues ('000011','小芳',3, 2000 , 1500 )select * from a_viewwhere EmployeesID ='000011'E叩切也ID Naw IrtCome OUtCoow1000011小55320001500(5)创建DDL触发器,当删除数据库时,提示“无法删除”并回滚删除操作。

create trigger table_delete on database after drop_tableas print'不能删除表'rollback transaction go drop table YGGLJ消息不能删除表消息3迪,级别血状态S第1行事务在触发器中结束。

批处理已中止。

实验总结(结论或问题分析) :在本次实验中,感觉很难,对触发器和存储过程不是很了解,最后老师讲了,自己通过讲的虽然说做出来了,但是还是有不明白的地方,需要自己在下面复习巩固。

相关文档
最新文档