在线做效果图的网站有哪些,网络营销策划心得体会,淄博营销网站建设,奖励网站源码文章目录 一、介绍二、DML#xff1a;数据操纵语言三、DDL#xff1a;数据定义语言四、DCL#xff1a;数据控制语言五、TCL#xff1a;事务控制语言六、SELECT 查询时锁定 一、介绍
在Oracle数据库中#xff0c;掌握和运用DML、DDL、DCL和TCL语句是必不可少的技能。 这些… 文章目录 一、介绍二、DML数据操纵语言三、DDL数据定义语言四、DCL数据控制语言五、TCL事务控制语言六、SELECT 查询时锁定 一、介绍
在Oracle数据库中掌握和运用DML、DDL、DCL和TCL语句是必不可少的技能。 这些语句在数据库的增删改查、结构设计、权限控制和事务管理中发挥着重要作用。 通过实际例子我们将更深入地理解这些语句的应用。
二、DML数据操纵语言
DMLData Manipulation Language用于对数据库中的数据进行增删改查操作。主要包括以下几种语句
INSERT用于向表中插入新数据。 UPDATE用于修改表中现有数据。 DELETE用于删除表中的数据。 SELECT用于查询表中的数据。
注意 在Oracle数据库中当你插入数据后需要使用COMMIT语句来提交修改以使更改永久生效。 如果你在插入数据后发现有问题或错误可以在未发生COMMIT之前使用ROLLBACK语句来回滚刚才的插入操作。
通过使用ROLLBACK语句你可以撤销最近的未提交更改将数据库恢复到插入操作之前的状态。这为你提供了在数据插入出现问题时纠正错误的机会。
但请注意如果你在插入数据后已经执行了COMMIT语句那么你就无法使用ROLLBACK语句撤销该插入操作。这是因为COMMIT语句将更改永久保存到数据库中无法回滚。
INSERT案例 假设我们有一个employees表包含员工信息。我们可以使用DML语句进行数据的增删改查操作
1.INSERT语句向employees表中插入一条新记录如
INSERT INTO employees (id, name, age) VALUES (1, John Doe, 30);或者
INSERT INTO employees VALUES (1, John Doe, 30);ROLLBACK;–撤销刚才的插入 COMMIT;插入生效
2.UPDATE语句修改employees表中现有记录的年龄如
UPDATE employees SET age 31 WHERE id 1;ROLLBACK;–撤销刚才的插入 COMMIT;插入生效
3.DELETE语句删除employees表中的某条记录如
DELETE FROM employees WHERE id 1;ROLLBACK;–撤销刚才的插入 COMMIT;插入生效
4.TRUNCATE语句,删除employees表中的所有记录如
TRUNCATE TABLE employees;注意 TRUNCATE语句不能回滚一旦执行表中的数据将永久删除。 TRUNCATE语句将重置表的计数器所以在执行TRUNCATE后表中的自增字段将从起始值重新开始计数。 TRUNCATE语句是一种高效的清空表数据的方法特别适用于需要清空整个表而不需要逐行删除数据的场景。
5.SELECT语句查询employees表中的数据如
SELECT * FROM employees WHERE age 25;三、DDL数据定义语言
DDLData Definition Language是数据库管理系统中用于定义和管理数据库对象的语言。它包括创建、修改和删除数据库、表、索引、视图等对象。
CREATE用于创建数据库对象如表、视图、索引等。 ALTER用于修改数据库对象的结构。 DROP用于删除数据库对象。
1.CREATE TABLE: 创建表
CREATE TABLE employees (id INT PRIMARY KEY,name VARCHAR(50),age INT,salary DECIMAL(10,2)
);2.ALTER TABLE: 修改表结构
ALTER TABLE employeesADD COLUMN email VARCHAR(100);3.DROP TABLE: 删除表
DROP TABLE employees;4.CREATE INDEX: 创建索引
CREATE INDEX idx_employees_name ON employees (name);5.ALTER INDEX: 修改索引
ALTER INDEX idx_employees_name RENAME TO idx_employees_last_name;DROP INDEX: 删除索引
DROP INDEX idx_employees_last_name;7.CREATE VIEW: 创建视图
CREATE VIEW employee_view ASSELECT id, name, age FROM employees WHERE age 30;8.ALTER VIEW: 修改视图
ALTER VIEW employee_view ASSELECT id, name, age, salary FROM employees WHERE age 25;9.DROP VIEW: 删除视图
DROP VIEW employee_view;四、DCL数据控制语言
DCLData Control Language是数据库管理系统中用于控制数据库访问权限和事务操作的语言。它包括授权、回收权限以及管理事务等操作。
GRANT用于授予用户或角色访问数据库的权限。 REVOKE用于收回用户或角色的访问权限。
GRANT授权用户或用户组访问权限
GRANT SELECT, INSERT ON employees TO user1;REVOKE回收用户或用户组的访问权限
REVOKE INSERT ON employees FROM user1;五、TCL事务控制语言
TCLTransaction Control Language用于管理数据库中的事务确保数据的完整性和一致性。它允许用户对数据库中的操作进行逻辑分组并在需要时进行提交或回滚。
COMMIT用于提交事务将修改永久保存到数据库中。 ROLLBACK用于回滚事务撤销对数据库的修改。 SAVEPOINT用于在事务中设置保存点以便在必要时回滚到特定状态。
1.COMMIT将事务中的所有修改保存到数据库成功提交事务。
BEGIN TRANSACTION;
UPDATE customer SET balance balance - 100 WHERE id 1;
INSERT INTO transaction (customer_id, amount) VALUES (1, -100);
COMMIT;2.ROLLBACK撤销事务中的所有修改回滚到事务开始前的状态。
BEGIN TRANSACTION;
UPDATE customer SET balance balance - 100 WHERE id 1;
INSERT INTO transaction (customer_id, amount) VALUES (1, -100);
ROLLBACK;3.SAVEPOINT 和 ROLLBACK TO SAVEPOINT设置和回滚到保存点一个特定时间点的事务状态。
BEGIN TRANSACTION;
UPDATE customer SET balance balance - 100 WHERE id 1;
SAVEPOINT savepoint1;
UPDATE customer SET balance balance 100 WHERE id 2;
ROLLBACK TO SAVEPOINT savepoint1;
COMMIT;六、SELECT 查询时锁定
FOR UPDATE这个语句常常用于防止并发时多个事务同时修改或读取同一条记录 以保证数据的安全性和一致性它将锁定所选行直到事务结束时才会释放该行的锁定。
FOR UPDATE 语句锁定所选行的示例
BEGIN TRANSACTION;-- 选取行并加锁
SELECT * FROM my_table WHERE id 1 FOR UPDATE;-- 在事务中修改所选行
UPDATE my_table SET value new value WHERE id 1;COMMIT;在以上示例中SELECT * FROM my_table WHERE id 1 FOR UPDATE 会选中 ID 为 1 的行并把它们所在的行锁定以避免其他事务同时修改该行。在事务结束时这个锁定会被释放。