数据处理包括增、删、改的操作。
一、插入操作(增)- - insert into:
1、插入数据:
(1)、创建表:
create table empl00
as
select employee_id,last_name,hire_date,salary from employees
where 1=2
(2)、查询显示表的结构:
desc empl00
(3)、向表中插入数据(增):
insert into empl00
values(1001,'AA',sysdate,10000)
或
insert into empl00
values(1002,'BB',to_date('1998-12-21','yyyy-mm-dd'),20000)
(4)、也可以将某属性值先添加为空,后期修改时再添加
(5)、如果直接只给某几个的属性赋值,报错:
insert into empl00
values(1002,'BB',to_date('1998-12-21','yyyy-mm-dd'))
(6)、如果直接只给某几个的属性赋值,正确的方式:
insert into empl00(employee_id,last_name,hire_date)
values(1002,'BB',to_date('1998-12-21','yyyy-mm-dd'))
(7)、有的属性设置不能输入空值,如果想赋空值,会显示以下错误:
ORA-01400: 无法将 NULL 插入 ("SCOTT"."EMPL00"."HIRE_DATE")
2、从其他表中拷贝数据:
(1)、向数据表中添加插入其他数据表中已经有的属性值:
insert into empl00(employee_id,hire_date,last_name,salary)
select employee_id,hire_date,last_name,salary
from employees
where department_id=80
3、创建脚本:
(1)、形式:
insert into empl00(employee_id,last_name,salary,hire_date)
values(&id,'&name',&salary,'&hire_date')
结果样式(插入的属性靠自己输入):
讲约束的时候会提如何处理重复问题。
二、更新数据(改)- - update:
1、更新的基本语法:
(1)、将179号的工资改为12000:
update empl00
set salary=12000
where employee_id=179 ;
(2)、SQL> Commit ; 相当于点击保存按钮。
(3)、RollBack ; 回滚。
2、在UPDATE语句中使用子查询:
(1)、更新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
(2)、调整与employee_id为200的员工job_id相同的员工的department_id为employee_id为100的员工的department_id。
update employees
set department_id = (
select department_id
from employees
where employee_id=100
)
where job_id = (
select job_id
from employees
where employee_id=200
)
(3)、更新操作的错误:
三、删除数据(删)- - delete:
1、题目要求:
实现:
delete from employees
where department_id = (
select department_id
from departments
where department_name like '%Public%'
)
ORA-02292: 违反完整约束条件 (SCOTT.DEPT_MGR_FK) - 已找到子记录
(1)、问题:ORA-02292: 违反完整约束条件 (SCOTT.DEPT_MGR_FK) - 已找到子记录
delete from departments
where department_id = 60
描述:因为在employees表中一定也有一个员工部门id为60的;因为employees表中由60号部门的员工,当把60号部门删掉的时候,程序不知道employees表中60号部门的人;因为在employees表中找到了子记录,所以不能让删除。
(2)、删除中的数据完整性错误:
总:
Truncate不可回滚,而增、删、改可以回滚。