插入数据库记录是使用insert
关键字,能将一条语句插入数据库,高级的可以组合select
关键字实现插入查询的结果集,插入整张表。
- 建表语句:
CREATE TABLE IF NOT EXISTS `user` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT '用户id',
`name` VARCHAR(255) NULL COMMENT '用户名',
`telephone` VARCHAR(11) NULL COMMENT '手机号',
PRIMARY KEY (`id`)
1. 插入一条完整数据
INSERT INTO `user`(id,`name`,telephone) VALUES (2,'zszxz','1327');
-
语句分析:插入数据到
user
表,字段分别是id
,name
,telephone
,值分别是2,‘zszxz’,‘1327’ -
INTO
可以忽略不写,但不建议,因为在数据库管理系统间会出现移植性问题; -
还有字段也可以忽略不写,但不建议,容易造成插入数据出错;
-
字段的位置和值的位置是一一对应,如果有的位置没值可用
NULL
代替 -
结果:
分数据
INSERT INTO user
(id,name
) VALUES (3, ‘zszxz’);
-
语句分析:插入数据到
user
表,字段分别是id
,name
,值分别是3,zszxz,没有插入telephone
字段 -
结果:
3. 插入检索数据
将查询的结果插入另一张表,可使用insert select
关键组合成一条语句实现。
INSERT INTO `user` (id,`name`) SELECT id,`name` FROM student WHERE id = 4;
-
语句分析:插入到
user
表,字段分别是id
,name
,值是查询字段id
,name
来自student
表,条件是id
等于4。列顺序一致,建议使用名称匹配 -
结果:
-
student表id=4的数据
- 插入到user表中的数据
4. 复制表
检索一张表的数据全部插入另一张表。有两种方法,但不同的数据库管理系统支持不同,具体如下:
MySQL:
CREATE TABLE student_copy AS SELECT * FROM student;
-
语句分析:创建表
student_copy
数据结构来源查询所有字段来自student
表 -
错误SQL:
SELECT id,
name
INTO student_copy FROM student;