插入数据
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','石家庄'