【SQL】使用一条INSERT语句完成多表插入
这是一条颠覆常规的插入方法,一条INSERT语句可以完成向多张表的插入任务。小小地展示一下这种插入方法。
1.创建表T并初始化测试数据,此表作为数据源。
sec@ora10g> create table t (x number(10), y varchar2(10));
sec@ora10g> insert into t values (1,'a');
sec@ora10g> insert into t values (2,'b');
sec@ora10g> insert into t values (3,'c');
sec@ora10g> insert into t values (4,'d');
sec@ora10g> insert into t values (5,'e');
sec@ora10g> insert into t values (6,'f');
sec@ora10g> commit;
2.查看表T的数据
sec@ora10g> select * from t;
X Y
---------- ----------
1 a
2 b
3 c
4 d
5 e
6 f
6 rows selected.
3.创建表T1和T2,作为我们要插入的目标表。
sec@ora10g> create table t1 as select * from t where 0=1;
Table created.
sec@ora10g> create table t2 as select * from t where 0=1;
Table created.
4.第一种多表插入方法INSERT ALL
1)完成INSERT ALL插入
sec@ora10g> insert all into t1 into t2 select * from t;
12 rows created.
这里之所以显示插入了12条数据,实际上表示在T1表中插入了6条,T2表插入了6条,一共是12条数据。
2)验证T1表中被插入的数据。
sec@ora10g> select * from t1;
X Y
---------- ----------
1 a
2 b
3 c
4 d
5 e
6 f
6 rows selected.
3)验证T2表中被插入的数据。
sec@ora10g> select * from t2;
X Y
-
相关文档:
SELECT
CenterCD
,UseUnitCD
,SUM(UseUnitUnitPrice) 'totaladvance'
, GROUPING(UseUnitCD) 'grp'
from dbo.T_MMaterialGroupUnitPrice_SLS
GROUP BY CenterCD,UseUnitCD
WITH ROLLUP
SELECT
CenterCD
, ......
下列语句部分是Mssql语句,不可以在access中使用。
SQL分类:
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、说明:创建数据库
CREATE DATABASE da ......
1. 查看数据库的版本
select @@version
2. 查看数据库所在机器操作系统参数
exec master..xp_msver
3. 查看数据库启动的参数
......
前些日子,在操作数据库时,需要执行操作时间很久的sql语句。但是当时局域网网络情况不好,经常发生掉线的情况。
此时需要把执行的语句加入到oracle服务器上的后台进程中,去执行。操作过程如下:
1、首先把需要执行的sql语句写成脚本,存储到sql.sql中。并放置到数据库服务器某路径下.
2、执行如下linux命令即可:
&nb ......
QL分类:
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、说明:创建数据库
CREATE DATABASE database-name
2、说明:删除数据库
drop database dbname
3、 ......