数据库技术实验六

合集下载

数据库理论与技术实验报告六

数据库理论与技术实验报告六

数据库理论与技术课程实验报告学院:电子与信息工程学院专业:计算机科学与技术年级:计科实验时间: 2012年4月26日组长:学号:组_______姓名:学号:组_______姓名:学号:组_______姓名:学号:组_______指导教师签字:成绩:实验六、视图、存储过程和触发器实验一、实验目的和要求1、实验目的:理解视图的概念和相关命令,并掌握视图相关的SQL语句;理解存储过程的概念和相关命令,并掌握存储过程相关的SQL语句;理解触发器的概念和相关命令,并掌握触发器相关的SQL语句2、实验要求:掌握视图存储过程和触发器的使用二、实验内容与步骤1、利用数据库jxgl完成实现下列查询的视图。

(在SQL SERVER2005上附加数据库jxgl),并运行该视图。

安装好的SQL Server2005没有用户数据库,如果磁盘上有数据库文件,可以将其附加到数据库服务器中。

(1)创建视图,实现查询03物流1班学生的详细信息(2)创建视图,实现查询“入学成绩”在350到400分之间的学生的姓名和班级(3)创建视图,实现查询students表中现有的班级(4)创建视图,实现查询具有“教授”或“副教授”职称的教师的教师编号和姓名(5)创建视图,实现查询姓“陈”,且籍贯是“宁波”的学生的姓名,出生日期,入学成绩。

(6)创建视图,实现查询课程名称中包含“DB_”的课程的信息(7)创建视图,实现查询教师上课情况表中还没有安排好上课教师的班级和对应的课程号(8)创建视图,实现查询全体学生情况,查询结果按所在班级名升序排列,同一班级中的学生按出生日期降序排列(9)创建存储过程,实现统计03物流1班学生“入学成绩”的平均分、最高分、最低分(10)创建存储过程,实现统计各个班级的学生人数,按统计结果做降序排列(11)创建存储过程,实现统计各部门教师的人数,筛选出教师人数在指定人数(参数)以上的部门(12)创建储存过程,实现查询平均分在指定分数(参数)以上的课程编号2、将上述查询以存储过程实现,并在后面写出运行该存储过程的语句。

数据库技术及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中用查询设计器建立查询的基本。

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

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

(完整版)数据库技术与应用实验报告《数据库技术与应用》实验报告班级学号:姓名:实验日期:指导老师:实验名称一、实验一表的建立与维护实验目的与要求 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.把少数民族学生的记录复制到中。

数据库完整性实验总结(必备6篇)

数据库完整性实验总结(必备6篇)

数据库完整性实验总结第1篇时间流水,短短的两周就流逝了,回想在这两周的实训生活,我从单一,片面的学习进入了全面,系统的学习,学好它更是一项大任务。

而对于如何学好它,光靠理论知识是远远不够的,_同志曾经就说过“实践是检验真理的唯一标准”!正如大师傅炒菜,知道炒菜的程序,主料、调料一清二楚,不真正掌勺,永远也成不了“大厨”。

而学校给我们提供了这样一个机会,让我们自己_掌勺_,使我们从实践中,加深了对数据库的理解。

经过这次的实训,我们对数据库有了更深的了解,从书面的明白到实践的理解,接触到了自己以前没有接触到的东西,并让我加深了数据库知识的学习和理解,也使我进一步了解数据库,这次实训可以为我们以后真正的实际数据库系统设计提供很好的借鉴。

更使我明白遇到什么挫折,不气馁,不放弃,勇于探索,才会让自己离成功越来越近!俗话说:知之为知之,不知为不知!不要不懂装懂,有什么不懂的要敢于向_知之者_请教!知识是慢慢积累而成的,我们学习不仅要学习理论知识,而实践也是非常重要的,只有当两者结合,才会获得收获!我们这次实习对我们的认识起到了很大的启发作用,使我们以后在接触数据库的过程中少走点弯路。

也使我们对人生和社会有了更清楚的认识,任何的成功都有艰辛和汗水铺出来的,没有那么多的意外收获。

我们要学的还有很多,要接触的还不知道有多少,以后的路还很漫长,我相信我会更加努力的,把握现在,为自己的未来而奋斗,展开双翅飞向美好的未来!在这里很感谢xxx老师给我们传授了这么多的知识和经验,让我们在毕业之际更好的填补自己的不足。

数据库完整性实验总结第2篇在学习《数据库原理及应用》这门课之前,就和课本上提到的一个观点一样,认为它只是存放数据的仓库而已,但是现在我深深体会到这个观点是多么的片面。

数据库是长期存储在计算机内,有组织、可共享的大量的数据集合,前者只能表达它的一方面而已。

数据库技术发展到今天已经是一门非常成熟的技术,它的技术水平、应用水平多比初始时都有了很大的改变,但是它的最基本的特征却没有变,概括起来有以下几个方面:第一点:数据库是相互关联的的数据集合;即在数据库中不仅要能够表示数据本身,还要能够表示数据与数据之间的关系。

数据库原理综合实验报告

数据库原理综合实验报告

实验六数据库原理综合实验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)

数据库实验报告(6)一实验题目1.存储过程的定义和使用2。

触发器的创建和使用二实验目的1.掌握存储过程的定义、执行和调用方法。

2.掌握触发器的创建和使用。

三实验内容1.存储过程的定义和使用(1)创建存储过程查找姓李的学生的选修课成绩信息。

(2)创建一个存储过程,计算每个学生选修课的总分,并显示得分最高的三名学生的分数。

(3)创建一个存储过程以查找课程的最高分数(带有输入参数的存储过程)。

(4)创建一个存储过程来计算同学的平均分数并返回统计结果。

(带输入和输出参数的存储过程)(5)创建一个存储过程,计算选修课的数量,然后返回数字。

(6)用存储过程统计选修课,用存储值最多的学生。

(存储过程的嵌套)2.触发器的创建与使用(1)如果学分大于5,在为表格C插入新课程信息时,定义行前级别的触发学分uu触发器分,自动修改为5分。

(2)定义行后级别触发器。

当SC表的等级发生变化时,它将自动出现在等级变化表SC_uu增加日志中加一条新的纪录,该新纪录包括:操作者名称、操作日期、操作类型。

(3)建立一个delete触发器,针对于sc表,每次只能删除一条信息。

(4)创建不允许用户更改学号的更新触发器。

如果学生号被更改,将给出提示信息:学生号不允许更改。

(5)执行相应的SQL语句来触发上面定义的触发器。

(6)删除触发信用触发四实验步骤1.存储过程的定义和格式:createproc[edure]procedure_name[;number][{@parameterdata_type}[变化][=默认值][输出][with[用于复制]assql_statement[...n]创建存储过程以查找姓李的学生的选修课分数信息。

(1)创建存储过程,统计每个学生的选修课的总成绩,显示成绩最好的前3名学生成绩。

SC表的基本信息如图1所示:图表1代码:createprocp_sumscoreas从SCGroupByNo中选择Top 3Sum(成绩)作为总分execp_sumscore运行结果:命令已成功完成。

实验六 数据库的完整性定义与检查 (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))二、在查询编辑器中,写出创建表的语句同时写出设置实体完整性、参照完整性和用户自定义完整性的语句。

数据库实用技术-实验六

数据库实用技术-实验六

实验报告单院(系)计算机学院专业计算机科学与技术班级姓名学号同组人实验室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 -数据完整性约束(表约束)

数据库实验6 -数据完整性约束(表约束)

实验六数据完整性约束姓名:学号:专业:网络工程班级:20网络工程同组人:无实验日期:2022.5【实验目的与要求】1.熟练掌握实体完整性的实现。

2.熟练掌握参照完整性的实现。

3.熟练掌握域完整性的实现。

【实验内容与步骤】实验准备:(1)对于SalesDB数据库,若在产品表、销售表和客户表上已有约束,请先删除之;(2)删除掉表中重复的行。

6.1.实体完整性的实现(1) 对产品表,定义主键约束(用企业管理器实现)。

写出相应过程:(1)在对象资源管理器中的数据库节点下找到数据库SalesDB,找到表Product。

右击-修改(2)按住Ctrl键选中Price和Stocks,右键-设置主键-保存测试:试着对产品表插入一条与原表中数据行具有相同主键值的数据。

给出测试结果:(2)客户表(CUSTOMER),定义名为PK_Cstm的主键约束,设定客户号(Cno)为主键。

(用SQL语句实现,写出相应语句)。

给出相应的SQL语句:alter table Customeraddconstraint PK_Cstm primary key(Cno)给出测试结果:(3)对销售表,定义名为PK_Sales的主键约束,设定主键为(Pno,Cno)的组合(用SQL语句实现,写出相应语句)。

给出相应的SQL语句:alter table Salesaddconstraint PK_Sales primary key(Pno,Cno)给出测试结果:(1)利用企业管理器建立产品表(Product)与销售表(Sales)之间的参照关系,当对主表产品表进行更新和删除操作时,从表Sales采用NO ACTION方式,写出其过程。

给出相应的过程:测试:试着删除主表中与从表有关联的一条记录,而后分别查看主表和从表中数据记录,给出测试结果。

(2)利用SQL语句建立销售表(SALES)与客户表(CUSTOMER)之间的参照关系,设定外键约束名为FK_SC,使得当对主表客户表(CUSTOMER)进行更新和删除操作时,从表销售表(SALES)采用CASCADE(级联)方式处理,给出相应的SQL语句和测试结果。

实验六数据库备份与恢复(精)

实验六数据库备份与恢复(精)
实验六 数据库备份与恢复Leabharlann Oracle数据库技术实验目的
1 掌握物理备份与修复的方法
2 掌握逻辑备份中的差异备份和完全备份
实验内容
(一)逻辑备份和恢复 1、创建用户user1/user1,并授予用户CREATE SESSION 和UNLIMITED TABLESPACE的权限。 2、逻辑备份scott用户所有内容,备份的文件为 scott20101120.dmp 3、将scott20101120.dmp导入到user用户 4、在scott用户中删除dept表,包括表数据和表结构 (注意:应先删除emp表中存在的外键约束FK_DEPTNO, 其删除形式为ALTER TABLE emp DROP CONSTRAINT fk_deptno) 5.使用逻辑备份集恢复scott
实验内容
(二)冷备份orcl数据库,并恢复。恢复是将数据文件 恢复到与原来相同的位置。 (三)按照“热备份.txt”文件完成热备份与恢复。
Oracle数据库技术

数据库实验实验报告

数据库实验实验报告

数据库实验实验报告一、实验目的本次数据库实验的主要目的是通过实际操作和实践,深入理解数据库的基本概念、原理和技术,掌握数据库的设计、创建、管理和操作的方法和技能,提高解决实际问题的能力和综合素质。

二、实验环境本次实验使用的数据库管理系统是 MySQL 80,操作系统为Windows 10。

实验在个人计算机上进行,使用了 MySQL Workbench 作为数据库管理和开发工具。

三、实验内容(一)数据库设计1、需求分析根据给定的业务场景和需求,对数据库进行了详细的需求分析。

确定了需要存储的实体、属性和关系,绘制了 ER 图,为后续的数据库设计提供了清晰的蓝图。

2、概念结构设计基于需求分析的结果,进行了概念结构设计。

确定了实体、属性和实体之间的关系,使用 ER 图进行了直观的表示。

3、逻辑结构设计将概念结构设计转换为逻辑结构设计,确定了表的结构、字段的数据类型、主键和外键等。

创建了相应的数据表,并进行了完整性约束的定义。

(二)数据库创建1、使用 SQL 语句创建数据库和数据表在 MySQL 中,使用 CREATE DATABASE 语句创建了数据库,使用 CREATE TABLE 语句创建了数据表,并按照设计要求定义了表的结构和约束。

2、插入数据使用 INSERT INTO 语句向数据表中插入了大量的测试数据,以确保数据库的完整性和可用性。

(三)数据库管理1、数据查询使用 SELECT 语句进行了各种复杂的查询操作,包括单表查询、多表连接查询、子查询、聚合函数的使用等,掌握了不同查询方式的特点和应用场景。

2、数据更新使用 UPDATE 语句对数据表中的数据进行了更新操作,掌握了如何正确修改数据以满足业务需求。

3、数据删除使用 DELETE 语句对数据表中的数据进行了删除操作,了解了删除数据时需要注意的事项,以避免误删除重要数据。

(四)数据库优化1、索引优化在数据表的关键字段上创建了索引,提高了数据查询的效率。

数据库实验六_使用PLSQL编写存储过程访问数据库

数据库实验六_使用PLSQL编写存储过程访问数据库

数据库原理实验报告
实验名称
使用PL/SQL编写存储过程访问数据库
实验环境
硬件平台:Intel Core i5-3210M
操作系统:Windows 8.1
数据库管理系统(DBMS):MySQL Server 5.5
实验内容及步骤
1.由于我们实验所用的MySQL不支持PL/SQL,但提供了存储过程的功能。

因此我们通过
在MySQL中建立存储过程来完成本实验。

2.建立一个存储过程,用来向student表添加一条学生记录,如图:
在存储过程中,我们将学号,姓名,性别,年龄以及系别作为存储过程的输入参数。

3.在调用存储过程前,我们先查看一下student表:
4.下面,我们调用存储过程,向表中插入一条数据,如下:
5.调用完成后,我们再次查看student表中的内容:
可以看到,刚才调用存储过程向student表中插入的数据已在表中,说明插入成功。

实验六 数据库的创建与操作第三稿

实验六 数据库的创建与操作第三稿

实验六数据库的创建与操作【实验目的】1.熟练掌握创建数据库、使用数据库、修改数据库的方法。

2.掌握创建、删除表间关系及如何建立参照完整性。

3.掌握使用数据库设计器的方法。

【实验内容】创建一个关于某公司员工的数据库,具体操作要求如下:(1)数据库名为“职工库”。

(2)在库中建立如下数据表:a)职工情况表(编号,姓名,性别,职称,出生日期,参加工作时间)b)职工工资表(编号,姓名,基本工资,奖金,房租,水电,实发工资)c)考核表(编号,姓名,完成工作否,优秀否)(3)建立“职工情况表”与“职工工资表”之间的永久性关系。

(4)定义“职工情况表”与“职工工资表”之间的参照完整性规则,定义删除规则为“级联”,更新规则和插入规则为“限制”。

(5)将“考核表”从该库中移出,成为自由表。

操作步骤:一、创建数据库方法一:先创建数据库,再添加至已有的项目中去。

(不推荐)1、单击“文件”菜单下的“新建”命令。

2、在“新建”对话框中的文件类型单选框中选中“数据库”选项,再单击“新建文件“按钮。

3、在创建对话框数据库名一栏中输入数据库名称“职工库”,单击“保存”按钮。

4、单击“文件”菜单下的“打开”命令。

5、选中“职工管理.pjx”文件,再单击“确定”按钮。

6、弹出项目管理器-职工管理,此时的“添加”等按钮均为灰色不可选。

点击数据左侧的加号,再单击数据库,“添加”按钮显现为可选,此时单击“添加”按钮.7、弹出打开对话框,选中“职工库.dbc”,再单击“确定”按钮8、“职工管理“项目成功添加了“职工库”数据库。

如图所示:方法二:先创建项目或打开已有项目,通过项目管理器新建数据库。

(推荐)1、单击“文件”菜单下的“新建”命令。

2、在“新建”对话框中的文件类型单选框中选中“项目”选项,再单击“新建文件“按钮。

3、在弹出的创建对话框中,在项目文件一栏输入“职工管理”,再单击“保存”按钮。

4、弹出项目管理器-职工管理,此时的“新建”等按钮均为灰色不可选。

数据库实验报告范本(3篇)

数据库实验报告范本(3篇)

第1篇实验名称:数据库设计与实现实验日期:2023年4月15日实验班级:计算机科学与技术专业1班实验学号:12345678一、实验目的1. 理解数据库设计的基本原理和方法。

2. 掌握数据库概念结构、逻辑结构和物理结构的设计。

3. 学会使用数据库设计工具进行数据库设计。

4. 能够使用SQL语句进行数据库的创建、查询、更新和删除等操作。

二、实验内容1. 数据库概念结构设计- 分析需求,确定实体和实体间的关系。

- 设计E-R图,表示实体、属性和关系。

2. 数据库逻辑结构设计- 将E-R图转换为关系模式。

- 设计关系模式,确定主键、外键等约束。

3. 数据库物理结构设计- 选择合适的数据库管理系统(DBMS)。

- 设计数据库表结构,包括字段类型、长度、索引等。

- 设计存储策略,如数据文件、索引文件等。

4. 数据库实现- 使用DBMS创建数据库。

- 创建表,输入数据。

- 使用SQL语句进行查询、更新和删除等操作。

三、实验步骤1. 数据库概念结构设计- 分析需求,确定实体和实体间的关系。

- 设计E-R图,表示实体、属性和关系。

2. 数据库逻辑结构设计- 将E-R图转换为关系模式。

- 设计关系模式,确定主键、外键等约束。

3. 数据库物理结构设计- 选择合适的数据库管理系统(DBMS)。

- 设计数据库表结构,包括字段类型、长度、索引等。

- 设计存储策略,如数据文件、索引文件等。

4. 数据库实现- 使用DBMS创建数据库。

- 创建表,输入数据。

- 使用SQL语句进行查询、更新和删除等操作。

四、实验结果与分析1. 数据库概念结构设计- 实体:学生、课程、教师、成绩。

- 关系:学生与课程之间有选课关系,教师与课程之间有授课关系。

2. 数据库逻辑结构设计- 学生表(学号,姓名,性别,年龄,班级号)。

- 课程表(课程号,课程名,学分,教师号)。

- 教师表(教师号,姓名,性别,年龄,职称)。

- 成绩表(学号,课程号,成绩)。

数据库学习实验报告(3篇)

数据库学习实验报告(3篇)

第1篇一、实验目的本次实验旨在通过实际操作,加深对数据库基础知识的理解,掌握数据库的基本操作,包括数据库的创建、表的设计、数据的插入、查询、修改和删除等。

通过本次实验,提高对SQL语言的实际应用能力,为后续深入学习数据库知识打下坚实的基础。

二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 开发工具:MySQL Workbench三、实验内容1. 数据库的创建与删除2. 表的设计与数据类型3. 数据的插入、查询、修改和删除4. 索引与视图的应用四、实验步骤1. 数据库的创建与删除(1)创建数据库```sqlCREATE DATABASE db_student;```(2)删除数据库```sqlDROP DATABASE db_student;```2. 表的设计与数据类型(1)创建学生表```sqlCREATE TABLE student (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50),age INT,gender ENUM('男', '女'),class VARCHAR(50));```(2)创建课程表```sqlCREATE TABLE course (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50),credit INT);```3. 数据的插入、查询、修改和删除(1)插入数据```sqlINSERT INTO student (name, age, gender, class) VALUES ('张三', 20, '男', '计算机科学与技术');INSERT INTO course (name, credit) VALUES ('高等数学', 4);```(2)查询数据```sql-- 查询所有学生信息SELECT FROM student;-- 查询年龄大于20岁的学生信息SELECT FROM student WHERE age > 20;-- 查询课程名称为“高等数学”的课程信息SELECT FROM course WHERE name = '高等数学';```(3)修改数据```sql-- 修改学生张三的年龄为21岁UPDATE student SET age = 21 WHERE name = '张三';-- 修改课程“高等数学”的学分UPDATE course SET credit = 5 WHERE name = '高等数学';```(4)删除数据```sql-- 删除学生张三的信息DELETE FROM student WHERE name = '张三';-- 删除课程“高等数学”的信息DELETE FROM course WHERE name = '高等数学'; ```4. 索引与视图的应用(1)创建索引```sql-- 创建学生表id字段的索引CREATE INDEX idx_student_id ON student(id); -- 创建课程表name字段的索引CREATE INDEX idx_course_name ON course(name); ```(2)创建视图```sql-- 创建包含学生姓名和课程名称的视图CREATE VIEW student_course_view ASSELECT , FROM studentJOIN course ON student.class = course.id;```(3)查询视图数据```sql-- 查询视图中的数据SELECT FROM student_course_view;```五、实验总结通过本次实验,我深入了解了数据库的基本操作,掌握了SQL语言的运用。

数据库实验6 视图创建与使用

数据库实验6  视图创建与使用

实验六视图的创建与使用学号 __ 姓名_ _ 班级__ _专业_ _一、实验目的1)理解视图的概念。

2)掌握创建视图的方法。

3)掌握更改视图的方法。

4)掌握用视图管理数据的方法。

二、实验内容创建视图是数据库应中的常见需求,可以使用企业管理创建、管理视图,也可以用T-SQL 语言创建、管理视图。

1、用创建视图向导创建视图使用视图向导创建一个名为studview1的视图,该视图从student表中查询出班级号为“052”班的所有学生的学号,姓名,性别,班级,家庭住址,入学时间,生日等我还资料。

(提示:分别进入企业管理器,再分别单击“工具”、“向导”、“数据库”、“创建视图向导”,然后一步一步地创建视图。

)2、用企业管理器创建、管理视图(1)创建视图A、使用企业管理器在表student上创建一个能查询“051”班学生学号、姓名、家庭住址信息的=‘051’视图,视图名为studentview2。

(提示:依次进入企业管理器、数据库、XSGL库,并用鼠标右键单击“视图”)。

B、使用企业管理器在表student、course、sc表上创建一个能检索学生的学号、姓名、学习课程号、学习课程名及课程成绩。

视图名自取。

(2)修改视图stuview1将视图stuview1的定义修改为查询“051”班男生学号、姓名、家庭住址信息的投影视图。

(提示:修改视图:在企业管理器中选中视图后->击右键->按设计视图->进行修改)(3)管理视图中的数据查看视图stuview1中的数据。

用鼠标右键单击要管理的视图stuview1,单击“打开视图”,再单击“返回所有行”。

3、用T-SQL语言创建、管理视图(1)创建视图1)创建一个名为stuview2的视图,从数据库XSGL的student表中查询出性别为“男”的所有学生的资料。

T-SQL语句为:create view stuview2asselect *from studentwhere sex='男'2)创建一个名为stuview3的视图,能检索出选课学生的学号、姓名、课程名、成绩。

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,其参数值为“马东”。

数据库安全管理---实验报告6

数据库安全管理---实验报告6
select * from学生档案
以Windows身份验证登录后,收回查询“教师档案表”的权限
revoke select on教师档案表from MyUser2
用户“MyUser2”不能再查询“教师档案表”,因为该权限被收回
select * from教师档案表
四、出现的问题及解决方案
1、创建新用户“MyUser2”以及对用户授予权限管理均只能在Windows身份认证下超级用户才可以完成。
该用户创建表成功,因为被授予该权限
create table aaa(aa varchar(8)not null primary key,bb varchar(8))
运行结果如图所示:
该用户可以查询“教师档案表”,因为被授予该权限
select * from教师档案表
运行结果如图所示:
该用户查询“学生档案”被拒绝,因为没被授予该权限
数据库原理与应用实验报告
课程名称:数据库原理与应用
年级:06
实验日期:08-10-21
姓名:
学号:03
班级:2班
实验名称:数据库安全管理
实验序号:实验六
成员人数:1
一、实验目的及要求
实验目的:
掌握用的创建和授权方法。
实验要求:
1、理解和体会数据库安全性的内容,加强对DBMS功能的认识;
2、学会创建登陆用户并向其授予数据库访问权限;
以“MyUser”账号登陆
查询“学生档案”中的记录
select * from学生档案
运行结果如图所示:
查询“学生成绩表”中的记录被拒绝,因为没被授予该权限
select * from教师档案表
删除“学生成绩表”中的记录被拒绝,因为没被授予该权限
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
end
closemycusor
deallocatemycursor
(4)使用命令方式修改及删除一个存储过程。
ifexists(selectworkyearfromEmployeeswhereworkyear=3)
dropprocedureworkyear
2.触发器
(1)对于YGGL数据库,表Employees的Employeeid列与表Salary的Employeeid列应满足参照完整性规则,请用触发器实现两个表间的参照完整性。
alterprocedureyuangong_infol@EmployeeIDchar(6),@namenchar(20)
as
begin
declare@yearint
set@year=(
selectWorkYear
fromEmployees
whereEmployeeID=@EmployeeID)
declare@DepartmentIDchar(3)
set@DepartmentID=(
selectDepartmentID
fromDepartments
whereDepartmentName=@name)
if(@year>6)
updateEmployees
setDepartmentID=@DepartmentID
whereEmployeeID=@EmployeeID
forupdate
as
begin
updateSalary
setemployeeid=(selectemployeeidfrominserted)
whereemployeeid=(selectemployeeidfromdeleted)
end
createtriggerEmployeesdelete0onEmployees
createtriggerSalaryins0onSalary
forinsert,update
as
begin
if(selectemployeeidfrominserted)notin(selectEmployeeIDfromEmployees)
rollback
end
createtriggerEmployeesupdate0ondbo.Employees
byeducation)aspart_count,
COUNT(education)over()asall_count
fromEmployees
openmycursor
fetchnextfrom
mycursorinto@edu,@part_count,@all_count
while@@FETCH_STATUS=0begin
whereEmployees.EmployeeID=Salary.EmployeeIDandEducation=@enu
end
selectInCome
fromSalary,Employees
whereSalary.EmployeeID=Employees.EmployeeIDandEducation='本科'
createtriggerem_workyearonEmployees
afterupdate
as
begin
declare@aint,@bint
set@a=(selectworkyearfrominserted)
set@b=(selectworkyearfromdeleted)
if(@a>@b)
updateSalary
createtriggersa_incomeonSalary
forupdate as begin
if((selectincomefrominserted)-(selectincomefromdeleted)=500)
updateSalarysetoutcome=outcome+50
whereenployeeid=(selectenployeeidfrominserted)
fromEmployees,Salary
whereEmployees.EmployeesID=Salary.enployeeid
go
createtriggergxst
ona_view
insteadofinsert
as
begin
declare@Eichar(6),@namechar(10),@wytinyint,@icfloat,@ocfloat
fordelete
as
begin
deletefromSalary
whereemployeeid=(selectemployeeidfromdeleted)
end
(2)当修改表Employees时,若将Employees表中员工的工作时间增加1年,则将收入增加500,若增加2年则增加1000,依次增加。若工作时间减少则无变化。
end
insertintoa_view
values('000011','小芳',3,2000,1500)
select*froma_view
whereEmployeesID='000011'
(5)创建DDL触发器,当删除数据库时,提示“无法删除”并回滚删除操作。
createtriggertable_deleteondatabaseafterdrop_table
end selectincome,outcome
fromSalarywhereenployeeid='000001'
(5)创建INSTEAD OF触发器,实现向不可更新视图插入数据。
createviewa_view
as
selectEmployees.EmployeesID,name,workyear,income,outcome
select@Ei=EmployeesID,@name=name,@wy=workyear,@ic=income,@oc=outcome
frominserted
insertintoEmployees(EmployeesID,name,workyear)values(@Ei,@name,@wy)
insertintoSalaryvalues(@Ei,@ic,@oc)
End
execdbo.yuangong_infol'000000','经理办公室'
(2)创建存储过程,根据每个员工的学历将收入提高500元。
alterprocSA_IN@enuchar(6)
as
begin
updateSalary
setInCome=InCome+500
fromSalary,Employees
go
execdbo.sa_in'本科'
go
selectInCome
fromSalary,Employees
whereSalary.EmployeeID=Employees.EmployeeIDandEducation='本科'
selectInCome
fromSalary,Employees
whereSalary.EmployeeID=Employees.EmployeeIDandEducation='本科'
print@edu+'占总人数比例:'+convert(varchar(100),convert(numeric(38,2),@part_count/1.0/@all_count*100))+'%'
fetchnextfrommycursor
into@edu,@part_count,@all_count
课程名称
数据库技术
实验
成绩
实验名称
存储过程和触发器的使用
学号
姓名
班级
日期
1ቤተ መጻሕፍቲ ባይዱ.11.25
实验目的:
1.掌握存储过程的使用方法;
2.掌握触发器的实现方法;
实验平台:
利用RDBMS(SQL Server 2008)及其交互查询工具(查询分析器)来操作T-SQL语言;
实验内容:
1.存储过程
(1)创建存储过程,要求当一个员工的工作年份大于6年时将其转到经理办公室工作。
(3)创建存储过程,使用游标计算本科及以上学历的员工在总员工数中的比例。
declare
@eduvarchar(10),
@part_countint,
@all_countint;
declaremycursorcursorfor
selectdistincteducation,
COUNT(education)over(partition
as print'不能删除表'rollbacktransaction go droptableYGGL
实验总结(结论或问题分析):
在本次实验中,感觉很难,对触发器和存储过程不是很了解,最后老师讲了,自己通过讲的虽然说做出来了,但是还是有不明白的地方,需要自己在下面复习巩固。
setincome=income+(@a-@b)*500
whereenployeeidin(selectEmployeesIDfrominserted)
end
updateEmployees
setworkyear=12
whereEmployeesID='000001'
(3)创建UPDATE触发器,当Salary表中InCome值增加500时,outCome值则增加50。
相关文档
最新文档