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)
SQL Cookbook—插入、更新与删除的更多相关文章
- SQL.Cookbook 读书笔记4 插入更新和删除
第四章 插入更新和删除 4.1 插入数据 ,'PROGRA','NEW YOURK'); 4.2 从一个表向另一个表中复制 insert into dept_east(deptno,dname,loc ...
- SQL Server插入数据和删除数据
首先在我的Student表中插入几条数据,由于我的表已经创建完成了,所以就没有创建表的 sql 语句了,不过可以看我的上一篇文章: http://www.cnblogs.com/Brambling/p ...
- mySQL 教程 第5章 插入 更新与删除数据
使用SQL Manager管理工具连接到schoolDB.由于三张表都设置了主键,因此,以下练习中插入的记录,主键不能重. 插入数据 1. 练习:为表的所有字段插入数据 为表中所有字段插入数据,可以不 ...
- MySQL入门很简单: 9 插入 更新与删除数据
1. 插入数据:INSERT 1)为表的所有字段插入数据 第一种: 不指定具体的字段名 INSERT INTO 表名 VALUES(值1,值2,...,值n): 第二种:INSERT语句中列出所有字段 ...
- mySQL 插入,更新和删除数据
插入数据: 语法: INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN ); 如 ...
- MySQL笔记(三)之数据插入更新与删除
INSERT INTO INSERT INTO 语句用于向表格中插入新的行. 语法: INSERT INTO 表 VALUES (值1, 值2,....) # 列数必须和值的个数匹配 INSERT I ...
- sql查询,更新,删除,操作。
UPDATE ht_plan_triptime pptSET ppt.lock_status = '1'WHERE ppt.lock_status <> '1' AND ppt.pl ...
- SQL Server XML基础学习之<7>--XML modify() 方法对 XML 数据中插入、更新或删除
/*------------------------------------------------------------------------------+ #| = : = : = : = : ...
- 转载---SQL Server XML基础学习之<7>--XML modify() 方法对 XML 数据中插入、更新或删除
/*------------------------------------------------------------------------------+ #| = : = : = : = : ...
随机推荐
- [LeetCode 题解]: Permutation Sequcence
The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and labeling all of the p ...
- 读《MacTalk·人生元编程》
读MackTalk人生元编程 花了几个晚上的时间把 卖桃君 的<MackTalk▪人生元编程>看完后意犹未尽,关掉kindle后回一下整本书的内容不由得笑了,因为脑海里出现了各种360°回 ...
- C#设置图片透明度
逐个像素进行Alpha值的设置,网上其他的代码不能处理有透明背景的图片,因此要对Alpha.R.G.B均为0的透明色进行特殊处理,不做转换. private Bitmap SetImageOpacit ...
- leetcode 45. 跳跃游戏 II JAVA
题目: 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组的最后一个位置. 示例: 输入: [2,3,1,1, ...
- [转]解读Unity中的CG编写Shader系列6——不透明度与混合
1.不透明度当我们要将两个半透的纹理贴图到一个材质球上的时候就遇到混合的问题,由于前面的知识我们已经知道了片段着色器以及后面的环节的主要工作是输出颜色与深度到帧缓存中,所以两个纹理在每个像素上的颜色到 ...
- OCP 12c最新考试原题及答案(071-3)
3.(4-10) choose the best answer:The user SCOTT who is the owner of ORDERS and ORDER_ITEMS tables iss ...
- 1.IPtable基础命令总结
iptables概念 规则查询 #查看对应表中的所有规则 iptables -t 表名 -L #查看表的指定链中的规则 iptables -t 表名 -L 链名 #查看对应表中的所有规则, -v显示跟 ...
- “全栈2019”Java第七章:IntelliJ IDEA注释快捷键
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- Codeforces Round #549 (Div. 2)B. Nirvana
B. Nirvana time limit per test 1 second memory limit per test 256 megabytes input standard input out ...
- 不同的color-model
RGB color mode YIQ color mode Y: brightness,亮度 I: In-phase,色彩从橙色到青色 -Q: Quadrature-phase, 色彩从紫色到黄绿色 ...