插入记录操作
添加数据
VALUE和VALUES执行效率是一样的。
INSERT [INTO] tbl_name[(col_name1,col_name2,...)] {VALUE|VALUES} (V1,V2,...);
也可以不抒写colname
INSERT tbl_name VALUE(V1,V2,...);
需要按照建表时的字段顺序给每一个字段赋值
-- 测试添加操作
CREATE DATABASE IF NOT EXISTS test3 DEFAULT CHARACTER SET 'UTF8';
USE test3
CREATE TABLE IF NOT EXISTS addplay(
id INT UNSIGNED AUTO_INCREMENT KEY COMMENT '编号',
name VARCHAR(20) NOT NULL UNIQUE COMMENT '用户名',
age TINYINT UNSIGNED DEFAULT 18 COMMENT '年龄',
email VARCHAR(50) NOT NULL DEFAULT '[email protected]' COMMENT '邮箱'
)ENGINE=INNODB CHARSET=UTF8;
-- 不指定字段名称
INSERT addplay VALUE(NULL,'King',24,'[email protected]');
-- 指定字段名称
INSERT addplay(name,email) VALUES('rose','[email protected]');
注意:在使用不指定字段名称时,一定要把所有的字段值写上,像id自增长的也要写上否则会报错,可以写NULL和DEFAULT。而指定字段名称则可以不需要写id
-- 插入多个值
INSERT tbl_name[(字段名称,...)] VALUES(值,...),
(值,...),
(值,...)
-- 一次插入3条记录
INSERT addplay VALUES(NULL,'a',24,'[email protected]'),
(NULL,'b',44,'[email protected]'),
(NULL,'c',51,'[email protected]');
-- INSERT ... SET的形式
INSERT tbl_name SET 字段名称=值,..;
INSERT addplay SET name='tom',age='31',email='[email protected]';
可以将其他表内的信息插入到该表中
INSERT tbl_name[(字段名称)] SELECT 字段名称,...FROM tbl_name[WHERE 条件];
CREATE TABLE test1(
a VARCHAR(20)
);
INSERT test1 VALUES('AA'),('BB'),('CC');
INSERT addplay(name) SELECT a FROM test1;