DML(Data Manage Language)语言的用途
DML语言,有以下用途:
- 往一个表中添加新行
- 更改一个表中现有的行
- 从一个表中删除掉现有的行
DML vs 事务
一个事务由一组构成一个逻辑操作的DML语句组成。
DML语言的种类
DML分为INSERT,UPDATE和DELTE。
INSERT语句
使用INSERT语句向表中增加新行,使用这种方法一次只能插入一行数据。
INSERT INTO table [(column [, column...])]
VALUES (value, [, value...]);
插入特殊的值
SYSDATE函数取出当前日期的时间
INSERT INTO emp(empno, ename, job, mgr,
hiredate, sal, comm, deptno)
VALUES (7196, 'GREEN', 'SALESMAN', 7782,
SYSDATE, 2000, NULL, 10);
插入值中引用函数
INSERT INTO emp
VALUES (2296, 'AROMANO', 'SALESMAN', 7782,
TO_DATE('FEB 3, 1997', 'MON DD, YYYY')
1300, NULL, 10);
从另一个表中拷贝行
可以通过在INSERT语句中添加子查询,从另一个表中拷贝行。但是要注意:
- 不要使用 VALUES 子句
- 子查询中的列要与INSERT子句中的列相匹配
INSERT INTO managers(id, name, salary, hiredate)
SELECT empno, ename, sal, hiredate
FROM emp
WHERE job = 'MANAGER';
UPDATE 语句
可以使用UPDATE语句更改现有的行,如果有需要的话,可以一次更改多行。
UPDATE table
SET column = value [, column = value, ...]
[WEHRE condition];
更改表中的行
- 使用WHERE子句来指定要修改的行
SQL > UPDATE emp
SET deptno = 20;
WHERE empno = 7782;
- 如果忽略WHERE子句,那么句子中所有的值都将被更改。
SQL > UPDATE emp
SET deptno = 20;
- 用多列子查询进行修改
更改第7698号雇员的工作和部门,使之与第7499号雇员相同:
SQL > UPDATE emp
SET (job, deptno) =
(SELECT job, deptno
FROM emp
WHERE empno = 7499)
WHERE empno = 7698;
- 使用子查询进行修改
SQL > UPDATE employees
SET deptno =
(SELECT deptno
FROM emp
WHERE empno = 7788)
WHERE job = ( SELECT job
FROM emp
WHERE empno = 7788);
DELETE 语句
可以使用DELETE语句从表中删除现存的行。
DELETE [FROM] table
[WHERE condition];
网友评论