数据库系列之数据管理(插入数据)

插入数据

1 语法
INSERT  [INTO]  <表名>  [(列名)]  VALUES  <值列表>
其中:“[]”代表可选的;“<>”代表必需的。如果有多个列名和多个列值需要用逗号隔开。

2 实例

INSERT INTO Authors (AuthorName,Sex,Age,Email,TelPhone,City)
VALUES ('吴玉鹏',1,47,'wyp@sohu.com','01090876529','北京')

实现功能:把Values子句提供的列值依次赋值给表中指定的各列。
添加数据时,字符型和日期型数据的值要用单引号括起来。

使用Insert Select语句插多行数据

1 语法
INSERT INTO  <表2>    [列名]
SELECT  <列名>  FROM  <表1>
注意:
(1)<表2>必须事先存在。如果不存在,执行时将会出现错误。
(2)查询出的字段数目、数据类型、字段顺序,与插入列保持一致。
2 示例
要将Authors表中所有作者信息保存到AuthorsInfo表中。

INSERT INTO AuthorsInfo (作者姓名,年龄,电子邮件,所在城市)
SELECT AuthorName,Age,Email,City
FROM Authors

使用Select Into语句插入多行数据

1 语法
SELECT  <列名> 
INTO  <新表>
FROM  <原始表>
注意:
    <新表>不能事先存在,它是在执行该语句时系统自动创建的。

2 示例
要将Authors表中“作者姓名、年龄、电子邮件、所在城市”数据存储到一个新表中

SELECT IDENTITY(int, 1, 1) as Id, AuthorName,Age,Email,City
INTO NewAuthorsName 
FROM Authors

使用Select Into语句插入标识列数据

1 语法
SELECT  IDENTITY(数据类型, 标识种子, 标识增量)  as 列名 
INTO  <新表>
FROM  <原始表>

2 示例
要将Authors表中“作者姓名、年龄、电子邮件”数据存储到一个新表中,并且
要求插入新表时自动生成标识列字段。

SELECT IDENTITY(int, 1, 1) as Id, AuthorName,Age,Email,City
INTO NewAuthorsName 
FROM Authors

使用Union关键字插入多行数据

1 语法
INSERT  [INTO]  <表名>  [列名]
SELECT  <值列表> UNION
SELECT  <值列表> UNION
SELECT  <值列表>
注意:
[列名]:可以省略,如果省略列名,那么<值列表>的数据个数、顺序、数据类型必须与表中字段顺序、数据类型保持一致。

2 示例
向Authors表中一次插入多位作者信息 。

INSERT INTO Authors (AuthorName, Sex, Age, Email, TelPhone)
SELECT '张笑林',1,30,'zxl@163.com','02067839876' UNION
SELECT '李辉',0,52,'lh@126.com','02167345987' UNION
SELECT '洪海波',1,40,'hhb@163.com','031189654329'

3 使用Union注意的问题
Union语句中不能使用DEFAULT关键字

INSERT INTO Authors (AuthorName, Sex, Age, Email, TelPhone, City)
SELECT '张笑林',1,30,'zxl@163.com','02067839876','上海' UNION
SELECT '李辉',0,52,'lh@126.com','02167345987',DEFAULT UNION
SELECT '洪海波',1,40,'hhb@163.com','031189654329','石家庄'
语法检测就出现错误提示:关键字'default' 附近有语法错误。

原文地址:https://www.cnblogs.com/cmhunter/p/4278830.html