📜  TCL完整表格

📅  最后修改于: 2021-09-10 01:58:56             🧑  作者: Mango

TCL代表事务控制语言。这些命令用于维护数据库的一致性和管理 DML 命令所做的事务。

事务是对存储在 DBMS 中的数据执行的一组 SQL 语句。每当进行任何事务时,这些事务都会临时发生在数据库中。因此,为了使更改永久化,我们使用TCL命令。

TCL 命令是:

  1. 犯罪
  2. 回滚
  3. 保存点

1. 提交:
该命令用于永久保存数据。
每当我们执行任何 DDL 命令(如 -INSERT、DELETE 或 UPDATE)时,如果数据没有永久存储,这些命令都可以回滚。所以为了更安全,使用 COMMIT 命令。

句法:

commit; 

2. 回滚:
该命令用于获取数据或将数据恢复到上次保存点或上次提交状态。如果由于某些原因插入、删除或更新的数据不正确,您可以将数据回滚到特定的保存点,或者如果保存点未完成,则回滚到上次提交的状态。

句法:

rollback;

3.保存点:
该命令用于临时保存特定点的数据,以便在需要时可以回滚到该特定点。

语法

Savepoint A; 

考虑以下表学生:

Name Marks
John 79
Jolly 65
Shuzan 70

UPDATE STUDENT 
SET NAME = ‘Sherlock’ 
WHERE NAME = ‘Jolly’;

COMMIT;
ROLLBACK; 

通过使用此命令,您可以使用COMMIT命令更新记录并永久保存它。

现在在 COMMIT 之后:

Name Marks
John 79
Sherlock 65
Shuzan 70

如果未执行提交,则可以回滚更新命令所做的更改。

现在,如果没有执行COMMIT。

UPDATE STUDENT 
SET NAME = ‘Sherlock’ 
WHERE STUDENT_NAME = ‘Jolly’; 

更新命令后,表将是:

Name Marks
John 79
Sherlock 65
Shuzan 70

现在如果对上表执行ROLLBACK:

rollback; 

回滚后:

Name Marks
John 79
Jolly 65
Shuzan 70

如果在上表中执行了保存点:

INSERT into STUDENT 
VALUES ('Jack', 95);

Commit;

UPDATE NAME 
SET NAME= ‘Rossie’ 
WHERE marks= 70;

SAVEPOINT A;

INSERT INTO STUDENT 
VALUES (‘Zack’, 76);

Savepoint B;

INSERT INTO STUDENT 
VALUES (‘Bruno’, 85);

Savepoint C;

SELECT * 
FROM STUDENT; 

Name Marks
John 79
Jolly 65
Rossie 70
Jack 95
Zack 76
Bruno 85

现在,如果我们回滚到保存点 B:

Rollback to B; 

结果表将是-

Name Marks
John 79
Jolly 65
Rossie 70
Jack 95
Zack 76

现在,如果我们回滚到保存点 A:

Rollback to A; 

结果表将是-

Name Marks
John 79
Jolly 65
Rossie 70
Jack 95

所以这完全是关于 SQL(事务控制语言)中的TCL 命令和示例。