数据处理是指使用sql的DDL语句,对表中的数据进行增删改查。
1. 插入操作
INSERT INTO table [(column [, column...])]
VALUES (value [, value...]);
1.1 向表中插入空值
1.1.1 隐式方式:在列名表中省略该字段
INSERT INTO departments (department_id,
department_name )
VALUES (30, 'Purchasing');
1.1.2 显示方式:在values子句中执行null值
INSERT INTO departments
VALUES (100, 'Finance', NULL, NULL);
1.2 插入指定的值
--记录当前系统的时间和日期
INSERT INTO employees (employee_id,
first_name, last_name,
email, phone_number,
hire_date, job_id, salary,
commission_pct, manager_id,
department_id)
VALUES (113,
'Louis', 'Popp',
'LPOPP', '515.124.4567',
SYSDATE, 'AC_ACCOUNT', 6900,
NULL, 205, 100);
1.3 从其他表中拷贝
--不必书写 VALUES 子句。
--子查询中的值列表应与 INSERT 子句中的列名对应
INSERT INTO emp2
SELECT *
FROM employees
WHERE department_id = 90;
INSERT INTO sales_reps(id, name, salary, commission_pct)
SELECT employee_id, last_name, salary, commission_pct
FROM employees
WHERE job_id LIKE '%REP%';
2. 更新数据
UPDATE table
SET column = value [, column = value, ...]
[WHERE condition];
2.1 在update中使用子查询
--更新 114号员工的工作和工资使其与205号员工
相同
UPDATE employees
SET job_id = (SELECT job_id
FROM employees
WHERE employee_id = 205),
salary = (SELECT salary
FROM employees
WHERE employee_id = 205)
WHERE employee_id = 114;
3. 删除语句
DELETE FROM table
[WHERE condition];
3.1 在delete中使用子查询
--从emp1表中删除dept1部门名称中含Public字符的部门id
DELETE FROM emp1
WHERE department_id =
(SELECT department_id
FROM dept1
WHERE department_name LIKE '%Public%');
4. 数据库事物
事物是一组逻辑操作单元,使数据从一种状态变成另外一种状态;
数据库事物由一个或者多个DML语句,一个DDL语句,一个DCL语句组成,以第一个DDL语句作为开始,以commit或者rollback语句、ddl语句、用户会话正常结束、异常异常终止作为结束。
使用commit或rollback可以确保数据的完整性,数据改变被提交之前预览、将逻辑上相关的操作分组。
参考文档:尚硅谷