SQL基础
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL基础相关的知识,希望对你有一定的参考价值。
SQL
|
SQL 是用于访问和处理数据库的标准计算机语言;
全称为结构化查询语言(Structured Query Language), 是一种 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言;
SQL仅仅是一种最基本的标准,许多DBMS厂商开发了自己的SQL版本,但为了与ANSI标准兼容,对ANSI SQL中最基本的命令均作了实现,除此之外还扩展了各自的一些命令(专有扩展),这也是SQL Server、Oracle、mysql等的SQL语法大同小异的原因所在。
|
T-SQL
|
全称Transact-SQL,是SQL Server 专有的SQL扩展
|
PL-SQL
|
全称Procedural Language-SQL,Oracel 的专有SQL 扩展
|
事务
|
事务是单个的工作单元。如果某一事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中的永久组成部分。如果事务遇到错误且必须取消或回滚,则所有数据更改均被清除。事务具有4个性质(ACID), 4种隔离级别.
|
存储过程
|
SQL 语句和可选控制流语句的预编译集合。以一个名称存储并作为一个单元处理。 它们存储在 SQL 数据库中,并可以通过来自应用程序的一个调用而运行。
|
触发器
|
当修改指定表中的数据时执行的存储过程,是无需(也不能)显示调用,可自动执行的特殊的存储过程。
|
级联操作
|
对于在表之间强制引用完整性的关系,在更新(更改和删除)主表中的记录时对相关表中的所有相关记录进行的一种更新。级联操作有 4 种选项(NO ACTION, CASCADE, SET NULL, SET DEFAULT,) ,默认为NO ACTION(即级联关闭),因此如若不想自己写触发器,在创建外键约束时需要指定合适的级联选项(开启级联)。级联通过在子表中定义外键约束时定义到父表上。
|
-
首先执行由原始 DELETE 或 UPDATE 直接导致的所有级联引用操作。
-
如果为受影响的表定义了任何 AFTER 触发器,则在执行完所有级联操作后激发这些触发器。 这些触发器将按与级联操作相反的顺序激发。 如果单个表中存在多个触发器,它们将按随机顺序激发,除非专门为表指定了第一个或最后一个触发器。 此顺序是使用 sp_settriggerorder 指定的。
-
如果多个级联链源自作为 UPDATE 或 DELETE 操作的直接目标的表,则这些链激发各自的触发器的顺序是不定的。 但是,只有当一条链激发其所有的触发器之后,另一条链才开始激发。
-
不管是否影响任何行,作为 UPDATE 或 DELETE 操作的直接目标的表上的 AFTER 触发器都会激发。 在这种情况下,级联操作不会影响其他表。
-
如果上面的任一触发器对其他表执行 UPDATE 或 DELETE 操作,这些操作将启动辅助级联链。 在激发所有主链上的所有触发器后,会分别为每个 UPDATE 或 DELETE 操作处理这些辅助链。 可能会为后续的 UPDATE 或 DELETE 操作递归重复此过程。
-
在触发器内执行 CREATE、ALTER、DELETE 或其他数据定义语言 (DDL) 操作可能会导致 DDL 触发器激发。 之后,就可能会执行启动其他级联链和触发器的 DELETE 或 UPDATE 操作。
-
如果任何特定的级联引用操作链中产生错误,都将引发错误并且不会在该链中激发任何 AFTER 触发器,而创建该链的 DELETE 或 UPDATE 操作将回滚。
- 具有 INSTEAD OF 触发器的表不能同时具有指定级联操作的 REFERENCES 子句。 但是,级联操作目标表的 AFTER 触发器可对另一个表或视图执行 INSERT、UPDATE 或 DELETE 语句,这将激发为该对象定义的 INSTEAD OF 触发器。
以上是关于SQL基础的主要内容,如果未能解决你的问题,请参考以下文章