oracle DML
时间: 2025-01-06 17:42:23 浏览: 7
### Oracle 数据库 DML 操作详解
#### 插入数据 (INSERT)
`INSERT` 语句用于向表中插入新记录。可以一次性插入单条或多条记录。
```sql
-- 单行插入
INSERT INTO stu1 VALUES ('0002', '笑笑', '女', 22, TO_DATE('1997-03-14', 'YYYY-MM-DD'), '计算机科学');
-- 多行插入
INSERT ALL
INTO stu1 VALUES ('0003', '涛涛', '男', 23, TO_DATE('1996-08-15', 'YYYY-MM-DD'), '机械工程')
INTO stu1 VALUES ('0004', '芳芳', '女', 21, TO_DATE('1998-11-22', 'YYYY-MM-DD'), '艺术设计')
SELECT * FROM dual;
```
此操作会改变数据源中的实际数据[^3]。
#### 更新现有数据 (UPDATE)
当需要修改已存在的记录时,可利用 `UPDATE` 命令来更新特定条件下的多列值:
```sql
UPDATE stu1 SET age = 25 WHERE name = '牛牛';
```
上述 SQL 将把名为 "牛牛" 的学生年龄更改为 25 岁。值得注意的是,在执行此类更改前应当确保事务处于合适的状态以便能够回滚不必要的改动[^4]。
#### 删除指定的数据 (DELETE)
通过 `DELETE` 可以移除符合条件的一行或多行记录;如果省略 `WHERE` 子句,则整个表内的所有行都将被删除:
```sql
DELETE FROM stu1 WHERE id = '0001'; -- 删除id为'0001'的学生信息
```
为了保持数据一致性并防止意外丢失重要资料,通常会在实施大规模删除动作之前先创建备份副本。
#### 控制并发访问 (LOCK TABLE 和 FOR UPDATE)
有时为了避免其他会话干扰当前正在进行的操作,可以在查询的同时锁定某些行或整张表格直到显式释放锁为止:
```sql
SELECT * FROM stu1 WHERE department = '物理系' FOR UPDATE; -- 锁定选修物理专业的学生的记录
```
这种机制有助于维护读取稳定性和写入安全性,特别是在高负载环境下尤为有用。
阅读全文