连接:大多数查询都需要多个表中的信息。连接是一种关系数据库操作,它从两个表中检索数据,根据连接规范匹配它们的行,最终生成一个表。连接有不同的类型,每个连接都是一个二元操作,即把一个表连接到另一个表上,这两个表可以相同,因为表可以和自身连接其来。
内连接基本语法:
select <select list>
from left-table INNER JOIN right-table
ON <join specification>
INNER JOIN 是一个二元操作;ON关键字表示连接规范的开始,连接规范可以包含能用于where子句的任何条件。
外连接:有三种类型:左外连接、右外连接、全外连接。
其他连接:SQL标准还提供了FULL、OUTER JOIN、UNION JOIN、CROSS JOIN以及NATURAL JOIN。
full outer join是left和right outer连接的组合,它检索两个表中的所有行。
事务:事务是作为单个逻辑工作单元执行的一系列操作,这些操作作为一个整体一起向系统提交,要么都执行要么都不执行。
事务是一个不可分割的工作逻辑单元。
事务的特性:简称ACID属性。
原子性(Atomicity):事务是一个完整的操作,事务的各步操作是不可分的(原子的);要么都执行,要么都不执行。
一致性(Consistency):当事务完成时,数据必须处于一致状态。
隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务。
永久性(Durability):事务完成后,它对数据库的修改被永久性保持,事务日志能够保持事务的永久性。
T-SQL使用下列语句来管理事务:
开始事务:Begin transaction
提交事务:Commit transaction
撤销事务:rollback transaction
一旦事务提交或回滚,则事务结束。
事务的分类:
显示事务:用Begin transaction明确指定事务的开始,这是最常用的事务类型。
隐性事务:通过设置SET IMPLICIT_TRANSACTIONS. ON语句将隐性事务模式设置为打开,下一个语句自动启动一个新事务,当该事务完成时,再下一个T-SQL语句又将启动一个新事务。
自动提交事务:这是SQL Server的默认模式,它将有条单独的T-SQL语句视为一个事务,如果成功执行,则自动提交,如果错误则自动回滚。