08、SQL--数据处理(1)

数据处理包括增、删、改的操作。

 

 

一、插入操作(增)- - 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表中一定也有一个员工部门id60的;因为employees表中由60号部门的员工,当把60号部门删掉的时候,程序不知道employees表中60号部门的人;因为在employees表中找到了子记录,所以不能让删除。

 

(2)、删除中的数据完整性错误:

 

总:

        

 

Truncate不可回滚,而增、删、改可以回滚。

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值