【网学网提醒】:网学会员为广大网友收集整理了,SQL必知必会第15章插入数据,希望对大家有所帮助!
第15章 插入数据
本章介绍如何利用SQL的INSERT语句将数据插入表中。
··
15.1 数据插入
·
insertintoT_DICT_AJLX
values('03',
'',
'',
'iiiii',
'',
'30'
)
@@
15.1.2插入部分行
insertintodbo.T_DICT_AJLX(
ajlxbm,
ajlxmc
)
values(
'04',
''
);
@@
15.1.3插入检索出的数据
#
INSERT一般用来给表插入一个指定列值的行。但是,INSERT还存在另一种形式,可以利用它将一条SELECT语句的结果插入表中。这就是所谓的INSERTSELECT,顾名思义,它是由一条INSERT语句和一条SELECT语句组成的。
假如你想从另一表中合并客户列表到你的CUSTOMERS表。不需要每次读取一行,然后再将它用INSERT插入,可以如下进行:
···
新例子的说明:这个例子从一地为CUSTNEW的表中读出数据并插入CUSTOMERS表。为了试验这个例子,应该首先创建和填充CUSTNEW表。CUSTNEW表的结构与附录A中描述的CUSTOMERS表的相同。在填充CUSTNEW时,不应该使用已经在CUSTOMERS中使用过的CUST_ID值(如果主键值重复,后续的INSERT操作将会失败)。
··
输入:
select*fromqq
select*fromww
insertintoqq(
qq,ww,ee)
values(
'02',
'jj',
'kk');
@@@
insertintoww(
qq,ww,ee)
selectqq,ww,eefromqq;
@@@@
15.2从一个表复制到另一个表
有一种不使用INSERT语句的数据插入。为了将一个表的内容复制到一个全新的表(在运行中创建的表),可使用SELECTINTO语句。
··
注:
DB2不支持 DB2不支持这里描述的SELECTINTO。
与INSERTSELECT增补数据到一个已经存在的表不同,SELECTINTO将复制数据到一个新表(有的DBMS可以覆盖已经存在的表,这有赖于所使用的具体DBMS)。
··
##
注:
INSERTSELECT与SELECTINTO它们之间的一个重要差别是前者导出数据,而后者导入表。
##
下面的例子说明如何使用SELECTINTO;
··
输入:
SELECT*intocustcopy
fromcustomers;
##
分析:
这条SELECT语句创建一个名为CustCopy的新表,并把Customers表的整个内容复制到新表中。因为这里使用的是SELECT*,表的整个内容复制到新表中。因为这里使用的是SELECT*,所以在CustCopy表中创建(并填充)与Customers表中每个列相同的列。要想只复制列的子集,可明确地给出列名而不是使用*通配符。
··
MYSQL和ORQCLE使用语法稍有不同:
输入:
CREATETABLECustCopyAS
SELECT*
FROMCustomers;
在使用SELECTINTO时,有一些需要知道的东西:
·任何SELECT选项和子句都可以使用,包括WHERE和GROUPBY。
·可利用联结从多个表插入数据。
·不管从多少个表中检索数据,数据都只能插入到单个表中。
··##
注:
进行表的复制 SELECTINTO是试验新SQL 语句前,做表复制的很好的工具。在先做过复制后,可在复制上测试SQL代码而不会影响
实际的数据。
··##
更多例子 如果想看INSERT用的更多例子,请参阅附录A中给出的样例表填充脚本。
··##
15.3小结
本章介绍如何将行插入到数据库表。我们学习了使用INSERT的几种方法,以及为什么要明确使用列名,学习了如何用INSERTSELECT从其他表中导入行,如何用SELECTINTO将行导出到一个新表。下一章讲述如何使用UPDATE和DELETE进一步操纵表数据。
··#