华南农业大学数据库系统概念实验报告七
- 格式:doc
- 大小:2.61 MB
- 文档页数:28
数据库系统概论实验指导(第七版)计算机学院2013/09改版履历目录目录 (3)1.实验概要 (4)1.1.实验说明 (4)1.2.实验环境和配置 (4)1.3.上机要求 (5)2.实验1:数据库/表的基本操作和表级约束 (5)2.1.目的和要求 (5)2.2.实验准备 (5)2.3.实验内容 (5)3.实验2:库级约束和基本表的数据操作 (8)3.1.目的和要求 (8)3.2.实验准备 (8)3.3.实验内容 (8)4.实验3:视图操作和安全性控制 (10)4.1.目的和要求 (10)4.2.实验准备 (10)4.3.实验内容 (10)5.实验4:存储过程/触发器/ODBC数据库编程 (12)5.1.目的与要求 (12)5.2.实验准备 (12)5.3.实验内容 (12)6.实验5:数据库综合实验 (14)6.1.目的与要求 (14)6.2.实验准备 (14)6.3.实验内容 (15)5.3.1.题目一:零件交易中心管理系统 (15)5.3.2.题目二:图书管理系统 (15)5.3.3.题目三:民航订票管理系统 (15)5.3.4.题目四:学生学籍管理系统 (16)5.3.5.题目五:车站售票管理系统 (16)5.3.6.题目六:企业人事管理系统 (16)5.3.7.题目七:电话交费管理系统 (16)5.3.8.题目八:医药销售管理系统 (17)7.附录:实验报告格式 (18)1.实验概要1.1.实验说明内容:本课程实验分5次完成,每次完成一部分。
具体内容参考本指导的后半部分。
成绩:每次实验100分,最后取5次实验的加权平均分作为实验的总成绩,其中第五次实验占40%,其余各次占15%。
每次实验中各个环节的评分标准如下:上述每一项按照百分制给出分值,最后按照比率计算每次实验的最终成绩。
实验报告每次实验需提交电子版的实验报告(最后一次实验需提交设计文档,源程序等相关资料)。
每次实验结束时,将写好的实验报告,提交给各班辅导老师。
数据库系统实验报告一、实验目的通过本次实验,我们旨在进一步熟悉数据库系统的概念和原理,掌握数据库设计和查询的基本方法,提高数据库系统的实践能力。
二、实验内容1.数据库设计在本次实验中,我们设计了一个针对学生信息管理的数据库系统。
该系统包括以下实体和属性:- 学生(Student):学生ID、姓名、年龄、性别、班级- 课程(Course):课程ID、课程名称、学分、授课教师- 成绩(Score):学生ID、课程ID、成绩2.数据库查询我们按照以下要求进行了一系列的数据库查询:-查询所有学生的基本信息;-查询所有课程的详细信息;-查询每个学生的姓名、班级和平均成绩;-查询每门课程的平均分和最高分;-查询一些学生的所有课程成绩。
三、实验步骤1.数据库设计2.数据库查询我们使用SQL语言进行数据库查询,按照实验要求编写了相应的查询语句。
在MySQL Workbench中,我们启动了数据库服务,并打开一个查询窗口。
通过输入查询语句,我们获得了所需的查询结果。
同时,我们还使用了一些SQL函数和关键字,如COUNT、AVG、GROUP BY和JOIN,以实现更复杂的查询。
四、实验结果经过多次查询和测试,我们得到了如下的实验结果:-查询所有学生的基本信息:SELECT * FROM Student;-查询所有课程的详细信息:SELECT * FROM Course;-查询每个学生的姓名、班级和平均成绩:SELECT , Student.class, AVG(Score.score)FROM Student JOIN Score ON Student.studentID =Score.studentIDGROUP BY , Student.class;-查询每门课程的平均分和最高分:SELECT , AVG(Score.score), MAX(Score.score)FROM Course JOIN Score ON Course.courseID = Score.courseID GROUP BY ;-查询一些学生的所有课程成绩:SELECT , Score.scoreFROM Course JOIN Score ON Course.courseID = Score.courseID WHERE Score.studentID = "学生ID";五、实验总结通过本次实验,我们深入理解了数据库系统的设计和查询原理,并通过实际操作掌握了数据库系统的基本使用方法。
数据库系统原理实验报告一、实验目的1.熟悉数据库系统的基本概念和原理;2.掌握数据库系统的基本操作;3.学会使用数据库系统进行数据管理和查询。
二、实验设备1.计算机;2.数据库管理系统软件。
三、实验过程1.创建数据库通过数据库管理系统软件,我们首先需要创建一个新的数据库。
在数据库管理系统软件的界面上,点击“新建数据库”按钮,输入数据库名称、用户名、密码等信息,并确定创建。
2.设计数据表在创建完数据库后,我们需要设计数据表结构。
点击数据库管理系统软件界面上的“表设计”按钮,弹出数据表设计界面。
根据实验需求,在数据表设计界面上添加字段、设置字段类型、设置主键等,最后确定设计。
3.插入数据数据表设计好后,我们需要将数据插入到数据表中。
通过数据库管理系统软件,点击“插入数据”按钮,弹出插入数据界面。
在插入数据界面上,输入要插入的数据信息,点击确定插入。
4.查询数据将数据插入到数据表中后,我们需要查询特定的数据。
通过数据库管理系统软件,点击“查询数据”按钮,弹出查询数据界面。
在查询数据界面上,输入查询条件,点击确定查询。
系统将会返回符合条件的数据。
五、实验结果通过以上实验步骤,我们成功地创建了一个新的数据库,设计了数据表结构,并将数据插入到数据库中。
同时,我们还可以通过数据库管理系统软件查询数据并获取到结果。
这些实验结果表明我们对数据库系统的基本操作具有熟练掌握的能力。
六、实验总结通过本次实验,我们深入了解了数据库系统的基本概念和原理,掌握了数据库系统的基本操作方法,并成功地应用到实际数据管理和查询中。
通过实验,我们意识到数据库系统在现代信息管理中的重要性,并且清楚地了解到数据库系统的优势和应用场景。
通过进一步的学习和实践,我们相信我们可以更加熟练地应用数据库系统,并将其应用到实际工作中。
数据库系统概论实验报告一、实验目的1、了解数据库系统概论的定义、特点及应用;2、掌握数据库系统的结构及功能;3、熟悉SQL语言及其语法;4、掌握数据库系统的基本操作;5、掌握数据库查询、更新、分析及设计。
二、实验要求1、掌握数据库系统的基本概念,理解SQL语言的语法及用法;2、熟练掌握常用数据库系统的基本操作,实现常用的数据库查询、更新、分析及设计;3、掌握数据库系统的结构及功能;4、能够使用SQL语言编写复杂的查询和更新语句;5、能够实现复杂的数据库分析和设计。
三、实验内容1、理解数据库系统的定义、特点及应用;2、熟悉SQL语言的语法及用法;3、掌握数据库系统的基本操作;4、实现数据库查询、更新、分析及设计。
四、实验步骤1、准备实验数据库:在实验中使用的数据库是SQL Server 2000;2、用SQL语言完成数据表的构建工作:建立实验所需的数据表,分析实验的表结构,在数据库中建立实验所需的表格;3、用SQL语言完成数据操作工作:对实验数据库中表进行查询、插入、更新、删除等操作;4、用SQL语言进行数据报表输出,检查实验数据库中的数据是否正确;5、用SQL语言完成数据分析和设计:分析实验表格中的数据,根据实验的需要进行数据库的设计,进行数据的分析和挖掘;6、完成实验报告:按照实验要求,写出实验报告,给出实验结果,及讨论数据库实验中遇到的问题及解决方案。
五、实验总结本次实验使用的是SQL Server 2000的数据库,学习运用SQL语言完成数据库的基本操作,熟练掌握常用的查询、插入、更新、删除、分析及设计的技能,深入理解数据库系统及其实现的机理,提高对数据库的操作能力。
通过本次实验,加深了对数据库系统的概念、应用及理论的认识,为今后更加深入的学习、研究、实践打下了坚实的基础。
数据库系统实验课实验报告一、实验目的数据库系统实验课是一门重要的实践课程,旨在通过实际操作和实验,深入理解数据库系统的原理和应用,提高我们的数据库设计、管理和应用开发能力。
本次实验的具体目的包括:1、熟悉数据库管理系统(DBMS)的操作环境和基本命令。
2、掌握数据库的创建、表的设计、数据的插入、查询、更新和删除等基本操作。
3、学会使用 SQL 语句进行复杂的数据查询和数据处理。
4、理解数据库的完整性约束、索引和存储过程的概念及应用。
5、培养解决实际数据库问题的能力和团队协作精神。
二、实验环境本次实验使用的数据库管理系统是 MySQL 80,实验在 Windows 10 操作系统上进行。
使用的开发工具包括 MySQL Workbench 和命令行终端。
三、实验内容1、数据库的创建使用 CREATE DATABASE 语句创建了一个名为“student_management”的数据库,用于存储学生管理相关的数据。
2、表的设计在“student_management”数据库中,设计了以下几张表:“students”表,包含学生的学号(student_id)、姓名(student_name)、性别(gender)、年龄(age)等字段。
“courses”表,包含课程的课程号(course_id)、课程名称(course_name)、学分(credit)等字段。
“enrolls”表,用于记录学生选课的信息,包含学号(student_id)、课程号(course_id)、成绩(grade)等字段。
在设计表时,为每个字段选择了合适的数据类型,并设置了主键和外键约束,以保证数据的完整性和一致性。
3、数据的插入使用 INSERT INTO 语句向“students”、“courses”和“enrolls”表中插入了一些示例数据,以便进行后续的查询和操作。
4、数据的查询使用简单的 SELECT 语句查询了“students”表中的所有学生信息。
福建农林大学计算机与信息学院实验报告课程名称:数据库原理及应用姓名:系:计算机科学与技术专业:计算机科学与技术年级:2012 级学号:指导教师:***2014 年5月18 日实验项目列表实验一:数据库的定义实验一、实验目的:1、理解MySQL Server 6.0 服务器的安装过程和方法;2、要求学生熟练掌握和使用SQL、T-SQL、SQL Server Enterpriser Manager Server 创建数据库、表、索引和修改表结构,并学会使用SQL Server Query Analyzer,接收T-SQL 语句和进行结果分析。
二、实验环境:硬件:PC机软件:Windows操作系统、MySQL Server 6.0 和Navicat for MySQL 9.0三、实验内容和原理:1、安装MySQL以及相应的GUI工具2、用SQL命令,建立学生-课程数据库基本表:学生Student(学号Sno,姓名Sname,年龄Sage,性别Ssex,所在系Sdept);课程Course(课程号Cno,课程名Cname,先行课Cpno,学分Ccredit);选课SC(学号Sno,课程号Cno,成绩Grade);要求:1) 用SQL命令建库、建表和建立表间联系。
2) 选择合适的数据类型。
3) 定义必要的索引、列级约束和表级约束.四、实验步骤:1、运行Navicat for MySQL,然后进行数据库连接,进入到GUI界面;2、利用图形界面建立基础表:student 表的信息:course表的信息:sc表的信息:字段名类型长度约束条件Sno varchar9非空、主键、与student表中Sno外键关联,级联删除Cno varchar 4Grade smallint6非空、主键、与course表中Cno外键关联(1)连接数据库,在 localhost 中点击鼠标右键(如图1所示),点击“新建数据库”,在弹出的窗口中输入数据库名称(如图2所示),然后单击“确定”,就完成了数据库的建立。
数据库系统实验报告一、实验目的本次数据库系统实验旨在通过实际操作,巩固和加深对数据库系统基本原理和操作的理解,提高数据库设计和管理的能力。
二、实验环境本次实验使用的数据库系统为MySQL,操作系统为Windows 10。
实验中使用了SQL语句来进行数据库的创建、数据的插入、查询和更新等操作。
三、实验内容1. 数据库的创建:首先在MySQL中创建一个名为"mydb"的数据库。
2. 创建表格:在"mydb"数据库中创建一个名为"students"的表格,包括字段有学号、姓名、性别和年龄。
3. 插入数据:向"students"表格中插入几条学生信息的数据。
4. 查询操作:利用SQL语句查询"students"表格中的数据,比如查询所有学生信息、查询特定学生的信息等。
5. 更新操作:使用UPDATE语句对"students"表格中的数据进行更新,比如修改学生的年龄等。
四、实验步骤1. 打开MySQL数据库并连接至"mydb"数据库。
2. 创建名为"students"的表格,设定字段为学号、姓名、性别和年龄。
3. 插入几条学生信息的数据如下:学号姓名性别年龄001 张三男 20002 李四女 214. 运行SQL语句查询"students"表格中所有学生信息。
5. 运行UPDATE语句,将学号为001的学生年龄修改为22岁。
五、实验结果通过实验操作,成功创建了数据库和表格,并成功插入了学生信息的数据。
查询操作和更新操作也均成功,数据库系统运行良好。
六、实验总结本次数据库系统实验对于巩固数据库基础知识和操作技能有很大帮助。
通过实践操作,加深了对SQL语句和数据库管理的理解,提高了数据处理和操作的能力。
希望在以后的学习和工作中能够更熟练地运用数据库系统进行数据管理和处理。
数据库系统概论实验报告
摘要
本报告重点介绍了有关数据库系统概论实验的内容,包括实验目的、实验内容及实验结果。
该实验主要通过SQL语句操作和分析来实现数据库的运用,并对其进行详细的介绍和分析。
本报告使用MySQL 数据库管理系统,在此系统中创建一张表,并使用SELECT、INSERT、UPDATE、DELETE等SQL语句对数据库进行操作和分析,最后输出查询结果。
关键词:数据库;SQL语句;MySQL
1、实验目的
本实验旨在帮助学生熟悉SQL语句,并利用SQL语句操作MySQL 数据库,以加深对数据库的理解。
2、实验内容
本实验主要包括MySQL的基本操作和SQL语句操作。
(1)首先,我们使用MySQL Workbench进行MySQL的基本操作,包括创建、编辑表格、查看表格等,这些操作技术都是关于MySQL的基本操作,基本上只要按照操作指南来操作即可,不需要使用SQL语句。
(2)然后,我们使用MySQL Workbench的SQL命令行来演示和实践SQL语句的操作,具体操作包括:使用SELECT、INSERT、UPDATE、DELETE等SQL语句,对表格中的数据进行查询、插入、更新和删除操作。
3、实验结果
通过本次实验,我们有力地实践了MySQL的使用,熟悉了MySQL 的基本操作,以及熟悉了SQL基本语句,熟练掌握了SELECT、INSERT、UPDATE、DELETE等数据操作语句,对其进行查询、插入、更新和删除操作,并输出操作结果,最终得到了我们想要的结果。
一、实验目的通过本次数据库实习,使学生了解数据库的基本概念、设计方法及实际应用,掌握数据库的基本操作,提高数据库设计及维护能力。
本实验旨在通过具体的实验操作,让学生深入理解数据库的理论知识,并能够将其应用于实际项目中。
二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 开发工具:MySQL Workbench三、实验内容1. 数据库设计(1)需求分析本实验以图书管理系统为例,分析图书管理系统的需求,包括图书信息、读者信息、借阅信息等。
(2)概念结构设计根据需求分析,设计图书管理系统的E-R图,包括实体、属性和联系。
(3)逻辑结构设计将E-R图转换为关系模型,确定实体和实体的属性,以及实体之间的关系。
(4)物理结构设计根据逻辑结构设计,确定数据库的表结构,包括字段类型、长度、约束等。
2. 数据库创建与操作(1)创建数据库在MySQL Workbench中,创建一个名为“library”的数据库。
(2)创建表根据物理结构设计,创建图书信息表(books)、读者信息表(readers)和借阅信息表(borrow_info)。
(3)插入数据向创建的表中插入一些测试数据。
(4)查询数据通过SQL语句查询图书信息、读者信息和借阅信息。
(5)更新数据通过SQL语句更新图书信息、读者信息和借阅信息。
(6)删除数据通过SQL语句删除图书信息、读者信息和借阅信息。
3. 数据库维护(1)备份与恢复使用MySQL Workbench的备份功能,备份数据库。
使用MySQL Workbench的恢复功能,恢复数据库。
(2)性能优化根据查询结果,分析数据库性能,优化查询语句。
(3)用户管理创建数据库用户,设置用户权限。
四、实验步骤1. 打开MySQL Workbench,连接到MySQL服务器。
2. 创建数据库“library”。
3. 创建图书信息表(books)、读者信息表(readers)和借阅信息表(borrow_info)。
一、实训目的通过本次数据库系统概论实训,使学生对数据库系统基本概念、原理、技术和应用有深入的理解,掌握数据库系统设计和实现的基本方法,提高数据库系统应用能力。
二、实训内容1. 数据库系统基本概念(1)数据库:存储在计算机系统中长期存取的数据集合,具有数据结构化、共享性高、冗余度低、易于扩充等特点。
(2)数据库管理系统(DBMS):位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。
(3)数据模型:用于抽象、表示和处理现实世界中具体的人、物、活动、概念的工具,分为概念模型、逻辑模型和物理模型。
2. 数据库系统设计(1)需求分析:了解用户需求,确定系统功能、性能、安全等要求。
(2)概念结构设计:使用E-R图描述实体、属性和实体间的关系。
(3)逻辑结构设计:将概念模型转换为逻辑模型,如关系模型。
(4)物理结构设计:将逻辑模型转换为物理模型,如数据库表结构设计。
3. 数据库系统实现(1)数据库表设计:根据逻辑结构设计,创建数据库表,包括字段类型、长度、约束等。
(2)视图设计:根据实际需求,创建视图,实现数据查询、统计等功能。
(3)存储过程和触发器设计:提高数据库性能,实现业务逻辑。
(4)数据备份与恢复:确保数据安全,防止数据丢失。
4. 数据库系统应用(1)数据查询:使用SQL语句进行数据查询,如SELECT、WHERE、GROUP BY等。
(2)数据插入、更新、删除:使用SQL语句进行数据操作,如INSERT、UPDATE、DELETE等。
(3)数据库安全与权限管理:设置用户权限,保证数据安全。
三、实训过程1. 安装数据库管理系统:使用Heidisql图形化工具,安装MySQL数据库管理系统。
2. 创建数据库:创建名为“EDUC”的数据库,用于存放学生、课程、成绩等信息。
3. 设计数据库表结构:根据需求分析,设计学生表、课程表、成绩表等表结构。
4. 创建视图:根据需求,创建视图,如学生课程视图、成绩排名视图等。
《数据库系统》实验报告七CREATE SEQUENCE logs_id_squ INCREMENT BY 1START WITH 1 MAXV ALUE 9999999 NOCYCLE NOCACHE;CREATE OR REPLACE TRIGGER DML_LOGBEFORE --触发时间为操作前DELETE OR INSERT OR UPDATE -- 由三种事件触发ON empFOR EACH ROW -- 行级触发器BEGINIF INSERTING THENINSERT INTO logsV ALUES(logs_id_squ.NEXTV AL,'EMP','INSERT',:new.empno,SYSDATE, USER);ELSIF DELETING THENINSERT INTO logsV ALUES(logs_id_squ.NEXTV AL,'EMP','DELETE',:old.empno,SYSDATE, USER);ELSEINSERT INTO logsV ALUES(logs_id_squ.NEXTV AL,'EMP','UPDATE',:new.empno,SYSDATE, USER);END IF;END;INSERT INTO emp(empno,ename,job,sal) V ALUES(8001,'MARY','CLERK',1000);COMMIT;SELECT * FROM LOGS;【练习1】修改、删除刚刚插入的雇员记录,提交后检查LOGS表的结果。
update empset sal = sal*5where ename = 'MARY';COMMIT;DELETE FROM emp WHERE empno = 8001; COMMIT;SELECT * FROM LOGS;【练习2】为DEPT表创建同样的触发器,使用LOGS表进行记录,并检验结果。
CREATE OR REPLACE TRIGGER DEPT_LOGBEFORE --触发时间为操作前DELETE OR INSERT OR UPDATE -- 由三种事件触发ON deptFOR EACH ROW -- 行级触发器BEGINIF INSERTING THENINSERT INTO logsV ALUES(logs_id_squ.NEXTV AL,'DEPT','INSERT',:new.deptno,SYSDATE, USER);ELSIF DELETING THENINSERT INTO logsV ALUES(logs_id_squ.NEXTV AL,'DEPT','DELETE',:old.deptno,SYSDATE, USER);ELSEINSERT INTO logsV ALUES(logs_id_squ.NEXTV AL,'DEPT','UPDATE',:new.deptno,SYSDAT E,USER);END IF;END;INSERT INTO dept(deptno,dname,loc) V ALUES(50,'JIAN','GUANGZHOU');COMMIT;SELECT * FROM LOGS;【训练2】CREATE TABLE logerr(NUM NUMBER(10) NOT NULL,MESSAGE V ARCHAR2(50) NOT NULL );CREATE OR REPLACE TRIGGER log_sal BEFOREUPDATE OF salON empFOR EACH ROWWHEN (new.job='CLERK' AND (ABS(new.sal-old.sal)>200))DECLAREv_no NUMBER;BEGINSELECT COUNT(*) INTO v_no FROM logerr;INSERT INTO logerr V ALUES(v_no+1,'雇员'||:new.ename||'的原工资:'||:old.sal||'新工资:'||:new.sal);END;UPDATE emp SET sal=sal+550 WHERE empno=7788;UPDATE emp SET sal=sal+500 WHERE empno=7369;UPDATE emp SET sal=sal+50 WHERE empno=7876;COMMIT;SELECT * FROM logerr;【训练3】CREATE OR REPLACE TRIGGER CHECK_SALBEFOREUPDATEON empFOR EACH ROWBEGINIF :new.job='CLERK' AND (:new.sal<500 OR :new.sal>2000) THEN RAISE_APPLICATION_ERROR(-20001, '工资修改超出范围,操作取消!');END IF;END;UPDATE emp SET sal=800 WHERE empno=7876;UPDATE emp SET sal=450 WHERE empno=7876;COMMIT;SELECT empno,ename,job,sal FROM emp WHERE empno=7876;【练习3】限定对emp表的修改,只能修改部门10的雇员工资。
CREATE OR REPLACE TRIGGER CHECK_NOBEFOREUPDATEON empFOR EACH ROWBEGINIF :new.DEPTNO<>10 THENRAISE_APPLICATION_ERROR(-20001, '修改的部门不符,操作取消!');END IF;END;UPDATE emp SET sal=8000 WHERE deptno=20; UPDATE emp SET sal=6789 WHERE deptno=30; UPDATE emp SET sal=888 WHERE deptno=10;select * from emp;【训练4】CREATE TRIGGER CASCADE_UPDATEAFTERUPDATE OF deptnoON DEPTFOR EACH ROWBEGINUPDATE EMP SET EMP.DEPTNO=:NEW.DEPTNO WHERE EMP.DEPTNO=:OLD.DEPTNO;END;UPDATE dept SET deptno=11 WHERE deptno=10;COMMIT;SELECT empno,ename,deptno FROM emp;【练习4】建立级联删除触发器CASCADE_DELETE,当删除部门时,级联删除EMP 表的雇员记录。
CREATE TRIGGER CASCADE_DELETEAFTERDELETEON DEPTFOR EACH ROWBEGINDELETE FROM EMP WHERE EMP.DEPTNO=:OLD.DEPTNO;END;DELETE FROM DEPT WHERE DEPTNO = 11; COMMIT;SELECT * FROM EMP;SELECT * FROM DEPT;【训练5】CREATE OR REPLACE TRIGGER INITCAP BEFORE INSERTON EMPFOR EACH ROWBEGIN:new.ename:=INITCAP(:new.ename); END;INSERT INTO emp(empno,ename,job,sal) VALUES(1000,'BILL','CLERK',1500);SELECT ename,job,sal FROM emp WHERE empno=1000;【练习5】限定一次对雇员的工资修改不超过原工资的10%。
CREATE OR REPLACE TRIGGER CHECK_SALARY BEFOREUPDATE OF SALON EMPFOR EACH ROWBEGINIF :new.SAL >= :old.SAL*1.1 THEN:new.SAL:= :old.SAL;ELSIF :new.SAL <= :old.SAL*0.9 THEN:new.SAL:= :old.SAL;END IF;END;SELECT * FROM EMP WHERE EMPNO = 7876;UPDATE EMP SET SAL = SAL*1.08 WHERE EMPNO = 7876; COMMIT;SELECT * FROM EMP WHERE EMPNO = 7876;7.2.4【训练1】CREATE OR REPLACE TRIGGER CHECK_TIMEBEFOREUPDATE OR INSERT OR DELETEON EMPBEGINIF (TO_CHAR(SYSDATE,'DY') IN ('SAT','SUN'))OR TO_CHAR(SYSDATE,'HH24')< '08'OR TO_CHAR(SYSDATE,'HH24')>='17' THENRAISE_APPLICATION_ERROR(-20500,'非法时间修改表错误!');END IF;END;UPDATE EMP SET SAL=3000 WHERE EMPNO=7369;【练习1】设计一个语句级触发器,限定只能对数据库进行修改操作,不能对数据库进行插入和删除操作。
在需要进行插入和删除时,将触发器设置为无效状态,完成后重新设置为生效状态。
CREATE OR REPLACE TRIGGER onlyupdateBEFOREUPDATE OR INSERT OR DELETEON EMPBEGINIF deleting or inserting thenRAISE_APPLICATION_ERROR(-20500,'非法操作!');END IF;END;7.3【训练1】CREATE OR REPLACE TRIGGER NODROP_EMPBEFOREDROP ON SCHEMABEGINIF Sys.Dictionary_obj_name='EMP' THENRAISE_APPLICATION_ERROR(-20005,'错误信息:不能删除emp表!');END IF;END;DROP TABLE emp;7.4【训练1】CREATE VIEW emp_name AS SELECT ename FROM emp;CREATE OR REPLACE TRIGGER change_nameINSTEAD OF INSERT ON emp_nameDECLAREV_EMPNO NUMBER(4);BEGINSELECT MAX(EMPNO)+1 INTO V_EMPNO FROM EMP;INSERT INTO emp(empno,ename)V ALUES(V_EMPNO,:new.ename);END;INSERT INTO emp_name V ALUES('BROWN');COMMIT;【训练2】CREATE OR REPLACE TRIGGER delete_from_enameINSTEAD OF DELETE ON emp_nameBEGINRAISE_APPLICATION_ERROR(-20006,'错误信息:不能在视图中删除emp表的雇员!');END;实验七创建触发器,进行表的同步复制CREATE OR REPLACE TRIGGER copytime before INSert OF DELETE or UPDA TE ON cc;BEGINif inserting theninsert into copynew values(:new id);。