SQL应用实例PPT

合集下载

SQL基础培训教材课件pptx-2024鲜版

SQL基础培训教材课件pptx-2024鲜版

2024/3/27
17
03
数据库创建与管理操作
Chapter
2024/3/27
18
创建数据库及设置参数
01
选择数据库管理系 统(如MySQL、 Oracle、SQL Server等)
02
确定数据库名称、 存储位置、字符集 等参数
03
使用CREATE DATABASE语句创 建数据库
04
设置数据库参数, 如最大连接数、日 志文件大小等
03
注意事项
2024/3/27
04
确保插入的数据类型与表定义的数据类型一致。
05
对于自增列,无需指定值,数据库会自动生成。
06
对于非空列,必须指定值,否则会报错。 34
更新数据策略及最佳实践
更新指定列的数据:使用UPDATE语句,指定表名、要更 新的列名及新的值,同时可以通过WHERE子句指定更新 条件。
2024/3/27
25
索引优化查询性能
索引的作用
加快数据的检索速度,提高查 询效率。
索引的创建原则
根据查询需求和表结构特点, 选择合适的字段创建索引。
索引的维护
定期分析和优化索引,避免索 引过多或不合理导致性能下降。
2024/3/27
26
实例演示:设计并实现一个用户信息表
01
表结构设计
根据实际需求设计用户信息表的字 段和数据类型。
2
01
SQL概述与基础知识
Chapter
2024/3/27
3
SQL定义及发展历程
SQL(Structured Query Language)是结构化查询语 言的缩写,用于管理关系数据库管理系统(RDBMS)。

超炫PPTSQL注入

超炫PPTSQL注入
超炫PPT SQL注入
• SQL注入简介 • SQL注入攻击手段 • 如何防范SQL注入 • SQL注入案例分析 • 总结与展望
01
SQL注入简介
SQL注入的定义
SQL注入是一种利用应用程序对用户 输入验证不严格或未验证的漏洞,向 数据库查询中注入恶意SQL代码,从 而执行非授权操作或窃取敏感数据的 安全攻击手段。
输入验证和清理
1
对用户输入进行验证和清理是防范SQL注入的重 要步骤。
2
对所有用户输入进行验证,确保输入符合预期的 格式和类型,可以排除恶意输入。
3
对用户输入进行清理,如转义特殊字符,可以防 止恶意输入被当作SQL代码执行。
错误处理
01
02
03
错误的错误处理方式可能会暴露 数据库的敏感信息,从而给攻击 者提供更多机会进行SQL注入攻 击。
报错注入
总结词
报错注入是一种利用数据库报错信息来推断 其他数据的技术。
详细描述
攻击者通过向应用程序输入特定的SQL语句 片段,使得应用程序在执行查询时返回数据 库的错误信息。攻击者再通过分析这些错误 信息来推断出数据库中的敏感数据。
03
如何防范SQL注入
参数化查询
参数化查询是一种有效的防止SQL注入的方法。它通过将输入数据与SQL语句分开处理,确保输入数 据被当作数据而不是SQL代码执行。
它通过在用户输入中插入或"注入"恶 意SQL代码,使得原本的查询逻辑被 篡改,进而达到攻击者的目的。
SQL注入的危害
数据泄露
攻击者可以利用SQL注入获取数 据库中的敏感信息,如用户密码、 个人信息等。
数据篡改
攻击者可以修改数据库中的数据, 如篡改用户账号信息、恶意删除 数据等。

《数据库应用》全套PPT电子课件教案-第三章(关系数据库标准语言SQL)

《数据库应用》全套PPT电子课件教案-第三章(关系数据库标准语言SQL)
例:DROP TABLE 订购单 DROP TABLE直接从磁盘上删除<表名>所对应的数据
库文件。
16
第3章 关系数据库标准语言SQL
3.3 数据查询
SQL的核心是查询。SQL的查询命令也称作SELECT命令,它 的基本形式由SELECT-FROM-WHERE查询块组成,多个查 询块可以嵌套执行。SQL查询命令格式:
DISTINCT短语的作用是去掉查询结果中的重复值.
19
第3章 关系数据库标准语言SQL
SELECT * FROM 仓库 其中“*”是通配符,表示所有属性,即字段,这里的命令 等同于:
SELECT 仓库号,城市,面积 FROM 仓库 SELECT DISTINCT 仓库号 FROM 职工 WHERE 工资 > 1210
SQL语言是当前最为成功、应用最为广泛的关 系数据库语言,其主要特点包括:
1. SQL语言非常简洁 2. 综合统一 3. 高度非过程化 4. 面向集合的操作方式 5. 以同一种语法结构提供两种使用方式
4
第3章 关系数据库标准语言SQL
3.1.2 SQL语言功能概述
SQL功能可分为四大部分:数据定义功能、数据 控制功能、数据查询功能和数据操纵功能。
21
第3章 关系数据库标准语言SQL
匹配串中可包含如下四种通配符: _(下划线):匹配任意一个字符。 %(百分号):匹配0个或多个字符。 [ ]:匹配[ ]中的任意一个字符。如[abcd]表示匹配a、b、
c和d中的任何一个。 [^]:不匹配[ ]中的任意一个字符。如[abcd]表示不匹配
a、b、c和d。
SELECT 职工号,城市 FROM 仓库,职工 WHERE ( 面积 > 400) AND

sql 课件 第3章 关系数据库标准语言SQL

sql 课件 第3章 关系数据库标准语言SQL

山东财政学院计算机信息工程学院
3、默认文件组
在每个数据库中,同一时间只能有一个文件组是默认 文件组(Default Filegroup)。 当进行数据库操作时,如果不指定文件组,则系统自 动选择默认文件组。 可使用Transact-SQL语句中的alter database语句指 定数据库的默认文件组。 在不特别指定的情况下,系统将主要文件组认定为默 认文件组。
山东财政学院计算机信息工程学院
2、扩展盘区
由8个连续页面组成的数据结构称为一个盘区。 是SQL Server分配给表和索引的基本单位。 扩展盘区可分为统一扩展盘区和混合扩展盘区。 统一扩展盘区由一个数据库对象所有。 混合扩展盘区可以为多个数据库所有,即其中最多 可以放8种数据库对象。
山东财政学院计算机信息工程学院
山东财政学院计算机信息工程学院
例:创建具有两个文件组的数据库bank2
CREATE DATABASE BANK2 ON PRIMARY (NAME=BANK2_1_DAT, FILENAME='d:\bank\bank2_f1dat.mdf', SIZE=20MB, MAXSIZE=50MB, FILEGROWTH=5MB), (NAME=BANK2_2_DAT, FILENAME='d:\bank\bank2_f2dat.ndf', SIZE=10MB, MAXSIZE=40MB, FILEGROWTH=5MB),
山东财政学院计算机信息工程学院
3.2 数据定义
3.2.1 数据库的定义 3.2.2 表的定义 3.2.3 索引的定义
山东财政学院计算机信息工程学院
数据定义
SQL Server数据库由包含数据的表集合和其他对象( 如视图、索引、存储过程、触发器、用户、角色等)组 成,支持三级模式结构。其中用户模式对应于视图,逻 辑模式对应于基本表,物理模式对应于存储文件、索引 等。

数据库应用第4章 SQL复杂查询

数据库应用第4章 SQL复杂查询

连接的分类
连接分为4种类型:内连接,外连接, 连接分为 种类型:内连接,外连接, 种类型 交叉连接,自然连接。 交叉连接,自然连接。 内连接:使用关键字inner,仅显示两个 内连接:使用关键字 , 连接表中匹配的行, 可以省略。 连接表中匹配的行,inner可以省略。 可以省略 外连接:使用关键字outer,有左外连接、 外连接:使用关键字 ,有左外连接、 右外连接和完全外连接三种。 右外连接和完全外连接三种。
左外连接:left outer,结果集中包含左 左外连接: , 表中所有行及右表中匹配的行。 表中所有行及右表中匹配的行。 右外连接: 右外连接:right outer,结果集中包含 , 右表中所有行及左表中匹配的行。 右表中所有行及左表中匹配的行。 完全外连接: 完全外连接:full outer,结果集中包括 , 连接表中的所有行,不管它们是否匹配。 连接表中的所有行,不管它们是否匹配。
use xscj 学号,姓名,专业名, select 学号,姓名,专业名,总学分 into communication_xs from xs 专业名='通信工程' ='通信工程 where 专业名='通信工程'
Exe3:在xscj数据库中, Exe3:在xscj数据库中,查询选修了 数据库中 101号课程 成绩大于等于80 号课程, 80分的计 101号课程,成绩大于等于80分的计 算机专业的学生情况, 算机专业的学生情况,并将查询结 果放入xs_101表中。 xs_101表中 果放入xs_101表中。
MAX: MAX:求最大值 MIN: MIN:求最小值 SUM: SUM:求和 求选修101 101课程的学生平均成绩 例4-8 求选修101课程的学生平均成绩

第3章-结构化查询语言ppt课件

第3章-结构化查询语言ppt课件
五、SQL语言语句类别
1. 数据操纵语言
数据操纵语言(Data Manipulation Language,DML)是SQL语言中用于查询和增删修改表数据的语句,主要语句如下:
SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT - 向数据库表中插入数据
四、SQL能做什么?
SQL 可从数据库取回数据 SQL 可在数据库中插入新的纪录 SQL 可更新数据库中的数据 SQL 可从数据库删除记录 SQL 可创建新数据库 SQL 可在数据库中创建新表 SQL 可在数据库中创建存储过程 SQL 可在数据库中创建视图 SQL 可以设置表、存储过程和视图的权限
Numeric(6,2)


工作时数
任务(ASSIGNMENT)表结构
列名
类型

是否非空
备注
DepartmentName
Text(35)
主键是Biblioteka 部门名称BudgetCode
Text(30)


预算编号
OfficeNumber
Text(15)


办公室编号
Phone
Text(12)


办公电话
列名
类型
PROJECT表结构
列名
类型

是否非空
备注
ProjectID
Int
主键,外键

复合键,项目编号
EmployeeNumber
Int
主键,外键

复合键,雇员编号
HoursWorked
Numeric(6,2)

《数据库语言SQL》课件

《数据库语言SQL》课件

06 SQL综合案例分析
CHAPTER
案例一:学生信息管理系统
要点一
总结词
要点二
详细描述
简单易用、功能全面
学生信息管理系统是一个常见的数据库应用案例,主要用 于存储和管理学生信息。通过SQL语言,可以实现对学生 信息的增删改查、排序、筛选等操作,方便学校对学生信 息的管理和维护。
案例二:商品销售系统
数据控制语言(DCL)
总结词
用于控制对数据库的访问权限
详细描述
DCL(Data Control Language)包括 GRANT和REVOKE等命令,用于控制对数 据库的访问权限。GRANT命令用于授予用
户或角色对数据库对象的访问权限,而 REVOKE命令则用于撤销先前授予的权限。 通过合理地使用DCL,可以确保数据库的安
数据操纵语言(DML)
总结词
用于插入、更新和删除数据库中的数据
详细描述
DML(Data Manipulation Language) 包括INSERT、UPDATE和DELETE等命令, 用于插入、更新和删除数据库中的数据。 INSERT命令用于向表中插入新行, UPDATE命令用于修改表中的现有行,而 DELETE命令则用于删除表中的行。
《数据库语言SQL》PPT课件
目录
CONTENTS
• SQL简介 • SQL基础语法 • SQL进阶知识 • SQL应用实践 • SQL与其他数据库语言的比较 • SQL综合案例分析
01 SQL简介
CHAPTER
Sured Query Language)是一种用于管理关系数 据库的标准编程语言。
分组等高级功能来处理查询结果。
数据定义语言(DDL)
总结词

数据库教学资料第6章t-sql语言基础PPT课件

数据库教学资料第6章t-sql语言基础PPT课件
详细描述
T-SQL是结构化查询语言(SQL)的一个扩展,专门针对Microsoft SQL Server数据库系统。它提供了许多额外 的功能和命令,使得对数据库的操作更加高效和强大。T-SQL具有丰富的语言特性,包括条件语句、循环语句、 存储过程、触发器等,可以用来执行复杂的查询、数据处理和数据库管理任务。
T-SQL语言还支持存储过程、触发 器、视图等高级功能,可以大大简 化复杂的业务逻辑和数据处理流程, 降低系统开发和维护成本。
T-SQL的未来发展前景
1
随着云计算、大数据等技术的快速发展,T-SQL 语言将继续发挥重要作用,支持更多的数据处理 场景和应用领域。
2
未来,T-SQL语言将不断演进和完善,支持更多 的数据类型、函数和操作符,提高数据处理效率 和安全性。
3
变量和常量的声明与赋值
使用DECLARE语句声明变量,使用SET或 SELECT语句为变量赋值。
流程控制语句
IF语句
用于根据条件执行不同的代码块。
WHILE语句
用于重复执行一段代码直到满足特定条件。
CASE语句
用于根据条件执行不同的代码块,类似于IF-ELSE结构。
GOTO语句
用于将程序控制转移到指定的标签位置。
使用存储过程和触发器
存储过程
使用CREATE PROCEDURE语句创建一个 存储过程,该过程可以包含一系列的TSQL语句,用于执行特定的数据库操作。
VS
触发器
使用CREATE TRIGGER语句创建一个触 发器,该触发器将在指定的事件(如 INSERT、UPDATE或DELETE操作)发生 时自动执行相应的操作。

同时,T-SQL语言将与新兴技术如人工智能、机 器学习等相结合,拓展其在数据分析、预测和智 能决策等领域的应用价值。

《数据库原理及应用》教学课件 第三章SQL基础

《数据库原理及应用》教学课件 第三章SQL基础
数据库原理及应用
第三章 SQL基础
本章导读
结构化查询语言(Structured Query Language,SQL) 是关系数据库的标准语言,是集数据查询、数据操纵、数 据定义与数据控制于一体的综合性语言。在关系数据库 中,可以通过它完成数据库内的所有操作。本章首先介绍 SQL的发展及特点,然后通过实例介绍数据库和数据表的 基本操作。
④ MODIFY FILE:指定要修改的文 件。
⑤ ADD FILEGROUP:向数据库中 添加文件组。
⑥ REMOVE FILEGROUP:从数据 库中删除文件组。若文件组不为空,则 无法删除。
⑦ “[ , … N]”表示在前一语句后可 接N个同格式语句。
⑧ “|”表示用其隔开的语句在一次 命令中不可同时选用。
20
3.2 数据库基本操作
3.2.4 修改数据库
【例3-2】 将数据库 test 的名称改为 test1。 ALTER DATABASE test MODIFY NAME=test1
【例3-3】 将数据库SRS的日志文件最大容量改为100 MB。
ALTER DATABASE SRS MODIFY FILE (NAME=SRS_Data, MAXSIZE=100MB)
系列 1, 锐系普列PP2T, 锐, 2普.8 PPT, 2.8
日志文件由一系列日志记录组成,它 记录了数据库的更新情况和用户对数据库 的修改操作等。
当数据库发生损坏时,可以通过日志 文件分析出错原因;当数据丢失时,也可 以使用日志文件恢复数据库。

16
3.2 数据库基本操作
3.2.3 创建数据库
02 用SSMS创建数据库
在 SSMS 中可按如下步骤创建数据库。

SQL优化PPT课件

SQL优化PPT课件
• 从索引中获取数据,减少了读取的数据块的数量; • 通过索引来实现索引覆盖查询,但前提条件是,查询返回的字段数足够少,
更不用说select *之类的了。毕竟,建立key length过长的索引,始终不是一 件好事情。
2020/2/23
13
二次检索优化
• select sql_no_cache rental_date from t1 where inventory_id<80000; • Using index condition,返回8w条记录, 0.2s • alter table t1 add key(inventory_id,rental_date); • select sql_no_cache rental_date from t1 where inventory_id<80000; • Using index,0.1s
• SELECT * FROM tb_regist r WHERE NOT EXISTS (SELECT regId FROM tb_regist e WHERE e.`regStudentId` = r.regStudentId AND e.`regCreateDate`< r.regCreateDate )
t1.stuId=t2.stuId • 0.145s
• 通过使用覆盖索引查询返回需要的主键,再根据这写主键关联原表获得 • 需要的行,这可以减少mysql扫描那些需要丢弃的行
• 子查询不是魔鬼,当子查询中能命中索引或覆盖索引,且子查询结果集较小时,有奇效 • 覆盖索引在某些场景下,具有意想不到的优化效果。

id: 1
பைடு நூலகம்
• select_type: SIMPLE

SQL语言基础课件(ppt 75页)

SQL语言基础课件(ppt 75页)

2.1.2 SQL的优点
3.是所有关系数据库的公共语言
由于所有主要的关系数据库管理系统都支持SQL语言,用 户可将使用SQL的技能从一个RDBMS转到另一个,所有用 SQL编写的程序都是可以移植的。
2.1.3 操作界面
1.SQL*PLUS界面:
(1)登录
输入SQLPLUS,再回车;接着输入正确的Oracle用户名 并回车;输入用户口令并回车,会显示提示符:SQL>。
2.1.2 SQL的优点
1.非过程化语言
SQL是一个非过程化的语言,因为它一次处理一个记录, 对数据提供自动导航。SQL允许用户在高层的数据结构上 工作,而不对单个记录进行操作,可操作记录集。所有 SQL语句接受集合作为输入,返回集合作为输出。SQL的 集合特性允许一条SQL语句的结果作为另一条SQL语句的 输入。SQL不要求用户指定对数据的存放方法。这种特性 使用户更易集中精力于要得到的结果。
2.4.1 INSERT语句
1.INSERT语句格式
INSERT语句用于往数据表里插入记录。
(1)插入单条记录的语句格式为:
INSERT INTO tablename(target.field1,target.field2,...) VALUES(value1,value2,...) 、
(2)同时插入多条记录的语句格式为:
(4)ORDER BY条件子句 SELECT fieldlist FROM table WHERE selectcriteria ORDER BY field[ASC|DESC][,field2[ASC|DESC][,...]] (5)GROUP BY 条件子句 SELECT fieldlist FROM table WHERE criteria GROUP BY groupfieldlist (6)HAVING 条件子句 SELECT fieldlist FROM table WHERE selectcriteria GROUP BY groupfieldlist HAVING groupcriteria

《sql基础教程》PPT课件

《sql基础教程》PPT课件
主要内容
1.数据查询与SQL语言 2. SELECT查询语句 3. 查询的建立与运行 4. 视图的建立与运行
9.1 数据查询与SQL语言
为什么要数据查询?
所谓查询就是从原始的数据表中寻找出用户需要的数 据。
查询文件
利用查询设计器或查询向导所建立的查询文件的扩展 名为.QPR,查询文件的内容是SQL语言的查询语句,运行 查询文件即可获得所需的结果。
默认情况下为内连接。
1 内连接
内连接(Inner Join)也叫自然连接,是指将另一个表 内的行数据与本表内的数据相互连接,产生的结果行数 取决于参加连接的行数,也就是说在将两个表中的指定 列进行比较时,仅将两个表中满足连接条件的行组合起 来作为结果集。在内连接中,只有在两个表中匹配的行 才能在结果集中出现。
归纳一下,查询和视图的主要差别在于:
1、视图是可更新的,视图可以更新数据并将更新结果发送回源 表,而查询则不行。如果想对从本地或远程表中提取的数据 实现更新操作,就需要使用视图。
2、查询文件(QPR文件)独立存在,该程序文件可以反复执行;视图 不是独立文件,只是保存在数据库中的一种定义,只能按操作表类似的 方法使用它,可以作为查询的对象。但视图只是虚拟表,视图中的数据 是从表中临时抽取的数据。
2 外连接
在内连接中,参与连接的表的地位是平等的,连接 的结果是从两个或两个以上的表集合中挑选出符合条件 的数据,如果数据无法满足连接条件则将其抛弃。而与 之相对的连接方式是外连接(Outer Join)。在外连接中, 参与连接的表有主从之分,连接时以主表中的每一行数 据去匹配从表中的数据列,查询的结果集是主表中的全 部数据和从表中符合条件的与主表相匹配的行数据。当 主表中的某一数据没有与之相匹配的从表数据时,则以 空值填入。外部连接分为左连接(Left Outer Join)、右 连接(Right Outer Join)和完全连接(Full Outer Join) 三种。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL Server 2005 实例教程
上页
下页
电子工业出版社
(3)DML触发器的分类 根据引发的时机不同,将DML触发器分为AFTER触发器 和INSTEAD OF触发器。 AFTER触发器:当在INSERT、UPDATE、DELETE语 句执行之后才执行DML触发器的操作。AFTER触发器只 能在表上定义。 INSTEAD OF触发器:可以替代INSERT、UPDATE和 DELETE触发事件的操作。即使用触发器操作代替触发 事件操作。INSTEAD OF触发器既可以建在表上,也可 以建在视图上。通过在视图上建立触发器,可以大大增 强通过视图修改表中数据的功能。
SQL Server 2005 实例教程
上页
下页
电子工业出版社
创建触发器 USE Webshop if object_id('tr_notify','TR') is not null drop trigger tr_notify—加 USERS.则有误 go CREATE TRIGGER tr_notify ON USERS AFTER INSERT AS BEGIN PRINT('友情提示;表中增加新记录') END 验证触发器 insert into users values('trigger','trigger','普通','trigger')
SQL Server 2005 实例教程
上页
下页
电子工业出版社
2、 DDL触发器 DDL触发器是Microsoft SQL Server 2005的新增功能。它 是一种特殊的触发器,在响应数据定义语言(DDL)时 触发。如:CREATE、ALTER、DROP开头的语句。 注意:DDL触发器与DML触发器 相同点:都需要触发事件进行触发 不同点:DDL触发器为响应多种数据定义语言(DDL) 语句而触发。 注意:如果要进行以下操作,请使用DDL触发器 (1)要防止对数据库架构进行某些更改 (2)希望数据库中发生某种情况以响应数据库架构中的 更改 (3)要记录数据库架构中的更改或事件 。
SQL Server 2005 实例教程
上页
下页
电子工业出版社
二、禁用、修改和删除触发器 禁用、 【任务2-2】禁用触发器tr_notify。 任务2 禁用触发器tr_notify tr_notify。
【提示】 在图中选择【修改】 可以完成触发器的 修改操作。 在图中选择【删除】 可以删除指定的触 发器。
SQL Server 2005 实例教程
上页
下页
电子工业出版社
(2)UPDATE 触发器 【任务1-3】了解在WebShop数据库中的 任务1 了解在WebShop WebShop数据库中的 Goods表中将商品号为 888888”商品号修改 表中将商品号为“ Goods表中将商品号为“888888”商品号修改 999999”时 inserted表和deleted表的 表和deleted 成“999999”时,inserted表和deleted表的 变化情况。 变化情况。
2005实例教程 SQL Server 2005实例教程
刘志成 主编 E-mail:liuzc518@
第 9 章 触发器操作 (第一讲) 第一讲)
SQL Server 2005实例教程—电子工业出版社
教学目标
本章主要介绍SQL Server 2005触发器基础知识,包括触 发器基础知识、触发器的类型、inserted和deleted表、 使用SSMS管理触发器、使用T-SQL管理触发器和触发 器的应用等内容。
SQL Server 2005 实例教程
上页
下页
电子工业出版社
触发器是一种特殊类型的存储过程,它在指定的表中的 数据发生变化时自动生效,触发器被调用时自动执行 INSERT、UPDATE、DELETE语句和SELECT语句,实 现表间的数据完整性和复杂的业务规则。 即当对某一个表 对某一个表进行插入、修改或删除操作时被自动调 对某一个表 用 。例如,进行UPDATE、INSERT、DELETE这些操 作时,SQL Server就会自动执行触发器所定义的T-SQL 语句,从而确保对数据的处理必须符合由这些T-SQL语 句所定义的规则。
SQL Server 2005 实例教程
上页
下页
电子工业出版社
二、触发器类型
根据服务器或数据库中调用触发器的操作不同,SQL Server 2005的触发器分为DML触发器和DDL触发器。
SQL Server 2005 实例教程
上页
下页
电子工业出版社
1、DML触发器 (1) DML触发器 DML触发器是当数据库中发生数据操作语言(DML)事件时 要执行的操作。DML事件包括在指定表或视图中修改数据的 INSERT语句、UPDATE语句或DELETE语句。 DML触发器可以查询其他表,还可以包含复杂的T-SQL语句。 系统将触发器和触发它的语句作为可在触发器内回滚的单个事 务对待,如果检测到错误(例如,磁盘空间不足),则整个事 务自动回滚。 (2) DML触发器的优点 DML触发器可通过数据库中的相关表实现级联更改。 DML触发器可以防止恶意或错误的插入、修改及删除操作,并 强行比check约束定义的限制更为复杂的其他限制。 DML触发器可以评估数据修改前后表的状态,并根据该差异采 取措施。
SQL Server 2005 实例教程
上页
下页
电子工业出版社
使用 T-SQL 管理触发器 任务3 任务3
在SQL Server 2005中使用T-SQL 语句完成触 发器的创建、修改、查看和删除等操作。
SQL Server 2005 实例教程
上页
下页
电子工业出版社
教学重点
触发器的类型 使用SSMS管理触发器 使用T-SQL管理触发器 触发器的应用
SQL Server 2005 实例教程
上页
下页
电子工业出版社
本章导航
SQL Server 2005 实例教程
上页
下页
电子工业出版社
触发器概述 一、触发器基本知识
1、触发器简介 数据库管理员在进行数据管理或程序员进行数据 库应用程序开发时,都希望在一个表中的数据插 入或删除后,与之关联的另一个表也能根据业务 规则自动完成插入或删除操作。 触发器类似于“扳机”,具有“一触即发”的特 点。
SQL Server 2005 实例教程
上页
下页
电子工业出版社
三、inserted 表和 deleted 表 任务1 任务1
通过记录的添加、删除和修改等操作,了解 触发器执行时inserted表和deleted表的情况。
SQL Server 2005 实例教程
上页
下页
电子工业出版社
SQL Server为每个触发器创建了两个专用临时表:INSERTED 表和DELETED表 ,它们存放于内存中,而不是存放在数据库中。 这两个表的结构总是与被该触发器作用的表的结构相同 (1)INSERTED表:存放由于INSERT或UPDATE语句的执行 而导致要加到该触发器作用的表中去的所有新行 。即在一个插 入或更新事务处理中,新建行被同时添加到INSERTED表和触 发器表中。 INSERTED表中的行是触发器表中的新行的副本。 (2)DELETED表:存放由于DELETE或UPDATE语句的执行 而导致要从被该触发器作用的表中删除的所有行。即把被作用 表中要删除或要更新的旧值移到DELETED表中 。即在执行 DELETE或UPDATE语句时,行从触发器表中删除,并存放到 DELETED表中。 注意:进行INSERT操作时,只影响INSERTED表 进行DELETE操作时,只影响DELETED表 进行UPDATE操作时,既影响INSERTED表,又影响 DELETED表
SQL Server 2005 实例教程
上页
下页
电子工业出版社
2、触发器的功能 (1)强化约束 能实现由主键和外键所不能保证的、复杂的参照完整性和数据 的一致性。触发器能够实现比CHECK语句更为复杂的约束。 (2)跟踪变化 触发器可以侦测数据库内的操作,从而禁止未经许可的更新和 变化,使数据库的修改、更新操作更安全,数据库运行更稳定。 (3)级联运行 触发器可以侦测数据库内的操作,并自动地级联影响整个数据 库的各项内容。 (4)存储过程的调用 为了响应数据库更新,触发器的操作可以通过调用一个或多个 存储过程,甚至可以通过调用外部过程完成相应操作。 由此可见,触发器可以实现表间的数据完整性和复杂的业务规 则。
SQL Server 2005 实例教程
上页
下页
电子工业出版社
SQL Server 2005 实例教程
上页
下页
电子工业出版社
【课堂实践1】 课堂实践1
操作要求: 操作要求: (1)对Goods表创建插入触发器tr_insert ,实现显示Goods表、inserted表和deleted表中记录 的功能。 (2)往Goods表中插入一条商品号为“111111”的商品记录,验证触发器的执行。 (3)对Goods表创建修改触发器tr_update,实现显示Goods表、inserted表和deleted表中记录 的功能。 (4)将Goods表中商品号为“111111”的商品号修改为“222222”,记录验证触发器的执行。 (5)禁用触发器tr_update。 (6)将Goods表中商品号为“222222”的商品号修改为“333333”,记录验证触发器的执行。 (7)对Goods表创建删除触发器tr_delete,实现显示Goods表、inserted表和deleted表中记录 的功能。 (8)删除Goods表中商品号为“222222”的商品记录,验证触发器的执行。 (9)删除所建的触发器tr_insert、tr_update和tr_delete。
相关文档
最新文档