国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

MySQL實現(xiàn)數(shù)據(jù)插入操作的示例詳解

瀏覽:122日期:2023-02-18 16:43:44
目錄
  • 一、方法分類
  • 二、具體方法
  • 三、實例
    • (1)常規(guī)插入
    • (2)從另一個表導(dǎo)入
    • (3)插入時數(shù)據(jù)重復(fù)
  • 四、注意事項
    • (1)不寫字段名,需要填充自增ID
    • (2)按字段名填充,可以不錄入id
    • 其余注意事項

使用MySQL插入數(shù)據(jù)時,可以根據(jù)需求場景選擇合適的插入語句,例如當(dāng)數(shù)據(jù)重復(fù)時如何插入數(shù)據(jù),如何從另一個表導(dǎo)入數(shù)據(jù),如何批量插入數(shù)據(jù)等場景。本文通過給出每個使用場景下的實例來說明數(shù)據(jù)插入的實現(xiàn)過程和方法。

一、方法分類

二、具體方法

使用場景作用語句注意常規(guī)插入忽略字段名insert into 表名 values (值1, 值2,...,值n)默認(rèn)value中的值依次填充所有字,如果出現(xiàn)唯一性沖突,就會拋出異常按照字段插入insert into 表名(字段1, 字段2,...,字段n) values (值1, 值2,...,值n)字段和值一一對應(yīng)一次性插入多條數(shù)據(jù)insert into 表名(字段1, 字段2,...,字段n) values (值a1, 值a2,...,值an),(值b1, 值b2,...,值bn)多行之間用逗號隔開,不需要再次寫insert into語句從另一個表導(dǎo)入導(dǎo)出A表的某些數(shù)據(jù)插入到B表insert into 表名B(字段B1, 字段B2,...,字段Bn) select 字段A1, 字段A2,...,字段An from 表名A where [執(zhí)行條件]字段A和B可以字段名稱不一樣,但是數(shù)據(jù)類型必須一致插入時數(shù)據(jù)重復(fù)如果記錄存在報錯insert into 表名(字段1, 字段2,...,字段n) values (值1, 值2,...,值n)如果插入的數(shù)據(jù)記錄存在,報錯并捕獲異常,不存在則直接新增記錄如果記錄存在不插入記錄insert ignore into 表名(字段1, 字段2,...,字段n) values (值1, 值2,...,值n)如果插入的數(shù)據(jù)記錄存在就保存舊記錄忽略新記錄,不存在則直接新增記錄不論記錄是否存在都要插入記錄replace 表名(字段1, 字段2,...,字段n) values (值1, 值2,...,值n)如果插入的數(shù)據(jù)記錄存在就先刪除再更新,不存在則直接新增記錄如果記錄存在更新指定字段insert into … on duplicate key update如果插入的數(shù)據(jù)記錄存在就更新指定字段,不存在則直接新增記錄

三、實例

students 表 (id表示主鍵,name是姓名,score是平均成績)

idnamescore1李明67

(1)常規(guī)插入

忽略字段名

執(zhí)行后結(jié)果

idnamescore1李明672張三74

按照字段插入

insert into 	students(name) values("孫華");

執(zhí)行后結(jié)果

idnamescore1李明672張三743孫華

一次性插入多條數(shù)據(jù)

insert into 	students(name, score) values("劉平", "56"),("周雨", "90");

執(zhí)行后結(jié)果

idnamescore1李明672張三743孫華4劉平565周雨90

(2)從另一個表導(dǎo)入

students 表 (id表示主鍵,name是姓名,score是平均成績)

iduser_namemobile_phone_number1馬化騰138000000002任正非138000000113馬云13800000022

導(dǎo)出users表的某些數(shù)據(jù)插入到students表

insert into 	students(name,score) select 	user_name,	mobile_phone_number from users where id <> 3;

執(zhí)行結(jié)果

idnamescore1李明672張三743孫華4劉平565周雨906馬化騰138000000007馬云13800000022

注意:只要對應(yīng)字段的類型一樣,字段不一樣也可以導(dǎo)入數(shù)據(jù),不會沖突。

(3)插入時數(shù)據(jù)重復(fù)

如果記錄存在報錯

insert into 	students values(1, "張三", "74");

執(zhí)行結(jié)果: 報錯

Duplicate entry '1' for key 'PRIMARY'

如果記錄存在不插入記錄

insert ignore into 	students(id,name,score) values(1, "張三", "74");

執(zhí)行結(jié)果:不插入不報錯

Affected rows:0

idnamescore1李明672張三743孫華4劉平565周雨906馬化騰138000000007馬云13800000022

不論記錄是否存在都要插入記錄

replace 	studentsvalues(1, "張三", "74");

執(zhí)行結(jié)果

idnamescore1張三742張三743孫華4劉平565周雨906馬化騰138000000007馬云13800000022

如果記錄存在更新指定字段

insert into 	students(id)values(1) on duplicate key update 	name = "李明",	score = "67";

執(zhí)行結(jié)果

idnamescore1李明672張三743孫華4劉平565周雨906馬化騰138000000007馬云13800000022

創(chuàng)建 students 表的代碼

-- ------------------------------ Table structure for students-- ----------------------------DROP TABLE IF EXISTS `students`;CREATE TABLE `students`  (  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT "學(xué)生id",  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT "姓名",  `score` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT "成績",  PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ------------------------------ Records of students-- ----------------------------INSERT INTO `students` VALUES (1, "李明", "67");

創(chuàng)建 users 表的代碼

-- ------------------------------ Table structure for students-- ----------------------------DROP TABLE IF EXISTS `users`;CREATE TABLE `users`  (  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT "用戶id",  `user_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT "用戶名",  `mobile_phone_number` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT "手機(jī)號碼",  PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ------------------------------ Records of students-- ----------------------------INSERT INTO `users` VALUES (1, "馬化騰", "13800000000");INSERT INTO `users` VALUES (2, "任正非", "13800000011");INSERT INTO `users` VALUES (3, "馬云", "13800000022");

四、注意事項

(1)不寫字段名,需要填充自增ID

[使用]:0或者null或者default,自增id默認(rèn)從1開始。

[使用]:或者沒有在自增id中出現(xiàn)的(不重復(fù))數(shù)(例如-1,-2),浮點型數(shù)據(jù)例如3.4,最后顯示3,會進(jìn)行四舍五入。即使定義了int類型,輸入‘3’或者浮點型,都會強(qiáng)制轉(zhuǎn)化為int類型,但是輸入'a'會報錯。具體細(xì)節(jié)可以看源碼。

問題:第一個字段id為什么可以寫null?如果建表的時候?qū)懥薸d為自增id,而寫0或者null或者default或者沒有在自增id中出現(xiàn)的(不重復(fù))數(shù)(例如-1,-2),系統(tǒng)都會自動填充id。如果建表的時候沒有寫明是自增id,那么主鍵一定是不能為空的,這個時候?qū)憂ull就會報錯。

(2)按字段名填充,可以不錄入id

[注意]:字段要與值一一對應(yīng)。

其余注意事項

  • 字段名可以省略,默認(rèn)所有列;
  • 錄入值的類型和字段的類型要一致或兼容;
  • 字段和值的個數(shù)必須一致。不能出現(xiàn)一行記錄5個值,另外一行6個值的情況;
  • 如果寫了字段,即使是空值也不能空著,用null代替;

到此這篇關(guān)于MySQL實現(xiàn)數(shù)據(jù)插入操作的示例詳解的文章就介紹到這了,更多相關(guān)MySQL數(shù)據(jù)插入內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: MySQL
主站蜘蛛池模板: 欧美一级特黄aa大片在线观看免费 | 亚洲欧美偷拍自拍 | 日日摸人人拍人人澡 | 日本www在线播放 | 毛片在线播放网址 | 一级网站在线观看 | 三级毛片基地 | 在线视频一区二区三区三区不卡 | 国产一级真人毛爱做毛片 | 免费精品一区二区三区在线观看 | 在线一区播放 | 欧美日韩一区二区综合 | 日韩一页| 国产精品久久久久久福利漫画 | 成年人毛片视频 | 91久久国产综合精品女同我 | 一级做人爱a视频正版免费 一级做性色a爱片久久片 | 欧美久久久久久久一区二区三区 | 最新国产精品亚洲 | 奇米第四狠狠777高清秒播 | 久久精品国产影库免费看 | 91精品成人免费国产 | 亚洲九九夜夜 | 香蕉久久久久久狠狠色 | 久久久久久免费精品视频 | 99久久99这里只有免费费精品 | 国产日本精品 | 久久国产一级毛片一区二区 | 欧美一区二区在线观看视频 | 久久99久久| 怡红院在线a男人的天堂 | 久久国产精品久久国产片 | 国产精品免费看久久久香蕉 | 精品国产欧美一区二区三区成人 | 免费观看毛片的网站 | 狠狠色丁香婷婷综合 | 欧美成人福利视频 | 欧美一级毛片日本 | 色屁屁一区二区三区视频国产 | 中文字幕乱码系列免费 | 91久久国产口精品久久久久 |