实验8 数据完整性实验
数据控制_实验报告

一、实验目的1. 理解数据控制的基本概念和原理;2. 掌握数据控制技术的应用方法和技巧;3. 培养实际操作能力和分析问题、解决问题的能力。
二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 开发工具:Visual Studio 20194. 实验数据:学生信息表(包括姓名、性别、年龄、班级、成绩等字段)三、实验内容1. 数据库设计2. 数据插入与查询3. 数据更新与删除4. 数据完整性控制5. 数据并发控制四、实验步骤1. 数据库设计(1)创建数据库:打开MySQL,创建一个名为“DataControl”的数据库。
(2)创建表:在“DataControl”数据库中创建一个名为“student”的表,包含以下字段:字段名 | 类型 | 说明--- | --- | ---id | int | 学生ID(主键)name | varchar(50) | 学生姓名gender | varchar(10) | 学生性别age | int | 学生年龄class | varchar(50) | 学生班级score | float | 学生成绩2. 数据插入与查询(1)插入数据:使用SQL语句向“student”表中插入数据。
INSERT INTO student (id, name, gender, age, class, score) VALUES (1, '张三', '男', 20, '计算机科学与技术1班', 90.5);INSERT INTO student (id, name, gender, age, class, score) VALUES (2, '李四', '女', 21, '计算机科学与技术2班', 85.0);INSERT INTO student (id, name, gender, age, class, score) VALUES (3, '王五', '男', 20, '计算机科学与技术3班', 92.0);(2)查询数据:使用SQL语句查询“student”表中的数据。
2016《数据库原理》实验指导书SQL-Server2012

网络数据库技术实验指导书南京工业大学经济与管理学院2017年9月目录实验目的 (2)实验要求 (2)实验环境 (2)实验一、常用数据库管理系统介绍 (3)实验二、SQL Sever 数据库管理系统的基本操作 (10)实验三、基本表的定义 (26)实验四、基本表与删除索引的修改与删除 (30)实验五、条件及统计汇总查询 (35)实验六、数据表连接查询与数据更新操作 (39)实验七、视图的定义、查询与维护 (42)实验八、数据库的完整性实验 (43)实验九、触发器实验 (46)实验十、数据的导出与导入实验 (55)实验十一数据库备份与数据库还原技术 (72)实验十二、数据库用户管理技术 (77)实验十三、数据库综合设计与实现 (77)实验目的数据库原理是一门理论和实践很强的课程。
学生学习这门课程要求掌握两方面内容:数据库设计和上机实践。
因此数据库的实验要围绕这两方面进行。
通过对 Access、SQL Server 数据库管理系统的学习帮助学生巩固和加深理解所学过的理论知识,树立工程的观点和严谨的科学作风,使学生熟练掌握基本的 SQL 语句,熟悉 SQL Server 数据库管理系统的功能、数据管理、应用和开发技术。
熟练使用 SQL 语句创建数据库、表、索引、修改表结构,以及进行数据的查询、更新、定义视图等操作。
掌握 SQL Server 中触发器的创建方法,学会数据的导入和导出操作。
通过实验,培养学生的动手能力以及在实践中发现问题并能及时解决问题的能力,锻炼学生的逻辑思维能力,提高数据库应用开发能力。
为学生毕业后从事计算机应用职业做好必要的准备。
实验要求给出一个现实世界的应用问题要求学生在正确分析问题的基础上,完成以下任务:1、熟悉概念数据库的概念;2、熟悉运用 SQL操纵数据库;3、熟悉 SQL Server数据库管理系统环境,学会用该数据库管理系统创建数据库;4、理解范式的意义,能判断其能达到第几范式。
数据库实验4 索引、数据完整性与安全性

实验四索引、数据完整性与安全性一、实验目的(1) 掌握利用SQL Server Management Studio和SQL语言建立、删除索引的方法;(2) 掌握利用SQL Server Management Studio和SQL语言实现数据完整性的方法;(3) 掌握在SQL Server Management Studio中实现数据安全性管理的方法。
二、实验原理1.索引在关系型数据库中,索引是一种可以加快数据检索的数据库结构。
SQL Server系统中主要有两种类型的索引,即聚集索引、非聚集索引。
(1)聚集索引聚集索引定义了数据在表中存储的物理顺序。
一个表只能定义一个聚集索引。
(2)非聚集索引非聚集索引并不存储表数据本身。
相反,非聚集索引只存储指向表数据的指针,该指针作为索引键的一部分,因此,在一个表中同时可以存在多个非聚集索引。
(3)利用SQL命令建立索引简化语法格式:CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED]INDEX index_name ON {table|view}(column|ASC|DESC][,…n])其中:UNIQUE。
可选。
该选项用于通知SQL Server索引中列出的列的值是每行唯一的。
如果试图插入重复的行,则该选项会强制SQL Server返回一个错误信息。
CLUSTERED或NONCLUSTERED。
可选。
如果这两个选项都没有被明确列出,则默认将索引创建为NONCLUSTERED(非聚集索引)。
(4)通过SQL命令删除索引语法格式:DROP INDEX ‘table.index|view.index’[,…n]2.表主键和UNIQUE约束表主键通过表数据中一个列或者多个列组合的数据来唯一标识表中的每一行数据。
即表主键就是用来约束数据表中不能存在相同的两行数据。
在SQL Server系统中,定义表的主键可以在创建表的同时定义,也可以给已有的表添加主键。
实验 触发器设计

实验8 触发器设计一、实验目的:通过本实验了解数据库触发器的概念,掌握触发器完整性设计方法。
二、实验原理触发器(Trigger)是用户定义在关系表上的一类由事件驱动的特殊过程,由服务器自动激活可以进行更为复杂的检查和操作,具有更精细和更强大的数据控制能力。
创建触发器语法格式CREATE TRIGGER <触发器名>{BEFORE | AFTER} <触发事件> ON <表名>FOR EACH ROW[WHEN <触发条件>]<触发动作体>触发时间:Before, AFTER触发事件:insert,update, delete删除触发器:drop trigger <触发器名>显示创建触发器脚本>show create trigger <触发器名>>show triggers;三、实验内容及方法实验平台操作系统:win7,数据库管理平台:mysql5.6或者mysql8,实验用数据库:老师提供的数据库脚本TradeDBSQL.txt(一)触发器应用于数据库完整性设计实体完整性-PK参照完整性-FK用户定义完整性1.参照完整性级联约束在订单表Orders(主表)与订单细节表OrderDetails(副表)中实现更新、删除级联是通过下列方式实现的foreign key(OrderID) references Orders (OrderID)on delete cascade on update cascade用下面的更新、删除触发器实现上面的更新、删除级联1)更新级联触发器orderd_updDELIMITER %% /* 用%% 代替; 作为命令结束符*/Create trigger orderd_upd /* 创建触发器名为orderd_upd */after update on Orders /* 在表orders 上建立更新后触发器*/for each row /* 对于每一行*/begin/* 在表orders上更新后自动更新OrderDetails 表*/ update OrderDetails set OrderID = new.OrderID where OrderID=old.OrderID; end %%特别要注意new,old 的区别old 表示更新前的一行记录(for each row)new 表示更新为新的数据的一行记录。
实验五索引和数据完整性

实验五索引和数据完整性1、目的与要求(1)掌握索引的使用方法。
(2)掌握数据完整性的实现方法。
2、实验准备(1)了解索引的作用与分类。
(2)掌握索引的创建方法。
(3)理解数据完整性的概念及分类。
(4)掌握各种数据完整性的实现方法。
3、实验容(1)建立索引。
①使用CREATE INDEX语句创建索引。
A、对YGGL数据库的Employees表中的DepartmentID列建立索引。
在“查询分析器”窗口中输入如下程序并执行。
B、在Employees表的Name列和Address列上建立复合索引。
C、对Department表上的DepartmentName列建立唯一非聚集索引。
【思考与练习】A、索引创建后在对象资源管理器中查看表的索引。
上面分别创建了Employees表和Department表的索引,在对象资源管理器中的表中将相应的表打开,在“索引”中显示该表中建立的索引。
详细结果如上面截图中显示。
B、了解索引的分类情况。
按索引的组织方式能够将索引分为聚集索引和非聚集索引两种类型。
聚集索引将数据行的键值在表排序并存储对应的数据记录,使得数据表物理顺序与索引顺序一致。
非聚集索引完全独立于数据行的结构。
C、使用CREATE INDEX语句能够创建主键吗?D、在什么情况下能够看到建立索引的好处?数据库索引是为了增加查询速度而对表字段附加的一种标识。
数据库的索引并不是只有好处或者只有坏处的。
当我们的数据库足够大,恰当的建立索引就会大大的提高查询搜索的速度;在这里举个反例,像查询性别这种大量重复的字段时候,是否建立索引是没有多大区别的;还有当表数据不是很多的时候建立索引也是没有多大意义的,因为索引也是要占用资源的。
但是当我们数据库非常大时候,经常进行GROUP BY查询时候,若将GROUP BY字段上建立索引就会很大程度上面较少查询搜索所花费的时间。
②使用界面方式创建索引。
使用界面方式在Employees表的PhoneNumber列上创建索引。
数据库原理实验报告-实验三-数据完整性与安全性控制

《数据库原理》实验报告题目:实验三数据完整性与安全性控制学号班级日期2016.10.18一、实验容、步骤以及结果1.利用图形用户界面对实验一中所创建的Student库的S表中,增加以下的约束和索引。
(18分,每小题3分)(1)非空约束:为出生日期添加非空约束。
非空约束:取消表S中sbirth的勾。
可能需要重建表。
(2)主键约束:将学号(sno)设置为主键,主键名为pk_sno。
设主键:单击数据库Student-->单击表-->单击S-->右击sno-->选择‘修改’命令-->对话框中右击sno-->选择‘设置主键’-->修改主键名为‘pk_sno’-->保存(3)唯一约束:为(sname)添加唯一约束(唯一键),约束名为uk_sname。
唯一约束:单击数据库Student-->单击表-->单击S-->右击sname-->选择‘修改’命令→右击sname-->选择‘索引和键’命令-->打开‘索引和键’框图-->添加-->是否唯一改为‘是’-->名称改为‘us_sname’-->关闭。
(4)缺省约束:为性别(ssex)添加默认值,其值为“男”。
设默认约束:单击数据库Student→单击表→单击S→右击sno→选择‘修改’命令→单击cno-->在默认值栏输入‘男’→保存(5)CHECK约束:为SC表的成绩(grade)添加CHECK约束,约束名为ck_grade,其检查条件为:成绩应该在0-100之间。
(6)外键约束:为SC表添加外键约束,将sno,cno设置为外键,其引用表分别是S表和C表,外键名称分别为fk_sno,fk_cno。
2.在图形用户界面中删除以上小题中已经创建的各种约束,用SQL语言分别重新创建第1题中的(2)-(6)小题.(15分,每小题3分,提示:alter table add constraint)删除约束:单击数据库Student-->表-->单击S-->展开键、约束。
第二章数据库的完整性控制数据完整性(DataIntegrity)是指数据的精确

第二章数据库的完整性控制数据完整性(Data Integrity)是指数据的精确性(accuracy)和可靠性(reliability),它是防止数据库中存在不符合语义规定的数据和防止因错误的信息的输入造成无效操作或错误信息而提出的,保证在一个应用程序更新数据的过程中数据的语义正确性。
数据完整性主要分为三类:实体完整性(Entity Integrity),参照完整性(Referential Integrity)以及用户定义的完整性(User-defined Integrity),其中用户定义的完整性主要包括域完整性(Domain Integrity)和其他自定义完整性。
为维护数据库德完整性,数据库管理系统(DBMS)必须提供一种机制来检查数据库中的数据,看其是否满足语义规定的条件。
这些加在数据库数据上的语义约束条件称为数据库完整性规则,它们作为模式的一部分存入数据库中。
完整性控制是指对数据库进行更新操作,要遵守完整性规则,才能保证数据的语义正确性,防止数据库中存在不符合语义的数据。
目的是在合法用户访问数据库的过程中,保证数据的正确性和准确性。
完整性检查机制是指在DBMS中检查数据是否满足完整性条件的机制。
由DBMS在执行更新动作时,检查是否满足预定的完整性约束条件,来进行控制。
广义的完整性控制包括故障恢复、并发控制。
而一般所指的完整性控制是指基于数据库的完整性约束规则,如:实体完整性、引用完整性等。
SQL中两种主要的数据完整性控制机制是指完整性约束规则的定义和检查以及触发器(Trigger)机制。
完整性控制机制应具有三个功能:(1)定义功能,即提供定义完整性约束条件的机制;(2)检查功能,即检查用户发出的操作请求书否违反了约束条件;(3)如果发现用户操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。
完整性控制机制的工作原理基本上分为两类,一种是定义完整性时就立刻进行检查的,例如实体完整性的定义;另外一种是定义完整性之后进行检查的,例如参照完整性的定义。
数据库原理与设计(MySQL版)实验指导

数据库原理与设计(MySQL版)附录A MySQL实验指导实验一数据库和表的管理一、实验目的1. 了解MySQL数据库的逻辑结构和物理结构的特点。
2. 学会使用SQL语句创建、选择、删除数据库。
3. 学会使用SQL语句创建、修改、删除表。
4. 学会使用SQL语句对表进行插入、修改和删除数据操作。
5. 了解MySQL的常用数据类型。
二、实验内容1. 使用SQL语句创建数据库studentsdb。
2. 使用SQL语句选择studentsdb为当前使用数据库。
3. 使用SQL语句在studentsdb数据库创建数据表student_info、curriculum、grade,三个表的数据结构如表1-表3所示。
表1 student_info表结构表2 curriculum表结构列名数据类型允许NULL值主键课程编号char(4) 否是课程名称varchar(50) 是否学分int 是否表3 grade表结构列名数据类型允许NULL值主键学号char(4) 否是课程编号char(4) 否是分数int 是否4. 使用SQL语句INSERT向studentsdb数据库的student_info、curriculum、grade 表插入数据,各表数据如表4-表6所示。
表4 student_info表的数据表6 grade表的数据学号课程编号分数0001 0001 800001 0002 910001 0003 880001 0004 850001 0005 770002 0001 730002 0002 680002 0003 800002 0004 790002 0005 730003 0001 840003 0002 920003 0003 810003 0004 820003 0005 755.使用SQL语句ALTER TABLE修改curriculum表的“课程名称”列,使之为空。
6. 使用SQL语句ALTER TABLE修改grade表的“分数”列,使其数据类型为decimal(5,2)。
《数据库原理及应用》实验指导

理学院信科08—2班陈先国实验1 创建数据库与数据表下面写出实现如下操作的SQL语句:(1)创建供应系统“GYXT”数据库。
CREATE DATABASE GYXTON(NAME=GYXT_data,FILENAME=’D:\GYXT.mdf’,SIZE=10,MAXSIZE=50,FILEGROWTH=5)LOG ON(NAME=GYXT_Log,FILENAME=’D:\GXTYData.ldf’,SIZE=5,MAXSIZE=25,FILEGROWTH=5);(2) 建立供应商表S。
CREATE TABLE S( SNO char(5)not null unique,SNAME char(20)not null unique,CITY char(20));INSERT INTO S VALUES('S1','精益','天津');INSERT INTO S VALUES('S2','万胜','北京');INSERT INTO S VALUES('S3','东方','北京');INSERT INTO S VALUES('S4','丰泰隆','上海');INSERT INTO S VALUES('S5','康健','南京');(3) 建立零件表P。
CREATE TABLE P(PNO char(2)not null PRIMARY KEY(PNO),PNAME char(20),COLOR char(20),WEIGHT smallint);INSERT INTO P V ALUES('P1','螺母','红',12);INSERT INTO P V ALUES('P2','螺栓','绿',17);INSERT INTO P V ALUES('P3','螺丝刀','蓝',14); INSERT INTO P V ALUES('P4','螺丝刀','红',14); INSERT INTO P V ALUES('P5','凸轮','蓝',40); INSERT INTO P V ALUES('P6','齿轮','红',30);(4) 建立工程项目表J。
数据库系统实验

梁文娟目录实验1 用E-R图设计数据库 (3)实验2 熟悉SQL Server 2000环境 (4)实验3 创建数据库及表 (19)实验4 数据查询 (34)实验5 视图的定义和操作 (36)实验6 实现数据完整性 (38)实验7 实现数据库安全管理 (41)实验8 实现触发器 (45)实验9 数据库备份与恢复 (47)实验10 数据库设计综合应用 (48)实验1 用E-R图设计数据库实验目的与要求:1.掌握E-R模型的基本概念和图形的表示方法。
2.掌握将现实世界的事物转化成E-R图的基本技巧3.熟悉关系数据模型的基本概念。
4.掌握E-R图转化成关系表的基本方法实验环境:1.Windows 2000/XP2.SQL Server 2000实验内容:1.根据需求确定实体、属性和联系。
2.将实体、属性和联系转化为E-R图。
3.将E-R图转化为表。
实验步骤:1.设计能够表示学生、课程关系的数据库。
1)确定学生、课程实体的属性。
2)确定学生、课程实体的联系以及联系类型。
3)画出学生、课程关系的E-R图。
2.设计能够表示商品、顾客和商品生产厂家关系的数据库。
1)确定商品、顾客和商品生产厂家实体的属性。
2)确定商品、顾客和商品生产厂家的联系以及联系类型。
3)画出商品、顾客和商品生产厂家关系的E-R图。
讨论:E-R图和关系表之间的关系。
实验2 熟悉SQL Server 2000环境一、实验目的●掌握SQL Server 2000的安装●了解SQL Server 2000的组织结构和操作环境●熟悉SQL Server 2000的基本使用方法二、背景知识SQL Server 2000是Microsoft公司推出的高性能的客户端/服务器结构的关系数据库管理系统,它继承了SQL Server 7.0版本的高性能、可靠性、易用性和可扩充性的优点,同时又增加了一些新的特性,使其成为一种领先的数据库管理系统,可用于联机事务处理(OLTP)、数据仓库及电子商务等。
《数据库实验》实验报告

《数据库实验》实验报告《数据库实验》实验报告黄爱蓉编审湖北汽车⼯业学院电⼦信息科学系⼆〇〇七年⼀⽉实验⼀:建⽴数据库及基本表实验报告⼀、实验⽬的1、了解SQL Server数据库的逻辑结构和物理结构;2、了解SQL Server的基本数据类型;3、学会在企业管理器中创建数据库和表;4、使⽤SQL查询分析器⽤CREA TE、DROP、ALTER语句创建和删除数据库,创建、删除、更新基本表。
⼆、实验内容1、创建数据库和查看数据库属性。
2、创建表。
3、查看和修改表结构。
4、熟悉企业管理器和查询分析器⼯具的使⽤⽅法三、实验步骤1、在企业管理器中创建数据库和数据表。
(1) 使⽤企业管理器建⽴图书管理数据库,数据库名为BM,初始⼤⼩为10MB,最⼤为50MB,数据库⾃动增长,增长⽅式是按5%⽐例增长;⽇志⽂件初始为2MB,最⼤可增长到5MB,按1MB增长。
数据库的逻辑⽂件名和物理⽂件名均采⽤默认值。
详细步骤:(2) 在企业管理器中查看图书管理数据库的属性,并进⾏修改,使之符合要求。
(3) 通过企业管理器,在建好了图书管理数据库BM中建⽴图书(book)、读者(reader)和借阅(borrow)3个表,其结构为:图书(书号,类别,出版社,作者,书名,定价);读者(编号,姓名,单位,性别,电话);借阅(书号,读者编号,借阅⽇期)。
创建上述三个表的步骤:三个表各个字段的数据类型:2、在查询分析器中创建数据库和数据表(1) 创建数据库S-C 的sql语句:(2) 在数据库S-C下,创建基本表学⽣表student(sno,sname,ssex,sage,sdept)的sql语句:创建基本表课程表course(cno,cname, ccredit)的sql语句:创建基本表成绩表sc(sno,cno,grade)的sql语句:(3) 在窗⼝下分别键⼊DROP TABLE Student及DROP TABLE SC命令,运⾏后观察结果。
数据库完整性实验报告

数据库完整性实验报告引言数据库完整性是数据库管理系统中的一个重要概念,用于确保数据库中数据的准确性、有效性和一致性。
本实验旨在通过设计和实现一系列完整性约束,来验证数据库完整性的实际应用。
实验目标本实验的目标是设计并实现以下几种完整性约束:1.实体完整性约束2.参照完整性约束3.用户自定义完整性约束实验环境本实验使用了以下工具和环境:•数据库管理系统:MySQL•编程语言:Python•集成开发环境:Jupyter Notebook实验步骤步骤一:数据库设计首先,我们需要设计一个符合实验需求的数据库。
我们选择一个简单的学生管理系统作为示例,包含以下两个实体:1.学生(Student):包含学生的学号、姓名和年龄。
2.课程(Course):包含课程的课程号、课程名和学分。
步骤二:实体完整性约束实体完整性约束用于保证每个实体在数据库中都有唯一的标识。
在本实验中,我们将为学生实体添加一个主键约束,保证每个学生的学号是唯一的。
CREATE TABLE Student (id INT PRIMARY KEY,name VARCHAR(50),age INT);步骤三:参照完整性约束参照完整性约束用于保证关系数据库中的引用一致性。
在本实验中,我们将为课程实体添加一个外键约束,引用学生实体的主键。
CREATE TABLE Course (id INT PRIMARY KEY,name VARCHAR(50),credits INT,student_id INT,FOREIGN KEY (student_id) REFERENCES Student(id));步骤四:用户自定义完整性约束用户自定义完整性约束是根据具体业务需求自定义的约束条件。
在本实验中,我们将为课程实体添加一个自定义约束,保证学分必须大于等于0。
ALTER TABLE CourseADD CONSTRAINT chk_credits CHECK (credits >=0);实验结果通过以上步骤,我们已经成功设计并实现了实体完整性约束、参照完整性约束和用户自定义完整性约束。
数据库实验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语句和测试结果。
数据库的完整性和安全性实验报告

信息工程学院实验报告课程名称:《数据库原理》实验项目名称:数据库的完整性和安全性一、实 验 目 的:(1)掌握数据库约束的概念;(2)熟悉SQL SERVER 的完整性约束技术。
(3)了解SQL SERVER 的违反完整性处理措施。
(4)了解登录账户的管理理念与具体方法。
(5)了解数据库用户的管理的要则。
(6)了解用户权限管理的内涵与方法。
二、实 验 设 备 与 器 件 Win7 +Sql server 2008 三、实 验 内 容 与 步 骤(一)测试完整性运行附录中的SQL 语句,理解SQL 语句中包含的完整性定义。
然后执行下面的SQL 语句,看是否能正常运行,若无法执行,请说明原因。
1.对dept 表进行数据增删改,并检查完整性规则 Dept 已存在的完整性规则如下: dno CHAR(2)PRIMARY KEYdnameV ARCHAR(20) NOT NULL,UNIQUE(1)增加数据INSERT INTO dept V ALUES('D1','计科系');----正常插入INSERT INTO dept V ALUES('D2','电信系');----正常插入INSERT INTO dept V ALUES(NULL,'机械系'); ----违反dno 主键(NOT NULL )规则INSERT INTO dept V ALUES('D2','机械系'); ----违反dno 主键(UNIQUE )INSERT INTO dept V ALUES('D3',NULL); ----违反dname 的NOT NULL 规则INSERT INTO dept V ALUES('D3','计科系'); ----违反dname 的UNIQUE 规则INSERT INTO dept V ALUES('D3','机械系');----正常插入(2)删除数据DELETE FROM dept WHERE dno='D3';----正常删除(3)修改数据UPDA TE dept SET dname='计算机科学系' WHERE dno='D1';----正常修改UPDA TE dept SET dname='电信系' WHERE dno='D1'; ----违反dname的UNIQUE规则UPDA TE dept SET dname=NULL WHERE dno='D1'; 违反dname的UNIQUE规则2.对student表进行数据增删改,并检查完整性规则Student已存在完整性规则如下:sno CHAR(2) PRIMARY KEYsname V ARCHAR(20) NOT NULL,ssex CHAR(2) NOT NULL, CHECK(ssex in('男','女'))sage INT NOT NULL,dno CHAR(2) NOT NULL, FOREIGN KEY REFERENCES dept(dno)ON DELETE CASCADE ON UPDATE CASCADE(1)增加数据INSERT INTO student V ALUES('S1','张刚','男',20,'D1');----正常插入INSERT INTO student V ALUES('S2','李梅','女',21,'D2');----正常插入INSERT INTO student V ALUES('S2','吴敏','男',20,'D1'); ----正常插入INSERT INTO student V ALUES(NULL,'吴敏','男',20,'D1'); ----违反sno 的主键(NOT NULL)规则INSERT INTO student V ALUES('S3','吴敏','男',NULL,'D1'); 违反sage 的主键(NOT NULL)规则INSERT INTO student V ALUES('S3','吴敏','M',20,'D1'); 违反ssex 的CHECK规则INSERT INTO student V ALUES('S3','吴敏','男',20,'D3'); ----正常插入INSERT INTO student V ALUES('S3','吴敏','男',20,'D1');----正常插入(2)删除数据DELETE FROM student WHERE sno='S3'; ----正常删除(3)修改数据UPDA TE student SET sname='赵强',dno='D2' WHERE sno='S1'-----正常修改UPDA TE student SET ssex='F' WHERE sno='S1'; -----违反ssex的CHECK 规则UPDA TE student SET sno='S2' WHERE sno='S1'; -----违反sno的主键(UNIQUE)规则UPDA TE student SET dno='D3' WHERE sno='S1'; 违反dno 的外键规则UPDA TE dept SET dno='D3' WHERE dno='D1';----检查dno的外键ON UPDATE规则,观察运行后效果DELETE FROM dept WHERE dno='D2';----检查dno的外键ON DELETE规则,观察运行后效果(二)使用规则实现数据完整性(1)在查询分析器中,利用命令(CREATE RULE),创建一个关于年龄(sage)约束的规则,将“sage”列的值约束在0~200之间;然后将所创建的规则绑定到“sage”列(提示:用命令Sp_bindrule)。
数据操作和完整性约束的作用

数据操作和完整性约束的作⽤计算机科学与技术系实验报告专业名称计算机科学与技术课程名称数据库系统及应⽤项⽬名称数据操作和完整性约束的作⽤班级学号姓名实验⽇期 2015/11/3⼀、实验⽬的与要求:(⼀)实验⽬的熟练掌握SQL的INSERT、UPDATE和DELETE命令,深刻理解数据完整性约束的作⽤以及约束机制。
(⼆)实验要求(1)读者⾃⾏设计各个表的记录,其中院系表⾄少10条记录、学⽣表⾄少30条记录、课程表⾄少10条记录、教师表⾄少10条记录、选课表⾄少50条记录。
(2)使⽤INSERT命令完成记录的插⼊操作,要求分别设计若⼲违反实体完整性、参照完整性和⽤户⾃定义完整性和⽤户定义完整性约束的插⼊操作,并分析原因。
(3)设计若⼲删除操作,体会执⾏删除时检查参照完整性规则的效果(要求涉及拒绝删除、空值删除和级联删除等不同的处理⽅式)。
(4)设计若⼲更新操作,体会执⾏更新操作时检查实体完整性规则、参照完整性规则和⽤户⾃定义完整性规则的效果。
(5)在实验报告中要给出具体的记录和设计的操作,并针对各种数据完整性检查给出具体的分析和讨论。
⼆、实验⽅法:(代码)create database 学⽣管理系统use 学⽣管理系统create table yuanxi(编号 smallint primary key,名称 char(20) unique not null,负责⼈ char(10),办公地点 char(20))--drop table yuanxicreate table xuesheng(学号 char(8) primary key,院系 smallint foreign key references yuanxi(编号),姓名 char(10) not null,性别 char(2) check (性别 = '男' or 性别 = '⼥'),⽣源 char(6),状态 char(4) check (状态 = '正常' or 状态 = '留级' or 状态 = '休学' or 状态 = '退学') )create table jiaoshi(教师编号 char(8) primary key,院系 smallint foreign key references yuanxi(编号),姓名 char(10) not null,性别 char(2) check (性别 = '男' or 性别 = '⼥'),职称 char(6) check (职称 = '教授' or 职称 = '副教授' or 职称 = '讲师' or 职称 = '助教'), 专业 char(10))create table kecheng(课程编号 char(8) primary key,课程名称 char(20) not null,负责讲师 char(8) foreign key references jiaoshi(教师编号),学时 smallint not null,课程性质 char(10) check(课程性质 = '公共基础' or 课程性质 = '专业基础' or 课程性质 = '专业选修' or 课程性质 = '任意选修') )create table xuanke(学号 char(8)foreign key references xuesheng(学号),课程编号 char(8) foreign key references kecheng(课程编号),成绩 smallint check(成绩 >= 0 and 成绩 <=100) default null ,primary key(学号,课程编号))--在院系表中插⼊10条记录insert into 院系 values(1,'计科系','马主任','36栋')insert into 院系 values(2,'电⽓系','赵主任','35栋')insert into 院系 values(3,'机械系','钱主任','34栋')insert into 院系 values(4,'园林系','孙主任','33栋')insert into 院系 values(5,'艺术系','李主任','32栋')insert into 院系 values(6,'⼈⽂系','周主任','31栋')insert into 院系 values(7,'物理系','吴主任','30栋')insert into 院系 values(8,'外语系','郑主任','2栋')insert into 院系 values(9,'体育系','王主任','4栋')insert into 院系 values(10,'国贸系','汝主任','8栋')--在学⽣表中插⼊30条记录insert into 学⽣ values('1',1,'王艳','⼥','⾩阳市','正常',NULL) insert into 学⽣ values('2',1,'李婷','⼥','南京市','正常',NULL) insert into 学⽣ values('3',1,'张三','男','⾩阳市','正常',NULL) insert into 学⽣ values('4',2,'赵⽟','男','⾩阳市','正常',NULL)insert into 学⽣ values('5',2,'李雷','男','上海市','正常',NULL) insert into 学⽣ values('6',2,'张琪','⼥','六安市','正常',NULL) insert into 学⽣ values('7',3,'夏⾬','男','上海市','正常',NULL) insert into 学⽣ values('8',3,'李信','男','⾩阳市','正常',NULL) insert into 学⽣ values('9',4,'黎姿','⼥','南京市','正常',NULL) insert into 学⽣ values('10',4,'汝闻闻','⼥','六安市','正常',NULL) insert into 学⽣values('11',4,'翟凤亚','男','六安市','正常',NULL) insert into 学⽣ values('12',5,'郑微','⼥','亳州市','留级',NULL) insert into 学⽣values('13',5,'赵⽴英','⼥','亳州市','留级',NULL) insert into 学⽣ values('14',5,'李晨','男','亳州市','正常',NULL) insert into 学⽣values('15',6,'郭靖','⼥','宿州市','退学',NULL) insert into 学⽣ values('16',6,'陈欣然','⼥','宿州市','正常',NULL) insert into 学⽣values('17',6,'李然','男','郑州市','退学',NULL) insert into 学⽣ values('18',7,'王凯','男','宿州市','正常',NULL) insert into 学⽣values('19',7,'宫正','男','郑州市','退学',NULL) insert into 学⽣ values('20',7,'翟丹丹','⼥','北京市','正常',NULL) insert into 学⽣values('21',8,'陈瑞','⼥','郑州市','正常',NULL) insert into 学⽣ values('22',8,'郝壮','男','北京市','正常',NULL) insert into 学⽣values('23',8,'李毅','男','北京市','正常',NULL) insert into 学⽣ values('24',9,'吴建','男','界⾸市','休学',NULL) insert into 学⽣values('25',9,'习武','男','界⾸市','正常',NULL) insert into 学⽣ values('26',9,'张翠翠','⼥','界⾸市','休学',NULL) insert into 学⽣values('27',10,'郑⾬薇','⼥','芜湖市','正常',NULL)insert into 学⽣ values('28',10,'谌敏','⼥','芜湖市','退学',NULL) insert into 学⽣ values('29',10,'徐松','男','合肥市','休学',NULL) insert into 学⽣ values('30',3,'朱茵','⼥','合肥市','正常',NULL)--在课教师中插⼊10条记录insert into 教师 values('1',1,'赵燕','⼥','教授','汽车与智能',3200.00)insert into 教师 values('2',2,'李敏','⼥','教授','电⼦应⽤',3400) insert into 教师 values('3',3,'王艳艳','⼥','讲师','机械应⽤',2900) insert into 教师 values('4',4,'谭维维','⼥','副教授','园林园艺',3600)insert into 教师 values('5',5,'李佳薇','⼥','副教授','素描',2500) insert into 教师 values('6',6,'杨会伟','男','讲师','⼈⽂',4000) insert into 教师 values('7',7,'王丽玲','⼥','副教授','万有引⼒',3800)insert into 教师 values('8',8,'陶维成','男','教授','英语',3250) insert into 教师 values('9',9,'万振宇','男','助教','乒乓球',2600) insert into 教师 values('10',10,'⽅梁⾬','⼥','助教','商代',4500) --在课程表中插⼊10条记录insert into 课程 values('1','汽车智能与应⽤','1',16,'公共基础') insert into 课程 values('2','模拟电路','2',16,'公共基础')insert into 课程 values('3','器械基础','3',8,'专业基础')insert into 课程 values('4','嫁接技术','4',16,'专业基础')insert into 课程 values('5','素描','5',8,'专业基础')insert into 课程 values('6','⼤学语⽂','6',16,'专业选修') insert into 课程 values('7','万有引⼒','7',8,'任意选修') insert into 课程values('8','⼝语','8',16,'专业选修') insert into 课程 values('9','乒乓球','9',16,'任意选修') insert into 课程 values('10','商代渠道','10',8,'专业基础') --在选课表中插⼊10条记录insert into 选课 values('1','1',100)insert into 选课 values('1','2',99)insert into 选课 values('1','3',95)insert into 选课 values('1','4',89)insert into 选课 values('1','5',89)insert into 选课 values('2','6',78)insert into 选课 values('2','7',78)insert into 选课 values('2','8',78)insert into 选课 values('2','9',78)insert into 选课 values('2','10',78)insert into 选课 values('3','1',98)insert into 选课 values('3','2',98)insert into 选课 values('3','3',98)insert into 选课 values('3','4',98)insert into 选课 values('3','5',98)insert into 选课 values('4','1',90)insert into 选课 values('4','2',90) insert into 选课 values('4','3',90) insert into 选课 values('4','5',90) insert into 选课values('4','4',90) insert into 选课 values('5','5',69) insert into 选课 values('5','6',69) insert into 选课 values('5','7',69) insert into 选课 values('5','8',69) insert into 选课 values('5','9',69) insert into 选课 values('6','1',75) insert into 选课 values('6','2',75) insert into 选课 values('6','3',75) insert into 选课 values('6','4',75) insert into 选课 values('6','5',75) insert into 选课 values('7','7',65) insert into 选课 values('7','8',65) insert into 选课 values('8','9',65) insert into 选课 values('9','7',65) insert into 选课values('10','7',65) insert into 选课 values('8','8',65) insert into 选课 values('9','8',65) insert into 选课 values('10','8',65) --删除操作DELETE 选课 WHERE 学号='1'DELETE 学⽣ WHERE 状态 = '退学'--更新操作UPDATE 选课 SET 成绩=89 WHERE 课程编号 ='6'UPDATE 教师 SET 职称 = '教授' WHERE 职称='助教'三、实验分析与⼩结(⼀)实验分析1.使⽤INSERT命令完成记录的插⼊操作,要求分别设计若⼲违反实体完整性、参照完整性和⽤户⾃定义完整性和⽤户定义完整性约束的插⼊操作1>违反实体完整性规则即主关键字为空或重复。
新SQL-SERVER实验练习

新SQL-SERVER实验练习SQL-Server实验陈军华上海师范⼤学计算机系2007.9⽬录第⼀部分企业管理器的使⽤ (3)试验⼀注册服务器 (3)试验⼆创建数据库 (3)试验三创建表 (4)实验四数据输⼊ (5)实验五登录到数据库服务器 (6)第⼆部分SQL语⾔ (7)试验⼀数据库创建 (7)试验⼆创建表 (7)试验三创建数据完整性 (8)试验四数据完整性试验 (9)试验五索引 (12)试验六更新数据 (13)试验七 Sql 查询语句 (14)试验⼋视图 (15)试验九安全性控制实验 (15)试验⼗存储过程 (16)试验⼗⼀触发器 (17)试验⼗⼆恢复技术 (19)试验⼗三事务 (20)试验⼗四锁 (21)第⼀部分企业管理器的使⽤试验⼀注册服务器⽬的:1掌握利⽤企业管理器管理数据库服务器。
⼀启动数据库服务器打开服务管理器,“开始/继续“键为绿⾊。
⼆注册数据库服务器1 打开“企业管理器”2 在企业管理器中的左边,选中“Sql Server 组”。
3 如已经有⼀台服务器,则那台服务器就是你的数据库服务器。
选择“删除 sql server 注册”,删除该服务器。
4 然后,在“sql server组”上⽤Mouse右键弹出菜单,选择“新建注册”,5 输⼊你的计算机的名字。
使⽤ sql server ⾝份验证,⽤户名:sa , 密码:空。
注意:如该服务器的验证模式为:仅 windows ,则需要更改为:混合模式。
三更改验证模式1 使⽤window ⾝份验证模式注册服务器。
2 然后选中该台服务器,按右键,选择“属性”,再选“安全”3 设置⾝份验证模式为混合模式:Sql server和windows试验⼆创建数据库⽬的:1掌握利⽤企业管理器创建、维护数据库。
了解sql server的数据库的存储结构。
要求:1 建⽴数据库2 修改数据库3 删除数据库⼀建⽴school 数据库1 使⽤SQL-Server 的企业管理器创建数据库 school 。
sqlserver实验(答案)

实验1 Sql Server数据库的安装1.实验目的(1)通过安装来了解,感受SQL Server2005(2)了解SQL Server2005所支持的多种形式的管理架构,并确定此次安装的管理架构形式(3)熟悉安装SQL Server2005的各种版本所需的软、硬件要求,确定要安装的版本(4)熟悉SQL Server2005支持的身份验证种类(5)掌握SQL Server服务的几种启动方法(6)正确配置客户端和服务器端网络连接的方法(7)掌握SQL Server Management Studio的常规使用2.实验准备(1)了解SQL Server2005的各种版本及所需的软、硬件要求(2)了解SQL Server2005支持的验证种类(3)了解SQL Server2005各组件的主要功能(4)掌握在查询分析器中执行SQL语句的方法3.实验内容(1)安装SQL Server2005,并在安装时将登录身份验证模式设置为“SQL Server”和“Windows”验证,其他选择默认,并记住Sa的密码。
(2)利用SQL Server Configuration Manager配置SQL Server2005服务器(3)利用SQL Server2005创建的默认帐户,通过注册服务器向导首次注册服务器(4)试着创建一些由SQL Server2005验证的用户,删除第一次注册的服务器后用新建的帐户来注册服务器。
(5)为某一个数据库服务器指定服务器别名,后通过服务器别名注册该数据库服务器(6)熟悉和学习使用SQL Server2005的SQL Server Management Studio实验2 创建数据库和表1.实验目的(1)了解SQL Server数据库的逻辑结构和物理结构(2)了解表的结构和特点(3)了解SQL Server的基本数据类型(4)掌握在SQL Server Management Studio中创建数据库和表的方法(5)掌握使用T-SQL语句创建数据库和表的方法2.实验准备(1)要明确能够创建数据库的用户必须是系统管理员或被授权使用Create database的用户(2)创建数据库必须要确定数据库名、所有者、数据库大小(最初大小、最大大小、是否允许增长和增长的方式)和存储数据的文件(3)确定数据库包含哪些表及包含的表结构,还要了解掌握在SQL Server Management 的常用数据类型,以创建数据库的表(4)了解常用的创建数据库和表的方法3.实验内容(1)数据库分析①创建用于学生选课管理的数据库,数据库名为“student”,初始大小20M,最大50M,数据库自动增长,增长方式是按15%;日志文件大小5M,最大25M,按5M增长。
实验8植物组织总DNA的提取

04 结果与数据分析
DNA的检测与鉴定
检测方法
使用紫外分光光度计检测DNA的浓度和纯度,通过观察DNA在260nm和280nm 处的吸光度值,判断DNA的含量和蛋白质污染程度。
鉴定结果
提取得到的DNA样品在紫外分光光度计下显示出明显的吸收峰,说明成功提取出 了DNA。
DNA质量的评估
完整性评估
02
植物基因组DNA相对较大,由多个重复序列和基因组成。
03
通过破碎植物细胞,释放出细胞核中的DNA,再经过一系列的沉淀、洗涤和纯化 步骤,可以获得较纯的植物基因组DNA。
实验步骤概览
1. 准备实验材料和试剂。 2. 选取新鲜的植物组织,清洗并切成小块。 3. 用液氮或预冷的研钵将植物组织研磨成粉末。
干燥
将洗涤干净的DNA沉淀物 进行干燥处理,以便于后 续的溶解与储存。
DNA的溶解与储存
选择合适的溶解方法
根据实验要求选择适当的溶解方法,如水浴溶解、加热溶 解等。
控制溶解条件
确保溶解过程中使用的温度、时间和溶液浓度等条件适宜, 以避免对DNA造成损伤。
储存与保存
将溶解后的DNA溶液进行分装,并选择适当的储存容器和 条件进行保存,确保DNA的稳定性和长期保存。
实验步骤概览
4. 加入缓冲液和酶混合物,破碎细胞 并释放出细胞核。
6. 将上清液转移至新的离心管中,加 入等体积的酚-氯仿混合液,充分混匀。
5. 通过离心分离出细胞核和细胞碎片。
实验步骤概览
7. 通过离心分离出上层水相和 下层有机相。
8. 将上层水相转移至新的离心 管中,加入等体积的异丙醇,
沉淀DNA。
3
释放细胞核
破碎细胞组织后,通过洗涤、离心等方法将细胞 核内的DNA释放出来。
实验8实验作业答案

启动VFP,在命令窗口中输入并执行命令:set defa to d:\vfp\实验8\作业。
单击菜单项“文件\打开”,选择项目文件文件jxgl,单击“确定”打开该项目。
(1)①选择数据库jxsj中的“表”,单击“新建”按钮,新建ab表。
②打开ab表的表设计器,选择qk字段,设置默认值:.F.③打开ab表的表设计器,选择qk字段,设置显示类:checkbox④单击“索引”选项卡,输入索引名:abcd,索引类型:普通索引,索引表达式:bscj+sjcj(2)①打开js表的表设计器,选择gzrq字段,设置标题:工作日期②选择gzrq字段,设置字段有效性规则:year(gzrq)<=2011 and year(gzrq)>=1950,设置字段有效性信息:”工作日期的年份必须小于等于2011年且大于等于1950”③单击“表”选项卡,设置记录有效性规则:year(gzrq)-year(csrq)>=18④单击“字段”选项卡,选择zcdh字段,设置输入掩码:99⑤单击“插入”按钮,输入字段名:zwjs,数据类型选择“备注型”⑥单击“索引”选项卡,索引名:xdhcsrq,索引类型:普通索引,索引表达式:xdh+dtoc(csrq,1)(3)在项目管理器中选中js,右击选择“编辑说明”。
(4)选中jxsj数据库中的“表”,单击“添加”按钮,选择gzb进行添加。
(5)在项目管理器窗口中右击,选择“项目信息”进行设置。
(6)在项目管理器窗口中,单击“其他”选项卡,选中文本文件,单击“添加”按钮,选择xs.txt进行添加,添加完后选中xs.txt,右击选择“排除”。
(7)浏览kc表,显示\追加方式,输入记录。
(8)打开js表的表设计器,单击“表”选项卡,设置插入触发器:len(alltrim(gh))=5(9)打开cj表的表设计器,单击“表”选项卡,设置更新触发器:kcdh=”01” or kcdh=”06”(10)打开kc表的表设计器,单击“表”选项卡,设置插删除触发器:.F.(11)在命令窗口中输入并执行命令:update gzc set jbgz=iif(zc=”教授”,jbgz+500,iif(zc=”副教授”,jbgz+300,jbgz+200))(12)在命令窗口中输入并执行命令:update gzc set yfgz=jbgz+gwjt+zhjt+zfbt+qt(13)在命令窗口中输入并执行命令:update js set gh=left(gh,1)+xdh+substr(gh,4,2)(14)在项目管理器窗口中,选择cj,单击右侧“修改”按钮,打开表设计器添加字段,在命令窗口中输入并执行命令:update cj set zpcj=cj*0.9 +10(15)在命令窗口中输入并执行命令:delete from kc where xf>=5(16)在命令窗口中输入并执行命令:close tables alluse gzccopy to jsgzb for zc=”教授”(17) 在项目管理器中选择数据库jxsj,单击“修改”按钮,打开数据库设计器,将xs表中的主索引xh拖放到cj表的普通索引xh上,单击菜单项“数据库\清理数据库”,单击菜单项“数据库\编辑参照完整性”,更新规则设置为限制,删除规则设置为级联,插入规则设置为限制。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验8 数据完整性实验(4学时)
1.实验目的
本实验的目的是通过实验使学生加深对数据完整性的理解,学会创建和使用触发器。
2.实验内容
本实验的内容为:
使用SQL设计触发器,通过SQL Server企业管理器定义它们。
1.具体完成下面例题:利用触发器来保证学生选课库中选课表的参照完整性,以维护其外码与参照表中的主码一致。
CREATE TRIGGER SC_inserted ON 选课
FOR INSERT
AS IF(SELECT COUNT(*)
FROM 学生,inserted,课程
WHERE 学生.学号= inserted.学号AND inserted.课程号= 课程.课程号)=0 ROLLBACK TRANSACTION
代码:
截图:
2.把课件第5章中卷烟数据库及其触发器的例子在Sql server中完成。
建立卷烟库存表代码:
建立卷烟库存表截图:
建立卷烟销售表代码:
建立卷烟销售表截图:
创建触发器[T_INSERT_卷烟库存表]代码:
创建触发器[T_INSERT_卷烟库存表]截图:针对[卷烟库存表],插入测试数据:
创建触发器[T_INSERT_卷烟销售表]代码:
输入数据
3.创建一个规则,使成绩大于等于零。
并将其绑定到成绩列上。
规则代码:
规则截图:
绑定代码:
绑定截图:
4.创建一个默认值,并绑定到学分列上,使学分默认为4个学分。
默认值代码:
默认值截图:
绑定代码:
绑定截图:
5.建立一个update触发器,当更新sc表中的score列时,触发器检查成绩是否提高10%。
如果成绩超过了10%,将以ROLLBACK语句复原触发器和调用触发器语句,并打印“成绩升幅太大,更新失败!”,否则,打印“成绩更新成功!”。
代码:
截图:
检验:
3.实验步骤
1、在企业管理器中创建触发器
1)在企业管理器中,由服务器开始逐步扩展到触发器所属表的数据库(本例为学生选课数据库),打开表文件夹,在表窗口中用鼠标右击触发器所属的表(本例为选课表)。
2)在弹出菜单上选择“所有任务”“管理触发器”项,则弹出如图所示的触发器属性对话框。
图触发器属性对话框
如果要新建触发器,在文本[T]的文本框中输入创建触发器的SQL语句(见实验内容),单击“检查语法”按钮进行语法的检查,检查无误后,单击确定按钮。
3)如果要修改触发器,则在名字弹出项中选择要修改的触发器名(本例为SC_inserted),然后在文本[T]的文本框中对已有的内容进行修改,检查无误后单击“确定”按钮。
4)如果要删除触发器,则在名字弹出项中选择要删除的触发器名(本例为SC_inserted),并检查文本[T]的文本框中的内容,看是否选得正确,最后单击“删除”按钮。
2、验证触发器
1)在企业管理器中,由服务器开始逐步扩展到触发器所属表的数据库(本例为学生选课数据库)。
此时,可在选课表中输入一条记录(学号:’96001’,课程号:’C8’,成绩:88)。
显然,这条记录是不符合参照完整性的。
通过企业管理器输入时,会出现错误提示,违反了数据库的约束(如果约束C5和C6同时存在的话)。
2)如果约束C5和C6存在,则删除之(参见实验一)
3)打开SQL查询分析器,输入语句“INSERT INTO 选课V ALUES(‘96001’,‘C8’,88)”,查看执行结果。
删除触发器(本例为SC_inserted),重复步骤3。
4.收获体会:。