第15课 插入数据
这一课介绍如何利用SQL的INSERT语句将数据插入表中。
提示:插入及系统安全
使用
INSERT语句可能需要客户端/服务器DBMS中的特定安全权限。在你试图使用INSERT前,应该保证自己有足够的安全权限。
15.1 数据插入
15.1.1 插入完整的行
INSERT INTO
Customers
VALUES
('1000000006',
'123 Any Street',
'NY',
NULL
);
|
分析▼
这个例子将一个新顾客插入到Customers表中。存储到表中每一列的数据在
VALUES子句中给出,必须给每一列提供一个值。
如果某列没有值,则应该使用NULL值(假定表允许对该列指定空值)。各列必须以它们在表定义中出现的次序填充。
Attention
:如果表的结构改变,这条INSERT语句将不能正确工作。最好给出Customer具体的内容:
INSERT INTO
Customers(cust_id,
cust_address,
cust_city,
cust_email)
VALUES
('1000000006',
'123 Any Street',
'NY',
NULL
);
|
15.1.2 插入部分行
15.1.1中例子没有给cust_email这列提供值(NULL).因此,INSERT语句可以省略这列及其对应的值.
15.1.3 插入检索出的数据
INSERT INTO
Customers(cust_id,
cust_email,
cust_address,
cust_city,)
SELECT
cust_id,
cust_email,
cust_address,
cust_city
FROM
CustNew;
|
说明:新例子的说明
这个例子从一个名为CustNew的表中读出数据并插入到Customers表。CustNew表的结构与Customers表相同。
提示:INSERT SELECT中的列名
为简单起见,这个例子在INSERT和SELECT语句中使用了相同的列名。
但是,不一定要求列名匹配。事实上,DBMS一点儿也不关心SELECT返回的列名。
它使用的是列的位置,因此SELECT中的第一列(不管其列名)将用来填充表列中指定的第一列,第二列将用来填充表列中指定的第二列......
15.2 从一个表复制到另一个表
SELECT
*
INTO
CustCopy
FROM Customers;
|
15.3 小结
这一课介绍如何将行插入到数据库表中。我们学习了使用INSERT的几种方法,为什么要明确使用列名,如何用INSERT SELECT从其他表中导入行,如何用SELECT INTO将行导出到一个新表。