最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2023年02月21日 14:53:34   作者:酸菜魚土豆大俠  
使用MySQL插入數(shù)據(jù)時,可以根據(jù)需求場景選擇合適的插入語句。本文通過給出每個使用場景下的實例來說明數(shù)據(jù)插入的實現(xiàn)過程和方法,希望對大家有所幫助

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

一、方法分類

二、具體方法

使用場景作用語句注意
常規(guī)插入忽略字段名insert into 表名 values (值1, 值2,...,值n)默認value中的值依次填充所有字,如果出現(xiàn)唯一性沖突,就會拋出異常
按照字段插入insert into 表名(字段1, 字段2,...,字段n) values (值1, 值2,...,值n)字段和值一一對應
一次性插入多條數(shù)據(jù)insert into 表名(字段1, 字段2,...,字段n) values (值a1, 值a2,...,值an),(值b1, 值b2,...,值bn)多行之間用逗號隔開,不需要再次寫insert into語句
從另一個表導入導出A表的某些數(shù)據(jù)插入到B表insert into 表名B(字段B1, 字段B2,...,字段Bn) select 字段A1, 字段A2,...,字段An from 表名A where [執(zhí)行條件]字段A和B可以字段名稱不一樣,但是數(shù)據(jù)類型必須一致
插入時數(shù)據(jù)重復如果記錄存在報錯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是平均成績)

idnamescore
1李明67

(1)常規(guī)插入

忽略字段名

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

idnamescore
1李明67
2張三74

按照字段插入

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

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

idnamescore
1李明67
2張三74
3孫華

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

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

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

idnamescore
1李明67
2張三74
3孫華
4劉平56
5周雨90

(2)從另一個表導入

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

iduser_namemobile_phone_number
1馬化騰13800000000
2任正非13800000011
3馬云13800000022

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

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

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

idnamescore
1李明67
2張三74
3孫華
4劉平56
5周雨90
6馬化騰13800000000
7馬云13800000022

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

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

如果記錄存在報錯

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

idnamescore
1李明67
2張三74
3孫華
4劉平56
5周雨90
6馬化騰13800000000
7馬云13800000022

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

replace 
	students
values(1, '張三', '74');

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

idnamescore
1張三74
2張三74
3孫華
4劉平56
5周雨90
6馬化騰13800000000
7馬云13800000022

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

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

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

idnamescore
1李明67
2張三74
3孫華
4劉平56
5周雨90
6馬化騰13800000000
7馬云13800000022

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

-- ----------------------------
-- Table structure for students
-- ----------------------------
DROP TABLE IF EXISTS `students`;
CREATE TABLE `students`  (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '學生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 '手機號碼',
  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默認從1開始。

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

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

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

[注意]:字段要與值一一對應。

其余注意事項

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

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

相關(guān)文章

  • 記一次MySQL更新語句update的踩坑

    記一次MySQL更新語句update的踩坑

    這篇文章主要介紹了記一次MySQL更新語句update的踩坑,幫助大家更好的理解和使用MySQL的更新語句,感興趣的朋友可以了解下
    2020-11-11
  • MySQL?常用引擎總結(jié)分享

    MySQL?常用引擎總結(jié)分享

    這篇文章主要介紹了MySQL?常用引擎總結(jié)分享,MySQL有很多存儲引擎,所謂的存儲引擎是指用于存儲、處理和保護數(shù)據(jù)的核心服務,更多常用引擎分享,需要的小伙伴可以參考下面文章內(nèi)容
    2022-06-06
  • Myeclipse連接mysql數(shù)據(jù)庫心得體會

    Myeclipse連接mysql數(shù)據(jù)庫心得體會

    這篇文章主要為大家詳細介紹了MyEclipse連接MySQL數(shù)據(jù)庫圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 一次非法關(guān)機導致mysql數(shù)據(jù)表損壞的實例解決

    一次非法關(guān)機導致mysql數(shù)據(jù)表損壞的實例解決

    本文介紹由于非法硬件關(guān)機,造成了mysql的數(shù)據(jù)表損壞,數(shù)據(jù)庫不能正常運行的一個實例,接下來是作者排查錯誤的過程,希望對大家能有所幫助
    2013-01-01
  • 一次Mysql死鎖排查過程的全紀錄

    一次Mysql死鎖排查過程的全紀錄

    在測試環(huán)境測試給用戶并發(fā)發(fā)送卡券時,出現(xiàn)了死鎖,通過查找相關(guān)的資料解決了這個,所以想著總結(jié)出來,所以下面這篇文章主要是關(guān)于一次Mysql死鎖排查過程的全紀錄,需要的朋友可以參考下,希望大家從中能有所幫助。
    2017-02-02
  • 禁止mysql做域名解析(解決遠程訪問mysql時很慢)

    禁止mysql做域名解析(解決遠程訪問mysql時很慢)

    當遠程訪問mysql時,mysql會解析域名,會導致訪問速度很慢
    2010-04-04
  • mysql8.4版本mysql_native_password無法連接問題解決

    mysql8.4版本mysql_native_password無法連接問題解決

    用dbeaver可以直接連接,但是用NAVICAT連接后報錯,本文主要介紹了mysql8.4版本mysql_native_password無法連接問題解決,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • 阿里云配置MySQL-server?8.0遠程登錄的實現(xiàn)

    阿里云配置MySQL-server?8.0遠程登錄的實現(xiàn)

    我們經(jīng)常會碰到需要遠程訪問數(shù)據(jù)庫的場景,本文主要介紹了阿里云配置MySQL-server?8.0遠程登錄的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • 詳解MySQL中的NULL值

    詳解MySQL中的NULL值

    這篇文章主要介紹了MySQL中的NULL值的相關(guān)知識,是MySQL入門學習中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • MySQL中如何在原有的表中增加一列

    MySQL中如何在原有的表中增加一列

    這篇文章主要介紹了MySQL中如何在原有的表中增加一列問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評論

辽源市| 华容县| 综艺| 金川县| 汉源县| 苏尼特左旗| 吉木萨尔县| 广丰县| 会东县| 马边| 宁明县| 清河县| 溆浦县| 油尖旺区| 阿鲁科尔沁旗| 奉节县| 离岛区| 景洪市| 吉首市| 定州市| 会昌县| 甘孜| 阿荣旗| 永福县| 涡阳县| 星座| 北流市| 闻喜县| 鄂托克前旗| 广西| 拜城县| 木里| 平罗县| 左贡县| 沧源| 石家庄市| 凤山县| 桓台县| 天柱县| 旬阳县| 霍山县|