SQLite INSERT 语句中的子查询

返回上一级

SQLite 子查询可以与 INSERT 语句 一起使用,将子查询返回的数据插入到另一个表中

这种使用方式一般用于将旧表数据导入新表当中

语法如下

INSERT INTO table_name [ (column1 [, column2 ]) ]
SELECT [ *|column1 [, column2 ]
FROM table1 [, table2 ]
[ WHERE VALUE OPERATOR ]

例如语句

INSERT INTO tbl_employee_new SELECT * FROM tbl_employee;

用于旧表 tbl_employee 中的数据导入到新表 tbl_employee_new 当中

范例

先运行下面的 SQL 语句创建测试数据

有两张表,一张是旧职工表,有数据,一张是新职工表,没数据,多加一个婚否的字段

DROP TABLE tbl_employee;
DROP TABLE tbl_employee_new;

CREATE TABLE tbl_employee (
   id INTEGER PRIMARY KEY AUTOINCREMENT  NOT NULL,
   name           CHAR(64) NOT NULL,
   age            INTEGER  NOT NULL,
   city           CHAR(64),
   salary         REAL
);

CREATE TABLE tbl_employee_new (
   id INTEGER PRIMARY KEY AUTOINCREMENT  NOT NULL,
   name           CHAR(64) NOT NULL,
   age            INTEGER  NOT NULL,
   city           CHAR(64),
   married        CHAR(1) NOT NULL DEFAULT 'Y',
   salary         REAL
);


INSERT INTO tbl_employee (name,age,city,salary) VALUES
('张三', 25, 'pek', 102400.00 ),
('李四', 18, 'shanghai', 88888.00 ),
('王五', 22, 'hangzhou', 22000.00 ),
('孙六', 32, 'pek', 32000.00 ),
('钱七', 25, 'shanghai', 25000.00 ),
('赵二', 45, 'pek', 45800.00 ),
('冯九', 37, 'chengdu', 15000.00 );

首先我们使用下面的语句将旧表 tbl_employee 中的数据导入到新表 tbl_employee_new 当中

INSERT INTO tbl_employee_new(id,name,age,city,salary) SELECT * FROM tbl_employee;

我们指定了字段,这样没指定的字段就会使用默认值

然后使用 SELECT * FROM tbl_employee_new; 语句看一下新表里的数据,输出如下

id       name      age       city        married     salary    
-------  --------  -------   ----------  --------  ---------
1        张三       25       pek         Y         102400.0  
2        李四       18       shanghai    Y         88888.0   
3        王五       22       hangzhou    Y         22000.0   
4        孙六       32       pek         Y         32000.0   
5        钱七       25       shanghai    Y         25000.0   
6        赵二       45       pek         Y         45800.0   
7        冯九       37       chengdu     Y         15000.0 

返回上一级

SQLite 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.