数据库实验 完整性 索引 触发器

合集下载

zss

zss

第1单元数据库和表的创建一、实训目的1、了解数据库的逻辑结构、物理结构及其特点2、学会利用企业管理器对数据库进行操作3、学会利用Transact-SQL语句对数据库进行操作二、实训任务1、建立数据库,删除该数据库2、建立新数据库3、更改数据库属性4、设计表结构5、建立表,删除表6、更改表7、向表中插入数据,删除表中的数据,更改表中的数据三、实训要求1、数据库、表的创建、更改和删除要求用SQL命令和企业管理器两种方式完成2、要求数据库中至少包含两个文件组,主文件组中至少包含两个数据文件,明确规定数据库存放的物理路径,文件大小,增长方式等属性。

3、建立四张以上的用户表,字段类型要求合理、合法,为空性要求要合理。

4、每张表给出至少三十条以上记录作为后续实训数据,实验数据要求合理5、表结构要用表格的形式给出,并添加到实训内容中6、将涉及到的SQL命令拷贝到“实训内容及步骤”中7、将实训过程、结果通过截屏的方式添加到“实训内容及步骤”中,并用适当的文字进行说明四、实训内容及步骤1、建立数据库,删除该数据库用企业管理器创建数据库用企业管理器删除数据库用命令方式创建数据库create database zz用命令方式删除数据库drop database zzgo2、建立新数据库create database sjk3、更改数据库属性右键单击所要更改的数据库,选择属性。

4、设计表结构设计学生信息管理系统的表结构,包括项目号,列名,数据类型,是否可空,5、建立表,删除表用企业管理器建立表。

用企业管理器删除表。

在查询分析器中用命令方式建立表。

use ssgocreate table xsb(学号 char(6) not null primary key, 姓名 char(8) not null,性别 bit null default 1,出生时间 datetime null,专业 char(12),总学分 int null,备注 varchar(500) null)go在查询分析器中用命令方式删除表。

实验5 索引和数据完整性_MySQL数据库教程_[共3页]

实验5 索引和数据完整性_MySQL数据库教程_[共3页]

177
实验5
索引和数据完整性
目的与要求
(1)掌握索引的使用方法;
(2)掌握数据完整性的实现方法。

实验准备
(1)了解索引的作用与分类;
(2)掌握索引的创建方法;
(3)理解数据完整性的概念及分类;
(4)掌握各种数据完整性的实现方法。

实验内容
1.创建索引
(1)使用CREATE INDEX 语句创建索引
① 对YGGL 数据库的Employees 表中的DepartmentID 列建立索引。

在MySQL 客户端输入如下命令并执行:
create index depart_ind
on Employees(DepartmentID);
② 在Employees 表的Name 列和Address 列上建立复合索引。

create index Ad_ind
on Employees(Name, Address);
③ 对Departments 表上的DepartmentName 列建立唯一性索引。

create unique index Dep_ind
on Departments(DepartmentName);
【思考与练习】
a .索引创建完后可以使用SHOW INDEX FROM tbl_name 语句查看表中的索引。

b .对Employees 表的Address 列进行前缀索引。

c .使用CREATE INDEX 语句能创建主键吗?
(2)使用ALTER TABLE 语句向表中添加索引
① 向Employees 表中的出生日期列添加一个唯一性索引,姓名列和性别列上添加一个复合索引。

使用如下SQL 语句:。

数据库中数据完整性的维护与检验

数据库中数据完整性的维护与检验

数据库中数据完整性的维护与检验数据库是用来存储和组织大量数据的集合,它在现代信息化时代扮演着至关重要的角色。

而数据完整性是数据库管理中非常关键的一个方面,它指的是数据库中数据的准确性、一致性和有效性。

本文将探讨数据库中数据完整性的维护与检验方法,以确保数据库中数据的高度完整性。

在数据库中,数据完整性的维护是确保数据不受破坏、不受无效数据影响的重要手段。

首先,数据完整性需要确保数据库中的数据被正确地添加、更新和删除。

数据库管理系统(DBMS)通过约束来确保数据的完整性,其中包括以下几个主要的数据完整性规则:1. 实体完整性:每个表都应该有一个主键,并且此主键值不能为空。

这样可以保证在表中的每行数据都能够被唯一地标识和访问。

2. 参照完整性:参照完整性是指确保数据库中的外键与相关联的主键保持一致。

当涉及到多个表的关联查询时,参照完整性能够确保数据的一致性和准确性。

3. 域完整性:域完整性约束确保每个属性或列的取值满足特定的约束条件,例如数据类型、长度、范围或枚举值等。

这样可以防止非法或无效的数据进入数据库。

4. 用户定义的完整性:用户可以根据自己的需求定义特定的完整性规则。

通过定义触发器(trigger)、存储过程(stored procedure)或自定义函数(user-defined function),可以实现个性化的完整性约束。

除了数据完整性的维护,还需要对数据库的完整性进行检验以确保数据库中的数据的正确性。

数据库管理员可以采用以下方法来进行数据完整性的检验和校验:1. 合理的数据录入验证:在数据库中,为了提高数据的完整性,应该通过设置输入验证来限制用户输入的数据。

可以使用正则表达式、数据格式验证或输入的范围限制等方式,确保输入数据的合理性和准确性。

2. 定期进行数据备份:数据库管理员应制定定期的数据备份策略,并保障备份数据的安全性。

备份数据是数据完整性检验和恢复的一种重要手段,可确保在发生数据丢失时能够迅速恢复和修复数据库。

《数据库概论》实验指导书(2009级)

《数据库概论》实验指导书(2009级)

《数据库系统概论》实验报告书专业班级学号姓名指导教师安徽工业大学计算机学院实验一:数据定义/数据操纵语言[ 实验日期 ] 年月日[ 实验目的 ]熟悉SQL SERVER上机环境;熟练掌握和使用DDL语言,建立、修改和删除数据库表、主键、外键约束关系和索引;熟练掌握和使用DML语言,对数据进行增加、修改和删除操作。

[ 实验内容 ]0.先建立数据库:STUDENT用两种方式建立:在查询分析器中以DDL语言方式建立.步骤为:先在指定的地方建立放置数据库文件的文件夹(如学生数据库),然后将建立的数据库文件放到指定的文件夹中.1.SQL数据定义语句:例1-1: (建立数据库表) 建立教学数据库的四个数据库表,其中Student表中不包含SSEX(C,2) 字段,Sname 字段为Sname(C,8)且可为空。

例1-2: (修改数据库表) 在Student表中增加SSEX(C,2) 字段。

例1-3: (修改数据库表) 将Student表中把Sname 字段修改为Sname(C,10)且为非空。

例1-4: (建立数据库表) 建立数据库表S1(SNO,SNAME,SD,SA),其字段类型定义与Student表中的相应字段(SNO,SNAME,SDEPT,SAGE)的数据类型定义相同。

2. SQL数据操纵语句:例2-1: (插入数据) 按前面各表中的数据分别插入到教学数据库的四个数据库表中。

例2-2:(多行插入) 将表Student表中计算机系(‘CS’)的学生数据插入到表S1中。

例2-3:(利用查询来实现表的定义与数据插入) 求每一个学生的平均成绩,把结果存入数据库表Student_Gr中。

例2-4: (修改数据) 将S1表中所有学生的年龄加2。

例2-5: (修改数据) 将Course表中‘程序设计’课时数修改成与‘数据结构’的课时数相同。

例2-6: (插入数据) 向Score表中插入数据(‘98001’, ‘001’, 95),根据返回信息解释其原因。

数据库实验6触发器

数据库实验6触发器

实验6 触发器一、实验目的1.了解触发器的基本概念和功能。

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

二、相关知识创建触发器的语法为:CREATE TRIGGER <触发器名> ON <表名>[WITH ENCRYPTION]FOR {[DELETE][,][INSERT][,][UPDATE]}[WITH APPEND][NOT FOR REPLICATION]AS <SQL 语句组>其中:1)WITH ENCRYPTION 为加密选项。

2)DELETE 选项为创建DELETE 触发器。

DELETE触发器的作用是当对表执行DELETE操作时触发器被激活,并从指定表中删除元组,同时将删除的元组放入一个特殊的逻辑表(delete表)中。

触发器的动作可以检查delete表中的数据,以确定下一步该如何处理。

3)INSERT选项为创建INSERT触发器。

INSERT触发器在对指定表中执行插入数据操作时激活,激活后将插入表中的数据拷贝并送入一个特殊的逻辑表(inserted 表)中,触发器会根据INSERT表中的值决定如何处理。

4)UPDATE选项为创建UPDATE触发器。

UPDATE触发器仅在对指定表中进行更新数据操作时激活。

UPDATE触发器激活后把将要被更新的原数据移入delete表中再将要被更新后的新数据的备份送入insert表中,UPDATE触发器对delete和inserted表进行检查,并决定如何处理。

5)NOT FOR REPLICATION 选项说明当一个复制过程在修改一个触发器表时,与该表相关联的触发器不能被执行。

触发器是一种特殊类型的存储过程,用来保证数据完整性,当对它所保护数据进行插入、修改和删除时自动激活,对改变的数据进行检查,以防止对数据进行不正确、未授权或不一致的修改。

一个触发器只适用于一个表,每个表最多只能有三个触发器,它们分别是INSERT、UPDATE和DELETE触发器。

数据库实验心得体会

数据库实验心得体会

数据库实验心得体会在数字化时代,数据库作为信息存储和管理的重要工具,在各个领域都发挥着不可或缺的作用。

为了更深入地理解数据库原理和应用,我参与了数据库实验课程,通过实践操作,对数据库有了更直观和深入的认识。

一、实验内容与过程在实验课程中,我们主要学习了关系型数据库的管理和维护,包括表的创建、查询、更新以及索引的优化等。

我们通过理论讲解和实践操作相结合的方式,逐步掌握了SQL语言的使用,包括SELECT、INSERT、UPDATE、DELETE等基本语句,以及视图、存储过程、触发器等高级功能。

我们还学习了数据库的性能优化和安全控制等方面的知识。

在实验过程中,我遇到了不少挑战。

在表的设计和索引的创建方面,我需要充分考虑数据的完整性和查询效率,以确保数据库的高效运行。

在SQL查询优化方面,我需要不断调整查询语句的结构,以减少查询时间和资源消耗。

通过反复练习和不断总结,我逐渐掌握了这些知识和技能,并能够熟练地应用于实际工作中。

二、实验收获与体会通过本次数据库实验课程的学习和实践操作,我获得了以下收获和体会:1. 理论与实践相结合:通过将理论知识应用到实践中去,我更加深入地理解了数据库原理和应用的内涵和外延。

这种理论与实践相结合的学习方式不仅提高了我的学习效果,还增强了我的问题解决能力。

2. 技能提升:通过不断地练习和实践操作,我的SQL编程能力和数据库管理能力得到了显著提升。

我能够更加熟练地使用SQL语言进行数据查询、修改和优化,同时也能够更好地管理和维护数据库系统。

3. 情感态度与价值观:在实验过程中,我培养了耐心、细致的工作态度以及团队合作精神和创新意识。

数据库作为信息化社会的重要基础设施,需要具备高度的责任感和使命感来保障其稳定运行和安全可靠。

我也意识到只有不断创新和改进才能推动数据库技术的持续发展和进步。

三、未来展望与建议对于未来数据库技术的发展,我有以下几点展望和建议:1. 技术创新:随着云计算、大数据、人工智能等技术的不断发展,数据库技术也需要不断创新和完善。

数据库原理实验报告-实验三-数据完整性与安全性控制

数据库原理实验报告-实验三-数据完整性与安全性控制

《数据库原理》实验报告题目:实验三数据完整性与安全性控制学号班级日期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-->展开键、约束。

数据库实验3触发器报告参考模板

数据库实验3触发器报告参考模板

数据库技专题训练I(2014年春)数据库专题训练------触发器实验报告系别:计算机科学与技术班级:计11-3班姓名:黄娟娟学号:11101020324成绩:评语:指导教师签字:日期:实验二触发器一、实验环境及要求触发器是一种特殊的存储过程,不能被用户直接调用。

可以包含复杂的 SQL 语句。

在特定事件发生时自动触发执行,通常用于实现强制业务规则和数据完整性。

DML触发器分为两种类型:AFTER 触发器和 INSTEAD OF触发器。

通过本次实验掌握触发器的创建方法以及使用方法。

二、实验步骤及结果1)创建一个名为tri_Insert_S的触发器,测试改触发器的执行情况,并给出实验结果。

当插入的新记录中Sage的值不是18至25之间的数值时,就激活该触发器,撤销该插入操作,并给出错误提示。

use SXCJgocreate trigger tri_Insert_S on Safter insertasif exists(select*from insertedwhere Sage>=18 and Sage<=25)print'添加成功!'elsebeginprint'无法添加!'rollback transactionendgoinsert into S values('S8','黄丽','女',26,'计算机')insert into S values('S8','黄丽','女',20,'计算机')select*from Sgo显示如下:i nsert into S values('S8','黄丽','女',26,'计算机')insert into S values('S8','黄丽','女',20,'计算机')2)创建一个名为tri_Update_SC的触发器,要求:(1)首先判断数据库中是否已经存在名为tri_Update_SC的触发器,如果存在,首先删除,再创建。

存储过程与触发器实验报告

存储过程与触发器实验报告

存储过程与触发器实验报告一、引言存储过程和触发器是数据库中常用的高级功能,它们能够提高数据库的性能、数据一致性和安全性。

本实验报告将详细介绍存储过程和触发器的概念、用途以及实际应用。

二、存储过程2.1 概念存储过程是一组预定义的SQL语句集合,它们被命名并存储在数据库中,可以作为一个单元来调用和执行。

存储过程可以接受参数,并返回一个或多个结果集。

存储过程可以在应用程序层面减少网络传输,提高数据库性能。

2.2 用途存储过程的应用非常广泛,主要用于以下几个方面: 1. 数据库业务逻辑封装:将复杂的业务逻辑封装到存储过程中,使应用程序只需调用存储过程而不需要编写大量的SQL语句,简化应用程序的开发。

2. 数据库性能优化:通过存储过程可以减少网络传输,提高数据库性能。

3. 数据库安全性:通过存储过程,可以实现对数据库的访问权限控制,提高数据库的安全性。

2.3 示例下面以一个简单的示例来说明存储过程的使用。

2.3.1 创建存储过程CREATE PROCEDURE `get_employee_by_department` (IN department_id INT)BEGINSELECT * FROM employee WHERE department_id = department_id;END2.3.2 调用存储过程CALL `get_employee_by_department`(1);2.4 优化技巧为了进一步提高存储过程的性能,可以采用以下优化技巧: 1. 减少存储过程的参数:过多的参数会增加网络传输的负担,应尽量减少存储过程的参数数量。

2. 避免长时间占用资源:存储过程应尽量快速执行,避免长时间占用数据库资源。

三、触发器3.1 概念触发器是与表相关联的特殊类型的存储过程,它在表的数据发生变化时自动执行。

触发器可以监视INSERT、UPDATE或DELETE等操作,并在这些操作发生时自动触发执行一段预定义的代码。

数据库实验报告3

数据库实验报告3

数据库实验报告课程:数据库原理及应用正文:一、实验目的1.理解索引和视图的概念。

2.掌握索引的使用方法。

3.掌握视图的定义和使用方法。

4.理解存储过程的概念,掌握存储过程的使用方法。

5.学习触发器的使用,体会触发器执行的时机,加深对触发器功能和作用的理解。

6.理解SQL Server2000验证用户身份的过程,掌握设置身份验证模式的方法。

7.理解登陆账号的概念,掌握混合认证模式下登陆账号的建立与取消方法。

8.掌握混合认证模式下数据库用户的建立与取消。

9.掌握数据库用户权限的设置方法。

10.理解角色的概念,掌握管理角色技术。

11.学会配制ODBC数据源。

了解使用ODBC来进行数据库应用程序设计,通过ODBC接口访问数据库并对数据库进行操作。

学习在Visual Basic中使用ADO控件访问后台的SQL Server数据库。

二、实验内容1.建立索引。

对JWGL数据库的学生选课表SC建立索引,要求按照Cno升序、Grade降序建立一个名为SC_ind的索引。

USE JWGLIF EXISTS(SELECT name FROM sysindexes WHERE name = 'SC_ind')DROP INDEX SC.SC_ind;GOUSE JWGLCREATE INDEX SC_ind ON SC (Cno,Grade DESC);2.视图的定义和操作,(1)在JWGL数据库里,完成第三章例3.54~例3.61例题中视图的定义和视图上的查询、更新操作。

(2)在Market数据库中,完成第三章习题11中(1)中建立视图的操作,然后在视图上完成第三章习题11(2)的查询操作。

3.在数据库JWGL中,完成第四章例1,例3~7中例题的创建存储过程的操作,并使用EXEC语句调用这些存储过程执行,观察他们的执行结果。

4.在Market数据库中,完成第四章习题5中(1)~(4)创建存储过程的操作。

实验三 更新数据库、视图及数据库完整性

实验三  更新数据库、视图及数据库完整性

实验三更新数据库、视图及数据库完整性一、实验目的熟悉通过SQL语句更新数据库、创建视图以及操作视图的基本使用方法,熟悉DBMS系统关于数据库完整性的约束限制。

二、实验内容和要求1、熟练update,delete,insert语句进行更新数据库操作2、创建视图以及操作视图的基本使用方法,3、通过实验,了解并掌握实体完整性、参照完整性的定义、违约处理。

练习使用触发器确保数据完整性。

三、实验主要仪器设备和材料1.计算机及操作系统:PC机,Windows 2000/xp;2.数据库管理系统:SQL sever 2000/2005;四、实验方法、步骤及结果测试实验题目:题目1、在表S中插入学生学号009,姓名:麦兜,性别男,1984年4月1日出生,网络工程专业,CS系,籍贯:北京。

题目2、把王涛同学的选课信息全部删掉。

查询每个学生选课信息,包括学号,姓名,选课课号,成绩实现代码及查询sc表的结果截图:Delete from Sc where Sno in(Select Sno from S where Sname=’王涛’)Select Sc.Sno ,Sname,Cno,Grade from Sc,S where Sc.Sno=S.Sno题目3、将选修数据库不及格的成绩全部置空。

Update Sc set Grade=null where Grade<60 and Cno in( Select Cno from C where Cname=‘数据库’)实现代码及查询结果截图:题目4、①查找IS系选修数据库的学生学号,姓名,课程号,成绩。

给出截图Select S.Sno,S.Sname,Cno,Grade from S,Sc where S.Sdept='IS'and Cno in( Select Cno from C where Cname='数据库')and S.Sno=Sc.Sno②把IS系同学选修DB的成绩提高10分。

oracle实验 视图、索引和完整性

oracle实验  视图、索引和完整性

实验项目名称:视图、索引和完整性等实验学时: 3 同组学生姓名:实验地点:实验日期:实验成绩:批改教师:批改时间:实验4 视图、索引和完整性等一、实验目的和要求1、了解视图的基本概念、种类及各自的特点与作用。

2、理解索引的基本概念及其优缺点。

3、理解修改数据时索引的开销。

4、理解数据完整性的概念及分类。

5、理解同义词和序列的基本概念。

6、掌握在OEM中创建视图、索引、实体完整性、域完整性和参照完整性以及同义词、序列的方法。

7、掌握用PL/SQL语言创建视图、索引、各种约束、同义词和序列的方法。

二、实验设备、环境设备:奔腾Ⅳ或奔腾Ⅳ以上计算机环境:WINDOWS 2000 SERVER或WINDOWS 2003 SERVER、ORACLE 10g中文版三、实验步骤1、分析题意,重点分析题目要求并给出解决方法。

2、根据题目要求启动SQL*Plus、iSQL*Plus、OEM等管理工具。

3、按题目要求完成实际操作任务,并将相关文档资料保存在以自己学号命名的文件夹中。

4、提交完成的实验结果。

四、实验内容1、视图的创建与使用。

(1)创建一个名为cx_employees的视图,只允许查看雇员的编号、姓名、生日、性别和部门的编号。

(2)创建一个名为cx_salary的视图,要求只显示财务部雇员的姓名和薪水情况。

使用视图,查询财务部雇员中姓名为王林的信息。

(3)通过视图向Employees表插入一条信息:雇员编号:510888;姓名:张无忌;出生年月1982年8月23日;性别:男;部门编号:3。

(4)将张无忌从经理办公室转到市场部。

(5)将张无忌从Employees表中删除。

2、创建索引。

(1)对ORCL数据库中的Employees表中的DepartmentID属性上建立一个名为DeptID_index 索引,并指定索引的存储特征值,数据库中的行以升序保存,将索引建立在用户默认的表空间里。

(2)在Employees表的sex列上建一个位图索引。

索引和数据完整性实验报告

索引和数据完整性实验报告

实验7 索引和数据完整性1、目的与要求(1)掌握索引的使用方法(2)掌握数据完整性的实现方法2、实验内容(1)建立索引(2)数据完整性3、实验步骤(1)建立索引①对yggl数据库的employees表中的departmentid列建立索引。

Use ygglIf exists(select name from sysindexes where name=’depart_ind’Drop index employees.depart_ind)GoCreate index depart_ind on employees(departmentid)②对pxscj数据库的kcb的课程号列建立索引。

(唯一聚集索引)Use pxscjIf exists(select name from sysindexes where name=’kc_id_ind’)Drop index kc_id_indGoCreate unique clustered index kc_in_ind on kcb(课程号)(2)数据完整性①建立一个规则对象,输入4个数字,每一位的范围分别是[0-3][0-9][0-6][0-9],然后把它绑定到book表的book_id字段上,再解除规则,最后删除规则。

Create table book(Book_id char(6) not null primary key,Name varchar(20) not null,Hire_date datetime not null,Cost int check(cost>=0 and cost<=500) null)GoCreate default today as getdate()GoExec sp_binddefault ‘today’,’book.[hire_date]’Go②创建一个表employees5,只含employeeid,name,sex和education列。

数据库实验八:触发器及应用

数据库实验八:触发器及应用

数据库实验八:触发器及应用一、实验目的与要求:1.实验目的(1)学习触发器的使用,加深对触发器功能和作用的理解。

(2)体会触发器执行的时机。

2.实验要求建立如下的存储过程(基于前面实验建立的表和插入的数据,并为每个存储过程设计返回的状态值):(1)为选课表分别建立插入和更新触发器,如果当前学生累计不及格门数达到5则给出警示信息。

(2)为课程表分别建立插入和更新触发器来建立约束规则:“专业基础”课的教师必须为“教授”或“副教授”,如果不满足约束则拒绝操作,并给出错误信息。

(3)自行再分别设计2~3个触发器(在实验报告中要准确描述功能需求)。

(4)设计并执行相关的操作,体会DML触发器的效果和作用。

二、实验内容1、实验原理建立触发器的语句是:CREATE TRIGGER [schema_name].trigger-nameON {table |view}FOR {INSERT | UPDATE | DELETE }AS[IF UPDATE (column) [{AND | OR} UPDATE (column)…]]sql-statement2、实验步骤与结果(1)调出SQL Server2005软件的用户界面,进入SQL SERVER MANAGEMENT STUDIO。

(2)输入自己编好的程序。

(3)检查已输入的程序正确与否。

(4)运行程序,并分析运行结果是否合理和正确。

在运行时要注意当输入不同的数据时所得到的结果是否正确。

(5)输出程序清单和运行结果。

(1)为选课表分别建立插入和更新触发器,如果当前学生累计不及格门数达到5则给出警示信息。

插入触发器:create trigger xk_triggeron选课for insertasdeclare@amount int,@xh char(10)select@xh=学号from insertedif@xh is not nullbeginselect@amount=(select count(*)from选课where成绩<60 and学号=@xh)if@amount>=5beginraiserror('不及格达到5门',16,10)endendinsert into选课values('001','03','50')insert into选课values('001','02','50')insert into选课values('001','04','50')更新触发器:create trigger xk_trigger2on选课for updateasdeclare@amount int,@xh char(10)select@xh=学号from insertedif@xh is not nullbeginselect@amount=(select count(*)from选课where成绩<60 and学号=@xh) if@amount>=5beginraiserror('不及格达到5门',16,10)endendupdate选课set成绩=50 where学号='001'and课程编号='02'update选课set成绩=50 where学号='001'and课程编号='03'update选课set成绩=50 where学号='001'and课程编号='04'update选课set成绩=50 where学号='001'and课程编号='05'update选课set成绩=50 where学号='001'and课程编号='06'(2)为课程表分别建立插入和更新触发器来建立约束规则:“专业基础”课的教师必须为“教授”或“副教授”,如果不满足约束则拒绝操作,并给出错误信息。

数据库实验报告- 数据完整性

数据库实验报告- 数据完整性

实验6 数据完整性一、实验目的1.掌握Transact-SQL语句(CREATE RULE、DROP RULE)创建和删除规则的方法。

2.掌握系统存储过程sp_bindrule、sp_unbindrule绑定和解除绑定规则的操作方法,以及sp_help、sp_helptext查询规则信息、sp_rename更名规则的方法。

3.掌握Transact-SQL语句(CREATE DEFAULT、DROPDEFAULT)创建和删除默认对象的方法。

4.掌握系统存储过程sp_bindefault、sp_unbindefault绑定和解除绑定默认对象的操作方法,以及sp_helptext查询规则信息。

5.掌握SQL Server管理平台和Transact-SQL语句(CREATE TABLE、ALTER TABLE)定义和删除约束的方法,并了解约束的类型。

二、实验内容和步骤1.为studentsdb数据库创建一个规则,限制所输入的数据为7位0~9的数字。

(1)复制学生表命名为stu_phone,在stu_phone表中插入一列,列名为“电话号码”。

完成以下代码实现该操作。

SELECT * INTO stu_phone FROM 学生表ALTER TABLE stu_phone ADD 电话号码 CHAR(7)NULL stu_phone表结构如图1-10所示。

图1-10 stu_phone表结构SELECT*INTO stu_phone FROM学生表ALTER TABLE stu_phone ADD电话号码CHAR(7)NULL(2)创建一个规则phone_rule,限制所输入的数据为7位0~9的数字。

CREATE rule phone_ruleAS@电话号码LIKE'[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'检验:电话号码为8位时无法插入!电话号码为7位时可以插入!(3)使用系统存储过程sp_hndrule将phone_rule规则绑定到stu_phone表的“电话号码”列上。

《数据库系统原理》实验报告

《数据库系统原理》实验报告

金陂科扶^肉生实验报(理工类)课程名称: 学生学号: 所属院部: 数据库系统原理专业班级:1412101055 学生姓名:软件工程学院指导教师:20J5 20 —学年14软件工程1班孟祥辉麻春艳第—二学期金陵科技学院教务处制告书写要求实验报告原则上要求学生手写,要求书写工整。

若因课程特点需 打印的,要遵照以下字体、字号、间距等的具体要求。

纸张一律采用 A4的纸张。

实验报告百 实验报告中一至四项内容为必填项, 包括实验目的和要求;实验 仪器和设备;实验内容与过程;实验结果与分析。

各院部可根据学科 特点和实验具体要求增加项目。

填写注意事项细致观察,及时、准确、如实记录。

准确说明,层次清晰。

尽量采用专用术语来说明事物。

外文、符号、公式要准确,应使用统一规定的名词和符号。

应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。

实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。

实验 报告的批改成绩采用百分制,具体评分标准由各院部自行制定。

实验报告装订要求实验批改完毕后,任课老师将每门课程的每个实验项目的实验报 告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课 程的实验大纲。

刁写说明(1) (2) (3) (4) (5)实验项目名称:数据库定义与操作语言 实验学时:2同组学生姓名:孟陈、陈晓雪、季佰军批改教师:实验地点: 1318 实验日期:5.19实验成绩: 批改时间:、实验目的1、理解和掌握数据库DDL语言,能够熟练地使用SQL DDL语句创建、修改和删除数据库、模式和基本表。

2、掌握SQL册亨徐设计基本规范,熟练运用SQL语言实现数据基本查询,包括单表查询、分组统计查询和连接查询3、掌握SQL嵌套查询和集合查询等,各种高级查询的设计方法等.4、熟悉数据库的数据更新操作,能够使用sql语句对数据库进行数据的插入、修改、删除操作。

5、熟悉sql语言有关系图的操作,能够熟练使用sql语言来创建需要的视图,定义数据库外模式,并能使用所创建的视图实现数据管理。

实验6 大数据库实验——存储过程和触发器

实验6 大数据库实验——存储过程和触发器

实验6 存储过程和触发器一、实验目的1、加深和巩固对存储过程和触发器概念的理解。

2、掌握触发器的简单应用。

3、掌握存储过程的简单应用。

二、实验容一)存储过程:1. 创建一存储过程,求l+2+3+…+n,并打印结果。

CREATE PROCEDURE addresultASDECLARE n int=10,/*最后一个数*/i int=0,result int=0 /*结果*/BEGINWHILE(i<=n)BEGINSET result=result+iSET i=i+1ENDPRINT'1+2+3+...+n的结果是:'PRINT resultRETURN(result)ENDGO2.调用上面的addresult存储过程,打印l十2+3+…+10的结果。

EXEC addresult3. 修改上述存储过程为addresult1,使得n为输入参数,其具体值由用户调用此存储过程时指定。

CREATE PROCEDURE addresult1n int=10 /*最后一个数*/ASDECLARE i int=0,result int=0 /*结果*/BEGINWHILE(i<=n)BEGINSET result=result+iSET i=i+1ENDPRINT'1+2+3+...+n的结果是:'PRINT resultRETURN(result)ENDGO4. 调用上面修改后的addresult1存储过程,打印l+2+3+…+100的结果。

EXEC addresult1 1005.修改上述存储过程为addresult2,将n参数设定默认值为10,并改设sum为输出参数,让主程序能够接收计算结果。

CREATE PROCEDURE addresult2n int=10,/*最后一个数*/sum int out/*结果*/ASDECLARE i int=0BEGINset sum=0WHILE(i<=n)BEGINSET sum=sum+iSET i=i+1ENDENDGO6.调用上面修改后的addresult2存储过程,设置变量s接收计算l+2+3+…+10的结果。

实验八 数据完整性 实验指导

实验八 数据完整性 实验指导

实验八数据完整性实验指导一、完整性的概念数据完整性是指存储在数据库中的数据正确无误,并且相关数据具有一致性。

数据库中的数据是否完整,关系到数据库系统能否真实的反映现实世界。

立足在“学生”表中学生的学号要具有唯一性,学生性别只能是男或女,其所在的系部、专业、班级必须是存在的,否则,就会出现数据库中的数据与现实不符的现象。

如果数据库中总存在不完整的数据,那么它就没有存在的必要了,因此,实现数据的完整性在数据库管理系统中十分重要。

根据数据完整性机制所作用的数据库对象和范围不同,数据完整性可分为实体完整性、域完整性、参照完整性和用户定义完整性4种类型。

1. 实体完整性实体是表中的记录,表中的一条记录就是一个实体。

实体完整性要求在表中不能存在完全相同的记录,而且每条记录都要具有一个非空且不重复的主键值。

这样,就可以保证数据所代表的任何事物都不重复、可以区分。

例如,学生表中的学号必须唯一,并且不能为空,这样就可以保证学生记录的唯一性。

实现实体完整性的方法主要有主键约束、唯一索引、唯一约束和制定IDENTITIY属性。

2. 域完整性域完整性是指特定列的项的有效性。

域完整性要求向表中指定列输入的数据必须具有正确数据类型、格式及有效的数据范围。

例如,假设现实中学生的成绩为百分制,则在“课程注册”表中,向成绩列输入的数据,不能出现字符,也不能是小于0或大于100的数值。

实现域完整性的方法主要有CHECK约束、外键约束、默认约束、非空约束、规则及在建表时设置的数据类型。

3. 参照完整性参照完整性是指在有关联的两个或两个以上的表中,通过使用主键和外键或唯一键和外键之间的关系,使表中的键值在相关表中保持一致。

引用完整性要求不能引用不存在的值。

如果一个键值发生更改,则在整个数据库中,对该键值和所有引用要进行一致性的更改。

例如,在学生表中的“班级代码”列的值必须是在班级表中“班级代码”列中存在的值,防止在录入学生记录时将学生分配到一个不存在的班级中。

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

实验五实验报告
二、实验内容
5.1 实体完整性
1)在数据库School中建立表Stu_Union,进行主键约束,在没有违反实体完整性的前提下插入并更新一条记录
建立表Stu_Union,进行主键约束
在没有违反实体完整性的前提下插入一条记录
在没有违反实体完整性的前提下更新一条记录
2)演示违反实体完整性的插入操作
3)演示违反实体完整性的更新操作
4)演示事务的处理,包括事务的建立,处理以及出错时的事务回滚,演示事务处理和批处理
的区别。

提示:SQL2005相关语句为
BEGIN TRAN
ROLLBACK TRAN
COMMIT TRAN
可以这样演示:新建一个包含两条语句的事务,使第一条成功而第二条失败,然后查看整个事务是否回滚。

重要提示:SQL默认只回滚出错的语句,要回滚整个事务,需要预先执行以下语句:SET XACT_ABORT ON
a.先执行如下SQL语句(可执行成功)
b.再执行如下语句,此时为执行第一句insert语句成功,第二句insert语句失败
c.查询事物是否回滚
由上可知,表为b步骤即事物出错前的状态,所以整个事物回滚。

5)通过建立Scholarship表,插入一些数据。

演示当与现有的数据环境不等时,无法建立实体完整性以及参照完整性。

提示:即演示不能为表Scholarship生成主键和外键的情况。

a.
b. 不能为表Scholarship生成主键
c.不能为表Scholarship生成外键
5.2参照完整性
1)为演示参照完整性,建立表Course,令cno为其主键,并在Stu_Union中插入数据。

为下面的实验步骤做预先准备。

在Stu_Union中插入数据
建立表Course,令cno为其主键
2)建立表sc,另sno和cno分别为参照Stu_Union表以及Course表的外键,设定为级连
删除,并令(sno, cno)为其主键。

在不违反参照完整性的前提下,插入数据。

3)演示违反参照完整性的插入数据
4)在Stu_Union中删除数据,演示级连删除。

相关文档
最新文档