zoukankan      html  css  js  c++  java
  • SQL Cookbook—插入、更新与删除

    涉及到的问题
    –1、从一个表向另外的表中复制行
    –2、复制表定义(包含表记录)
    –3、一次向多个表中插入记录
    –4、
    –5、当相应行存在时更新
    –6、用其他表中的值更新
    –7、删除违反参照完整性的记录

                                                       
    –1、从一个表向另外的表中复制行
    insert into dept_test (deptno, dname, loc) select deptno, dname, loc from dept where deptno=10

    –2、复制表定义(包含表记录)
    create table dept_test as select deptno, dname, loc from dept where deptno=10

    –3、一次向多个表中插入记录
    问题描述
    有时需要将一个表中的数据按照一定的条件分别一次性插入到多个表中,怎样实现?
    insert all
    when loc in (upper('new york', upper('boston'))) then
       into dept_test_1 (deptno, dname, loc) values (deptno, dname, loc)
    when loc=upper('chicago') then
       into dept_test_2 (deptno, dname, loc) values (deptno, dname, loc)
    else
       into dept_test_3 (deptno, dname, loc) values (deptno, dname, loc)
    select deptno, dname, loc from dept

    –4、
    insert into (select empno, ename, job from emp) values (1, 'zhangsan', 'java')

    –5、当相应行存在时更新
    方法一
    UPDATE emp
    SET sal=sal*1.20
    WHERE empno in (SELECT empno FROM emp_bonus)
    方法二
    UPDATE emp
    SET sal=sal*1.20
    WHERE exists (SELECT null FROM emp_bonus where emp.empno=emp_bonus.empno)

    –6、用其他表中的值更新
    UPDATE emp e
    SET (e.sla, e.comm)=(SELECT ns.sal, ns.sal/2
                                     FROM new_sal ns
                                     WHERE ns.deptno=e.deptno)
    WHERE EXISTS( SELECT NULL
                  FROM  new_sal ns
                  WHERE ns.deptno=e.deptno)

    –7、删除违反参照完整性的记录
    例如,某些员工被分配到了一个不存在的部门中,要将这些员工删除。
    方法一(推荐)
    delete from emp where not exists (select * from dept where dept.deptno=emp.deptno)
    方法二
    delete from emp where emp.deptno not in (select deptno from dept where dept.deptno is not null)

  • 相关阅读:
    关于浏览器的内核 版本 发展 详解
    js判断浏览器内核 及ie的版本问题
    插入flash代码
    大前端学习笔记【七】关于CSS再次整理
    其实,程序员没有我想象得那么简单(算是2016的简单总结吧...)
    大前端学习笔记整理【七】HTTP协议以及http与https的区别
    大前端学习笔记整理【六】this关键字详解
    大前端学习笔记整理【五】关于JavaScript中的关键字——this
    大前端学习笔记整理【五】rem与px换算的计算方式
    大前端学习笔记整理【四】LESS基础
  • 原文地址:https://www.cnblogs.com/linjiqin/p/3152583.html
Copyright © 2011-2022 走看看