插入数据
插入完整行
-- 语法简单,但高度依赖表中列的定义次序,可移植性弱
INSERT INTO table
VALUES('value_1',
'value_2',
'value_3');
-- 提供列名,VALUES 以其指定的次序匹配列名
INSERT INTO table(column_name_1,
column_name_2,
column_name_3)
VALUES('value_1',
'value_2',
'value_3');
- 建议使用提供列名的INSERT 语句,可提高代码的可移植性
插入部分行
INSERT INTO table(column_name_1,
column_name_3)
VALUES('value_1',
'value_3');
- 使用提供列名的INSERT 语句,还可省略列,省略的列必须被定义为允许NULL 值或在定义表时给出了默认值
插入检索出的数据
- 可利用INSERT 语句将SELECT 语句的结果插入表中
INSERT INTO table_name_2(column_name_1,
column_name_2,
column_name_3)
SELECT (column_name_1,
column_name_2,
column_name_3)
FROM table_name_1;
- INSERT SELECT 语句可插入多行(INSERT 语句只能插入一行)
- INSERT 语句中和SELECT 语句中不必使用相同的列名,它们之间通过位置(即给出的顺序)进行匹配
从一个表复制到另一个表
CREATE TABLE table_new AS
SELECT * FROM table_old;
- 任何SELECT 选项和子句都可以使用
- 可利用连接从多个表中插入数据,但只能插入到一个表中