作用于表的触发器vs作用于数据库的触发器(包含SQL语言与触发器个别相关知识)

首先,百度一下SQL触发器有多少种

(来自百度百科:https://baike.baidu.com/item/SQL%E8%A7%A6%E5%8F%91%E5%99%A8#3)

然后有关于缩写的SQL语言一共有四种

(来源:https://www.cnblogs.com/fan-yuan/p/7879353.html)

而在逐个查找定义的时候发现实际上有五种

ps.关于TCL的解释:(Tool Command Language)工具命令语言,一种脚本语言。 由John Ousterhout创建。 TCL很好学,功能很强大。TCL经常被用于快速原型开发,脚本编程,GUI和测试等方面。

(来自百度百科:https://baike.baidu.com/item/TCL%E8%AF%AD%E8%A8%80/8377624?fr=aladdin)

咳、话题扯远了

那么,简而言之,SQL触发器主要有以下:

DML(Data Manipulation Language)数据操纵语言,针对表数据(insert,update,delete)

DDL(Data Definition Language)数据定义语言,针对表结构(drop_table,alter_table,create_table)

DCL(Data Control Language)数据控制语言,针对权限(grant,deny,revoke)

而我们标题提到的就是DDL和DML了

DDL语法结构:

create trigger trigger_name

on database

for drop_table | alter_table | create_table

as

[print  | SQL语句块]

本人实例:

触发语句:

update student

set name=‘寂子‘

where student.stu_id=‘50101‘

DML语法结构:

create trigger trigger_name

on table_name

for insert | update | delate

as

[print  | SQL语句块]

总结:DDL比DML的约束范围更加大,限制了整个数据库的操作,而DML仅局限于某个表上的操作。

原文地址:https://www.cnblogs.com/donelyorjune/p/11109283.html

时间: 2024-10-18 23:03:01

作用于表的触发器vs作用于数据库的触发器(包含SQL语言与触发器个别相关知识)的相关文章

[转]Hibernate不能自动建表解决办法及Hibernate不同数据库的连接及SQL方言

最近开始学Hibernate,看的是李刚的那本<轻量级java ee企业应用实战>.头一个hibernate程序,我原原本本的按照书上例子写下来,同时只是改动了些mysql的连接参数,并且在mysql中新建了一个hibernate数据库,仅此而已.然而预想不到的事情发生了……程序写好之后,运行,报错Hibernate: insert into news_table (title, content) values (?, ?) Exception in thread "main&quo

MySQL触发器的作用

触发器的作用 触发器是自动化的SQL程序,由插入.更新和删除事件来触发. 当面对复杂的业务关系,在程序上难以实现时. 当程序上实现较为复杂,希望在数据库内实现时. 触发器的语法 CREATE TRIGGER  <触发器名称> {BEFORE|AFTER} {INSERT |UPDATE |DELETE} ON <表名称> FOR EATH ROW <触发器SQL语句> 创建简单的触发器 创建数据库 mysql> use db1; ERROR 1049 (42000

form表单的name作用

表单的name作用:name 属性用于对提交到服务器后的表单数据进行标识 注意:只有设置了 name 属性的表单元素才能在提交表单时传递它们的值. 简单来说,name就是提交到后台的索引,比如在复选框中都要设置成name="hobby"说明几个复选框都在爱好下. (1)name如何分组: 具有相同name属性radio为同一组 <lable>性别</lable> <input type="radio" name="sex&qu

java基础面试题:switch语句能否作用在byte上,能否作用在long上,能否作用在String上?

package com.swift; public class Switch_Test { public static void main(String[] args) { /* * switch语句能否作用在byte上,能否作用在long上,能否作用在String上? */ byte zijie = 3; System.out.println(zijie); long changzheng=3; switch (changzheng) { //cannot switch on a value

SQL Server:触发器详解

SQL Server:触发器详解 1. 概述 2. 触发器的分类 3. Inserted和Deleted表 4. 触发器的执行过程 5. 创建触发器 6. 修改触发器: 7. 删除触发器: 8. 查看数据库中已有触发器: 9. “Instead of”相关示例: 10. “After”触发器 11. 参考资源 1. 概述 触发器是一种特殊的存储过程,它不能被显式地调用,而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活. 所以触发器可以用来实现对表实施复杂的完整性约束. 2. 触发器的分类

SQL中的触发器

触发器 (一)理解: 是一种特殊的存储过程,它不能显式地调用,而是进行insert.delete.update时被自动低激活.总结一句话就是:用来实现对标实施完整性约束的. SQL Server为每个触发器都创建了两个表:inserted和deleted表.它们是系统维护的,它们存在在内存中,不是在数据库中,这连个标的结构总是与被该触发器作用的标的结构相同.触发器执行与该触发器相连的这两个表也被删除. (二)类型: Instead of 和After触发器 instead of 触发器用于替代(

SQL Server 使用触发器(trigger)发送电子邮件

sql 使用系统存储过程 sp_send_dbmail 发送电子邮件语法: sp_send_dbmail [ [ @profile_name = ] 'profile_name' ] [ , [ @recipients = ] 'recipients [ ; ...n ]' ] [ , [ @copy_recipients = ] 'copy_recipient [ ; ...n ]' ] [ , [ @blind_copy_recipients = ] 'blind_copy_recipien

SQL Server 创建触发器(trigger)

触发器简介: 触发器是一种特殊的存储过程,它的执行不是由程序调用,也不是手动执行,而是由事件来触发.触发器是当对某一个表进行操作.例如:update.insert.delete这些操作的时候,系统会自动调用执行该表上对应的触发器. 触发器分类: 1.DML( 数据操纵语言 Data Manipulation Language)触发器:是指触发器在数据库中发生 DML 事件时将启用.DML事件是指在表或视图中对数据进行的 insert.update.delete 操作的语句. 2.DDL(数据定义

SQL Server DDL 触发器(Trigger)-- 创建数据库级别的DDL触发器

SQL Server DDL 触发器(Trigger)-- 创建数据库级别的DDL触发器 以下针对某个数据库在创建数据表时调用触发器,并将创建该数据表的用户账户写入到Windows的Event Log中. CREATE TRIGGER reminder ON DATABASE FOR CREATE_TABLE AS DECLARE @str NVARCHAR(100) SET @str=suser_sname() + N'create a new table' RAISERROR(@str,10