MySQL如何添加數(shù)據(jù)insert命令
1. insert 語法格式
完整格式
insert [into] 表名[字段名1[, 字段名2]] value[s](值1, 值2),(值3, 值4);
省略字段名
省略字段名時(shí),必須依次添加所有段的值
insert [into] 表名 value(值1, 值2[, ...]);
只添加一條數(shù)據(jù)時(shí),也可以使用 insert ... set 命令
此方式無法插入空值 null
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 '狀態(tài) 0 關(guān)閉 1 開啟 默認(rèn)為 1', `create_time` int(11) DEFAULT NULL COMMENT '注冊時(shí)間', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用戶表';
特別注意:因?yàn)樽侄蝘d會自動增長,設(shè)置為null即可
如果沒有寫出所有字段的值,會出現(xiàn)以下錯(cuò)誤
1136 - Column count doesn’t match value count at row 1(列計(jì)數(shù)與行的值計(jì)數(shù)不匹配)
insert into user value(null, '張三', 1, 20, null, 1602295286);

b. 給指定的字段添加數(shù)據(jù),則沒有被指定的字段必須有默認(rèn)值
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 '狀態(tài) 0 關(guān)閉 1 開啟 默認(rèn)為 1', `create_time` int(11) DEFAULT NULL COMMENT '注冊時(shí)間', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用戶表';
沒有默認(rèn)值的字段必須給值:nickname 字段設(shè)置了 not null 且沒有設(shè)置 default
insert into user(`status`, `create_time`) value(1, 1602295286);

c. 一次添加多條數(shù)據(jù)
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 '狀態(tài) 0 關(guān)閉 1 開啟 默認(rèn)為 1', `create_time` int(11) DEFAULT NULL COMMENT '注冊時(shí)間', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用戶表';
insert into user(`nickname`, `status`) value('張大民', 1), ('小新', 0), ('小剛同學(xué)', 1);d. 添加一條數(shù)據(jù)的兩種寫法
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 '狀態(tài) 0 關(guān)閉 1 開啟 默認(rèn)為 1', `create_time` int(11) DEFAULT NULL COMMENT '注冊時(shí)間', 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 添加數(shù)據(jù)總結(jié)(常見用法)
不指定字段名,所有字段必須給值
insert into user value(null, '張三', '123456', '男', 20, 1602295286);
into 可以省略,但是一般都不省略
insert user value(null, '張三', '123456', '男', 20, 1602295286);
指定部分字段添加,沒有被指定的字段 要么會自動增長,要么允許為 null,要么有默認(rèn)值
insert into user(`nickname`, `password`, `gender`, `age`) value('張三', '123456', '男', 20);添加一條數(shù)據(jù)時(shí)也可以用 insert ... set
insert into user set `nickname` = '大王', `status` = '0';
添加多條數(shù)據(jù)
insert into user(`nickname`, `status`) value('張大民', 1), ('小新', 0), ('小剛同學(xué)', 1);總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL中執(zhí)行計(jì)劃explain命令示例詳解
這篇文章主要給大家介紹了關(guān)于MySQL中執(zhí)行計(jì)劃explain命令的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用explain命令具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面說來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05
MySQL中crash safe數(shù)據(jù)完整性機(jī)制面試精講
這篇文章主要為大家介紹了MySQL數(shù)據(jù)完整性crash safe特性面試精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
MySQL 5.6 中的 TIMESTAMP 和 explicit_defaults_for_timestamp 參數(shù)
這篇文章主要介紹了MySQL 5.6 中的 TIMESTAMP 和 explicit_defaults_for_timestamp 參數(shù),需要的朋友可以參考下2015-08-08
mysql中insert?into...select語句優(yōu)化方式
這篇文章主要介紹了mysql中insert?into...select語句優(yōu)化方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教<BR>2024-04-04
探討:sql插入空,默認(rèn)1900-01-01 00:00:00.000的解決方法詳解
本篇文章是對sql插入空,默認(rèn)1900-01-01 00:00:00.000的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06

