涉及到的问题
–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)

SQL Cookbook—插入、更新与删除的更多相关文章

  1. SQL.Cookbook 读书笔记4 插入更新和删除

    第四章 插入更新和删除 4.1 插入数据 ,'PROGRA','NEW YOURK'); 4.2 从一个表向另一个表中复制 insert into dept_east(deptno,dname,loc ...

  2. SQL Server插入数据和删除数据

    首先在我的Student表中插入几条数据,由于我的表已经创建完成了,所以就没有创建表的 sql 语句了,不过可以看我的上一篇文章: http://www.cnblogs.com/Brambling/p ...

  3. mySQL 教程 第5章 插入 更新与删除数据

    使用SQL Manager管理工具连接到schoolDB.由于三张表都设置了主键,因此,以下练习中插入的记录,主键不能重. 插入数据 1. 练习:为表的所有字段插入数据 为表中所有字段插入数据,可以不 ...

  4. MySQL入门很简单: 9 插入 更新与删除数据

    1. 插入数据:INSERT 1)为表的所有字段插入数据 第一种: 不指定具体的字段名 INSERT INTO 表名 VALUES(值1,值2,...,值n): 第二种:INSERT语句中列出所有字段 ...

  5. mySQL 插入,更新和删除数据

    插入数据: 语法: INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN ); 如 ...

  6. MySQL笔记(三)之数据插入更新与删除

    INSERT INTO INSERT INTO 语句用于向表格中插入新的行. 语法: INSERT INTO 表 VALUES (值1, 值2,....) # 列数必须和值的个数匹配 INSERT I ...

  7. sql查询,更新,删除,操作。

    UPDATE ht_plan_triptime pptSET ppt.lock_status = '1'WHERE ppt.lock_status <> '1'    AND ppt.pl ...

  8. SQL Server XML基础学习之<7>--XML modify() 方法对 XML 数据中插入、更新或删除

    /*------------------------------------------------------------------------------+ #| = : = : = : = : ...

  9. 转载---SQL Server XML基础学习之<7>--XML modify() 方法对 XML 数据中插入、更新或删除

    /*------------------------------------------------------------------------------+ #| = : = : = : = : ...

随机推荐

  1. 买了个vultr的vps,准备把博客转过去,顺便记录一点操作。

    1.shadow影子socks梯子已经搭好了,步骤: apt-get install python-pip pip install shadowsocks 任意目录创建配置文件json(ss可以在很多 ...

  2. Windows下Mongodb安装及配置(转载)

    转载(https://blog.csdn.net/liang377122210/article/details/79062681) MongoDB的安装很简单,设置好安装路径后,一直Next直到安装结 ...

  3. Nutch2.x 集成ElasticSearch 抓取+索引

    http://blog.csdn.net/eryk86/article/details/14111811   使用https://github.com/apache/nutch.git导入nutch项 ...

  4. ASP.NET Core URL Rewrite中间件

    URL重写是基于一个或多个预置规则修改请求URL的行为.URL重写在资源位置和访问地址之间创建了一种抽象,这样二者之间就减少了紧密的联系.URL重写有多种适用的场景: 临时或永久移动或替换服务器资源, ...

  5. [HAOI2008] 排名系统

    题目链接:戳我 要注意因为数可能会对应很多人,但是输出的时候要按照添加的顺序输出.所以我们不能将相同值的节点合并,用set维护.就算值相同也只能新开节点. 然后就没有什么了...懒得写哈希表..直接上 ...

  6. nowcoder(牛客网)OI测试赛2 解题报告

    qwq听说是一场普及组难度的比赛,所以我就兴高采烈地过来了qwq 然后发现题目确实不难qwq.....但是因为蒟蒻我太蒻了,考的还是很差啦qwq orz那些AK的dalao们qwq 赛后闲来无事,弄一 ...

  7. tf-idf sklearn

    第一步:语料转化为词袋向量 step 1. 声明一个向量化工具vectorizer: 本文使用的是CountVectorizer,默认情况下,CountVectorizer仅统计长度超过两个字符的词, ...

  8. C - Maximum of Maximums of Minimums(数学)

    C - Maximum of Maximums of Minimums You are given an array a1, a2, ..., an consisting of n integers, ...

  9. 关键字的使用 pass break continue

    # ### 关键字的使用 # (1)pass 过 作用 作站位用的 if 5==5: pass i = 0 while i <5: pass #约定俗成,在循环里面什么也不行的情况下,给友好提示 ...

  10. POJO和Javabean的区别:

    pojo:存粹java类,不继承,不实现.(不受限制的java类),多用于指数据库的映射对象javaBean:可复用组件,由容器(tomcat)创建,因此应具有无参构造器,不能跨进程访问,通常要无方法 ...