码迷,mamicode.com
首页 > 数据库 > 详细

SQL必知必会 笔记 第十五章 插入数据

时间:2015-04-17 11:33:34      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:数据   sql   

15.1数据插入

插入可以用几种方式使用:
(1)插入完整的行
(2)插入行的一部分
(3)插入某些查询的结果

15.1.1插入完整的行

INSERT INTO Customers
VALUES(‘1000000006‘,
     ‘Toy Land‘,
     ‘123 Any Street‘,
     ‘New York‘,
     ‘NY‘,
     ‘11111‘,
     ‘USA‘,
     NULL,
     NULL);

对每个列必须提供一个值,如果某个列没有值,应该用NULL值。
保证INSERT语句的更安全

INSERT INTO Customers(cust_id,
     cust_name,
     cust_address,
     cust_city,
     cust_state,
     cust_zip,
     cust_country,
     cust_contact,
     cust_email)
VALUES(‘1000000006‘,
     ‘Toy Land‘,
     ‘123 Any Street‘,
     ‘New York‘,
     ‘NY‘,
     ‘11111‘,
     ‘USA‘,
     NULL,
     NULL);

因为提供了列名,VALUES必须以其指定的次序匹配指定的列名,不一定按各个列出现在实际表中的次序。其优点是,即使表的结构改变,此INSERT语句仍然能正确工作。
总是使用列的列表:一般不要使用没有明确给出列的列表的INSERT语句。使用列的列表能使SQL代码继续发挥作用,即使表结构发生了变化。

15.1.2插入部分行

使用INSERT的推荐方法是明确给出表的列名。使用这种语法,还可以省略列。

INSERT INTO Customers(cust_id,
     cust_name,
     cust_address,
     cust_city,
     cust_state,
     cust_zip,
     cust_country)
VALUES(‘1000000006‘,
     ‘Toy Land‘,
     ‘123 Any Street‘,
     ‘New York‘,
     ‘NY‘,
     ‘11111‘,
     ‘USA‘);

省略列:如果表的定义允许,则可以在INSERT操作中省略某些列。省略的列必须满足以下某个条件:
(1)该列定义为允许NULL值。
(2)在表定义中给出默认值。这表示如果不给出值,将使用默认值。

15.1.3插入检索出的数据

INSERT可以利用它将一条SELECT语句的结果插入表中。这就是所谓的INSERT SELECT。

INSERT INTO Customers(cust_id,
     cust_name,
     cust_address,
     cust_city,
     cust_state,
     cust_zip,
     cust_country)
SELECT cust_id,
     cust_name,
     cust_address,
     cust_city,
     cust_state,
     cust_zip,
     cust_country
FROM CustNew;

不一定要求列名相同。
INSERT SELECT 中SELECT语句可包含WHERE子句过滤插入的数据。
插入多行:INSERT通常只插入一行。为了插入多行,必须执行多个INSERT语句。INSERT SELECT是个例外,它可以用单条INSERT插入多行,不管SELECT语句返回多少行,都将被INSERT插入。

15.2从一个表复制到另一个表

为了将一个表复制到另一个表(在运行中创建的表)。可使用SELECT INTO语句。
INSERT SELECT和SELECTINTO:他们之间的一个重要差别是前者导出数据,而后者导入表。

SELECT *
INTO CustCopy
FROM Customers;

MySQL和Oracle使用的语法稍有不同

CREATE TABLE CustCopy AS
SELECT *
FROM Customers;

在使用SELECT INTO时,需要注意:
(1)任何SELECT选项和子句都可以使用,包括WHERE和GROUP BY。
(2)可利用联结从多个表插入数据。
(3)不管从多少个表中检索数据,数据都只能插入到单个表中。

SQL必知必会 笔记 第十五章 插入数据

标签:数据   sql   

原文地址:http://blog.csdn.net/veno813/article/details/45092173

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!