添加數據 insert 命令詳解


1. insert 語法格式


完整格式

insert [into] 表名[字段名1[, 字段名2]] value[s](值1, 值2),(值3, 值4);

省略字段名

省略字段名時,必須依次添加所有段的值

insert [into] 表名 value(值1, 值2[, ...]);

只添加一條數據時,也可以使用 insert ... set 命令

此方式無法插入空值

insert into 表名 set 字段名1=值[,字段名2=值];

2. 使用示例


a. 省略字段名

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用戶ID,主鍵且自增',
  `nickname` varchar(60) DEFAULT NULL COMMENT '用戶昵稱',
  `gender` tinyint(1) DEFAULT NULL COMMENT '性別',
  `age` mediumint(9) DEFAULT NULL COMMENT '年齡',
  `status` tinyint(1) DEFAULT '1' COMMENT '狀態 0 關閉 1 開啟 默認為 1',
  `create_time` int(11) DEFAULT NULL COMMENT '注冊時間',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用戶表';

特別注意:因為字段id會自動增長,設置為null即可

如果沒有寫出所有字段的值,會出現以下錯誤

1136 - Column count doesn't match value count at row 1(列計數與行的值計數不匹配)

insert into user value(null, '張三', 1, 20, null, 1602295286);

b. 給指定的字段添加數據,則沒有被指定的字段必須有默認值

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用戶ID,主鍵且自增',
  `nickname` varchar(60) NOT NULL COMMENT '用戶昵稱',
  `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '狀態 0 關閉 1 開啟 默認為 1',
  `create_time` int(11) DEFAULT NULL COMMENT '注冊時間',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用戶表';

沒有默認值的字段必須給值:nickname 字段設置了 not null 且沒有設置 default

insert into user(`status`, `create_time`) value(1, 1602295286);

c. 一次添加多條數據

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用戶ID,主鍵且自增',
  `nickname` varchar(60) NOT NULL COMMENT '用戶昵稱',
  `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '狀態 0 關閉 1 開啟 默認為 1',
  `create_time` int(11) DEFAULT NULL COMMENT '注冊時間',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用戶表';
insert into user(`nickname`, `status`) value('張大民', 1), ('小新', 0), ('小剛同學', 1);

d. 添加一條數據的兩種寫法

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用戶ID,主鍵且自增',
  `nickname` varchar(60) NOT NULL COMMENT '用戶昵稱',
  `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '狀態 0 關閉 1 開啟 默認為 1',
  `create_time` int(11) DEFAULT NULL COMMENT '注冊時間',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用戶表';
insert into user(`nickname`, `status`) value('小王', 1);
insert into user set `nickname` = '大王', `status` = '0';

3. MySQL 添加數據總結(常見用法)


不指定字段名,所有字段必須給值

insert into user value(null, '張三', '123456', '男', 20, 1602295286);

into 可以省略,但是一般都不省略

insert user value(null, '張三', '123456', '男', 20, 1602295286);

指定部分字段添加,沒有被指定的字段 要么會自動增長,要么允許為 null,要么有默認值

insert into user(`nickname`, `password`, `gender`, `age`) value('張三', '123456', '男', 20);

添加一條數據時也可以用 insert ... set

insert into user set `nickname` = '大王', `status` = '0';

添加多條數據

insert into user(`nickname`, `status`) value('張大民', 1), ('小新', 0), ('小剛同學', 1);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM