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 数据中插入、更新或删除
/*------------------------------------------------------------------------------+ #| = : = : = : = : ...
随机推荐
- wc项目记录
1.Github项目地址:https://github.com/3116004700/ruanjiangongcheng 2.预估时间见PSP表格. 3.解题思路描述: 在看到这个项目的时候我就想到了 ...
- linux mysql 权限
原文地址:http://www.cnblogs.com/eczhou/archive/2012/07/12/2588187.html Linux下mysql新建账号及权限设置 1.权限赋予 说明:my ...
- Delphi 按Esc快捷键退出程序的简单方法
第一种方法: 在窗体上放一个按钮: 1>.设置按钮的Cancel属性为True: 2>.在按钮的点击事件中写: procedure TForm1.btn1Click(Sender: TO ...
- Delphi XE8 iOS与Android移动应用开发(APP开发)教程[完整中文版]
https://item.taobao.com/item.htm?id=536584650957&toSite=main
- Windows store app[Part 4]:深入WinRT的异步机制
接上篇Windows store app[Part 3]:认识WinRT的异步机制 WinRT异步机制回顾: IAsyncInfo接口:WinRT下异步功能的核心,该接口提供所有异步操作的基本功能,如 ...
- windows部署PHP开发的cms系统
近日,由于公司服务器中了病毒,导致公司官网上的源代码文件被篡改,而且也被谷歌标记为危险网站,而且病毒很顽固,难已删除,迫不得已只好将服务器系统重做,数据全部格式掉. 数据全部都没有,网站当然要重新发布 ...
- HDU - 6215 2017 ACM/ICPC Asia Regional Qingdao Online J - Brute Force Sorting
Brute Force Sorting Time Limit: 1 Sec Memory Limit: 128 MB 题目连接 http://acm.hdu.edu.cn/showproblem.p ...
- Ubuntu16.04实用python脚本 - 启动nautilus(Gnome的文件管理器)!
nautilus是Gnome的图形的文件管理器,可以很方便管理各种文件,但是通常我们不是在root用户下,如果想在root下使用,必须在shell里面输入命令: sudo nautilus 这样做固然 ...
- OCP新题库,052新加的考题及答案整理-24题
24. YOUR DB_RECOVERY_FILE_DEST_SIZE Is 8G. Currently, 5G of the space Is used of which 4G consists o ...
- bzoj 3669: [Noi2014]魔法森林(并查集+LCT)
Description 为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士.魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M.初始时小E同学在号节 ...