oracle数据库笔记1oracleSQL操纵语言insertupdate setdelete

SQL的数据操纵功能:

1.数据插入 insert

---------------------------------------------------------------------------------------

 插入命令一般形式 :

SQL>insert  into <表名>[(列名表)]

                   values(<值表>)

sql>insert into emp(empno,ename,sal,deptno)

  values(7594,'CARTER',500,20);

带参数插入语句形式:

SQL>insert into <表名>   values(<参数表>)

sql>insert into dept

   values(&deptno,'&dname','&loc');

用带有子查询的插入语句(查询插入):

通过查询子句从某表中找出所需数据,拷贝到现行表中,用查询代替values子句实现

SQL>insert into <表名>[(列名表)]   <select 语句>

sql>insert into emp2(empno,ename,deptno)

   select empno,ename,deptno

  from emp

  where deptno in(20,30,40);

若命令中缺省“列名表”,则用 select * 将满足条件的所有行的各列数据插入

若指出列名,则要与select后指定的列名要位置一一对应,类型相同,字段名可不同于查询表

插入空值

sql>insert into dept   values(50,'DEC',NULL);

插入日期值

SQL>insert into emp(empno,ename,hiredata)

  values(7655,'MARY','10-MAY-96');

要想改变日期表示格式, 用函数 to-date实现: to_date(char,format)

sql>insert into emp(empno,ename,hiredate)

  values(7655,'MARY',to_date('5/10/96','MM/DD/YYYY'))

-------------------------------------------------------------------------------------------

2.数据修改命令 UPDATE  SET

直接赋值:

SQL>update  <表名>

    set <列名1>=<表达式1> [, <列名2>=<表达式2>…]

      [where<条件>] ;

将雇员ALLEN提升为经理,工资增至$2500,佣金增加40%

SQL>update emp

    set job='MANAGER',sal=2500,comm=1.4*comm

    where ename='ALLEN';

对20号部门中所有经理或分析员提高工资15%

sql>update emp

    set sal=sal*1.15

    where job IN('MANAGER','ANALYST') AND deptno=20;

利用子查询修改数据

给在 NEW  YORK工作的雇员提高工资5%

sql>update emp  

   set sal=1.05*sal

    where deptno IN(select deptno from dept

                            where loc='NEW YORK');

使所有销售人员的工资等于其平均工资1.1倍

sql>update emp

    set sal=(select 1.1*avg(sal) from emp

                where job='SALESMAN' )

    where job='SALESMAN';

3.数据删除 delete

SQL>delete from <表名>

    [where<条件>]

sql>delete from emp2

    where sal>500;

原文地址:https://www.cnblogs.com/wust221/p/3061132.html