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

Mysql插入數(shù)據(jù)方式(insert into 、replace into解析)

 更新時(shí)間:2024年01月04日 14:41:32   作者:pan_mlpan  
這篇文章主要介紹了Mysql插入數(shù)據(jù)方式(insert into 、replace into解析),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

1、插入數(shù)據(jù)方法

mysql中常用的三種插入數(shù)據(jù)的語(yǔ)句:

  • insert into:正常的插入數(shù)據(jù),插入數(shù)據(jù)的時(shí)候會(huì)檢查主鍵或者唯一索引,如果出現(xiàn)重復(fù)就會(huì)報(bào)錯(cuò);
  • replace into:表示插入并替換數(shù)據(jù),若表中有primary key或者unique索引,在插入數(shù)據(jù)的時(shí)候,若遇到重復(fù)的數(shù)據(jù),則用新數(shù)據(jù)替換,如果沒(méi)有數(shù)據(jù)效果則和insert into一樣;
  • insert ignore into:插入并忽略數(shù)據(jù),如果中已經(jīng)存在相同的記錄,則忽略當(dāng)前新數(shù)據(jù)。這樣不用校驗(yàn)是否存在了,有則忽略,無(wú)則添加

2、語(yǔ)法介紹

2.1 insert into

每個(gè)字段與其值是嚴(yán)格一一對(duì)應(yīng)的。

也就是說(shuō):每個(gè)值、值的順序、值的類型必須與對(duì)應(yīng)的字段相匹配。

但是,各字段也無(wú)須與其在表中定義的順序一致,它們只要與 VALUES中值的順序一致即可。

語(yǔ)法如下:

# 表中有些字段有默認(rèn)值,則可以直接根據(jù)字段插入數(shù)據(jù)
INSERT INTO 表名(字段名1,字段名2,...) VALUES (值 1,值 2,...);

# 按照表中所有字段進(jìn)行插入數(shù)據(jù),一定要與字段在表中定義的順序一致
INSERT INTO 表名 VALUES (值 1,值 2,...);

2.2 insert ignore into

這種方式的語(yǔ)法跟insert into 是一樣的,只不過(guò)在遇到重復(fù)的數(shù)據(jù)時(shí)做出的處理不一致,有重復(fù)的就忽略該條數(shù)據(jù)的插入

語(yǔ)法如下:

# 表中有些字段有默認(rèn)值,則可以直接根據(jù)字段插入數(shù)據(jù)
INSERT IGNORE INTO 表名(字段名1,字段名2,...) VALUES (值 1,值 2,...);

# 按照表中所有字段進(jìn)行插入數(shù)據(jù),一定要與字段在表中定義的順序一致
INSERT IGNORE INTO 表名 VALUES (值 1,值 2,...);

題外:

MySQL 自4.1版以后開始支持INSERT … ON DUPLICATE KEY UPDATE語(yǔ)法,對(duì)于插入數(shù)據(jù)時(shí)候遇到重復(fù)的primary key 時(shí)候,可以進(jìn)行數(shù)據(jù)的更新,就避免了insert ignore into遇到重復(fù)的數(shù)據(jù)直接忽略的不足。

但是一定要保證使用的時(shí)候是想要更新重復(fù)數(shù)據(jù)哦,不然就尷尬啦~~

INSERT … ON DUPLICATE KEY UPDATE

2.3 replace into

3、使用示例

初始表準(zhǔn)備:

創(chuàng)建一個(gè)study 表, id 是自增主鍵

CREATE TABLE study(
	ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT ,
	NAME VARCHAR(20) NOT NULL,
	AGE INT(10)
);

首先插入一些為方便測(cè)試的數(shù)據(jù):

INSERT INTO study VALUES(1 , 'a' , 10);
INSERT INTO study VALUES(2 , 'b' , 11);
INSERT INTO study VALUES(3 , 'c' , 12);
INSERT INTO study VALUES(4 , 'd' , 13);
INSERT INTO study VALUES(5 , 'e' , 14);
INSERT INTO study VALUES(6 , 'f' , 15);

此時(shí)查詢:

select * from study

開始測(cè)試:

(一)測(cè)試insert into

例如,現(xiàn)在再插入id 為 1 的數(shù)據(jù)與id為7的數(shù)據(jù)

INSERT INTO study VALUES(1 , 'a' , 11);
INSERT INTO study VALUES(7 , 'g' , 16);

結(jié)果:

INSERT INTO study VALUES(1 , 'a' , 11);
/* SQL錯(cuò)誤(1062):Duplicate entry '1' for key 'PRIMARY' */
/* 受影響記錄行數(shù): 0  已找到記錄行: 0  警告: 0  持續(xù)時(shí)間 0 的 2 條查詢: 0.000 秒. */

報(bào)錯(cuò)。此時(shí)表中的數(shù)據(jù):id 為 7的數(shù)據(jù)是沒(méi)有插入成功的

(二)測(cè)試insert ignore into

例如,做同樣的事情,現(xiàn)在再插入id 為 1 的數(shù)據(jù)與id為7的數(shù)據(jù)

INSERT INTO study VALUES(1 , 'a' , 11);
INSERT INTO study VALUES(7 , 'g' , 16);

結(jié)果:

INSERT IGNORE INTO study VALUES(1 , 'a' , 11);
INSERT IGNORE INTO study VALUES(7 , 'g' , 16);
/* 受影響記錄行數(shù): 1  已找到記錄行: 0  警告: 1  持續(xù)時(shí)間 3 條查詢: 0.062 秒. */
SHOW WARNINGS LIMIT 5;

插入成功。此時(shí)表中的數(shù)據(jù):id 為 7的數(shù)據(jù)是插入成功,而id為1的數(shù)據(jù)也并沒(méi)有更新

(三)測(cè)試 INSERT … ON DUPLICATE KEY UPDATE

例如,做同樣的事情,現(xiàn)在再插入id 為 1 的數(shù)據(jù)與id為8的數(shù)據(jù)

INSERT INTO study VALUES(1 , 'a' , 11) ON DUPLICATE KEY UPDATE age = 12;
INSERT INTO study VALUES(8 , 'h' , 16) ON DUPLICATE KEY UPDATE age = 13;

結(jié)果:

INSERT INTO study VALUES(1 , 'a' , 11) ON DUPLICATE KEY UPDATE age = 12;
INSERT INTO study VALUES(8 , 'h' , 16) ON DUPLICATE KEY UPDATE age = 13;
/* 受影響記錄行數(shù): 3  已找到記錄行: 0  警告: 0  持續(xù)時(shí)間 2 條查詢: 0.015 秒. */

插入成功。此時(shí)表中的數(shù)據(jù):id 為 1 的 因?yàn)榇嬖谒詳?shù)據(jù)被更新了,而id為8 之前并沒(méi)有,所以其數(shù)據(jù)也并沒(méi)有更新

(四)測(cè)試 replace into

經(jīng)過(guò)上面的操作,目前的表數(shù)據(jù)由上圖所示。

例如,做同樣的事情,現(xiàn)在再插入id 為 1 的數(shù)據(jù)與id為9的數(shù)據(jù)。

REPLACE INTO study VALUES(1 , 'a' , 11);
REPLACE INTO study VALUES(9 , 'i' , 18);

結(jié)果:

REPLACE INTO study VALUES(1 , 'a' , 11);
REPLACE INTO study VALUES(9 , 'i' , 18);
/* 受影響記錄行數(shù): 3  已找到記錄行: 0  警告: 0  持續(xù)時(shí)間 3 條查詢: 0.000 秒. */

插入成功。此時(shí)表中的數(shù)據(jù):id 為 1 的 因?yàn)榇嬖谒詳?shù)據(jù)被更新為了11,而id為9 之前并沒(méi)有,所以其數(shù)據(jù)也并沒(méi)有更新

注意的是:

插入數(shù)據(jù)的表必須有主鍵或者是唯一索引!

否則的話,replace into 會(huì)直接插入數(shù)據(jù),這將導(dǎo)致表中出現(xiàn)重復(fù)的數(shù)據(jù)。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • 10個(gè)mysql中select語(yǔ)句的簡(jiǎn)單用法

    10個(gè)mysql中select語(yǔ)句的簡(jiǎn)單用法

    本篇文章主要講述的是MySQL SELECT句法的簡(jiǎn)單分析,我們大家都知道MySQL數(shù)據(jù)庫(kù)是我們大家經(jīng)常使用的數(shù)據(jù)庫(kù),其相關(guān)的應(yīng)用也是備受關(guān)注的,那么以下的文章主要是對(duì)MySQL SELECT句法的簡(jiǎn)單分析。
    2014-08-08
  • 如何使用mysql查詢24小時(shí)數(shù)據(jù)

    如何使用mysql查詢24小時(shí)數(shù)據(jù)

    在進(jìn)行實(shí)時(shí)數(shù)據(jù)處理時(shí),我們常常需要查詢最近24小時(shí)的數(shù)據(jù)來(lái)進(jìn)行分析和處理,下面我們將介紹如何使用MySQL查詢最近24小時(shí)的數(shù)據(jù),需要的朋友可以參考下
    2023-07-07
  • Java的Struts框架中append標(biāo)簽與generator標(biāo)簽的使用

    Java的Struts框架中append標(biāo)簽與generator標(biāo)簽的使用

    這篇文章主要介紹了Java的Struts框架中append標(biāo)簽與generator標(biāo)簽的使用方法,Struts是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下
    2015-12-12
  • MySQL并發(fā)更新數(shù)據(jù)時(shí)的處理方法

    MySQL并發(fā)更新數(shù)據(jù)時(shí)的處理方法

    在后端開發(fā)中我們不可避免的會(huì)遇見MySQL數(shù)據(jù)并發(fā)更新的情況,作為一名后端研發(fā),如何解決這類問(wèn)題也是必須要知道的,同時(shí)這也是面試中經(jīng)??疾斓闹R(shí)點(diǎn)。
    2019-05-05
  • mysql InnoDB建表時(shí)設(shè)定初始大小的方法

    mysql InnoDB建表時(shí)設(shè)定初始大小的方法

    這篇文章主要介紹了mysql InnoDB建表時(shí)設(shè)定初始大小的方法,需要大家到MYSQL后臺(tái)實(shí)際操作方可以看到效果
    2013-11-11
  • 淺談MySQL中字符串匹配的N種姿勢(shì)

    淺談MySQL中字符串匹配的N種姿勢(shì)

    本文主要介紹了淺談MySQL中字符串匹配的N種姿勢(shì),包括LIKE、REGEXP、全文索引及SOUNDEX,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-05-05
  • 重置MySQL數(shù)據(jù)庫(kù)root密碼(linux/windows)

    重置MySQL數(shù)據(jù)庫(kù)root密碼(linux/windows)

    linux與windows下重置mysql用戶名與密碼的方法,需要的朋友可以參考下。
    2010-12-12
  • MySql獲取某個(gè)字段存在于哪個(gè)表的sql語(yǔ)句

    MySql獲取某個(gè)字段存在于哪個(gè)表的sql語(yǔ)句

    本文為大家詳細(xì)介紹下通過(guò)MySql查詢某個(gè)字段所在表是哪一個(gè),具體的sql語(yǔ)句如下,感興趣的朋友可以參考下,希望對(duì)大家有所幫助
    2013-07-07
  • 淺析MySQL如何實(shí)現(xiàn)事務(wù)隔離

    淺析MySQL如何實(shí)現(xiàn)事務(wù)隔離

    使用過(guò)關(guān)系型數(shù)據(jù)庫(kù)的,應(yīng)該都事務(wù)的概念有所了解,知道事務(wù)有 ACID 四個(gè)基本屬性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持久性(Durability),今天我們主要來(lái)理解一下事務(wù)的隔離性
    2021-06-06
  • mysql安裝報(bào)錯(cuò)unknown variable mysqlx_port=0.0

    mysql安裝報(bào)錯(cuò)unknown variable mysqlx_port=0.0

    本文主要介紹了mysql安裝報(bào)錯(cuò)unknown variable mysqlx_port=0.0,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06

最新評(píng)論

会同县| 山丹县| 桃源县| 赞皇县| 洪江市| 余庆县| 彭泽县| 镇康县| 嘉荫县| 清流县| 仁寿县| 毕节市| 内江市| 资源县| 旬邑县| 河东区| 娄烦县| 荃湾区| 白河县| 广安市| 蒙自县| 黄梅县| 延寿县| 青岛市| 资溪县| 尉氏县| 靖宇县| 开阳县| 曲阜市| 青冈县| 海兴县| 济宁市| 河东区| 巴南区| 富蕴县| 池州市| 涿鹿县| 宣恩县| 兰州市| 海淀区| 通城县|