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

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

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

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

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

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

2、語法介紹

2.1 insert into

每個字段與其值是嚴格一一對應(yīng)的。

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

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

語法如下:

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

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

2.2 insert ignore into

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

語法如下:

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

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

題外:

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

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

INSERT … ON DUPLICATE KEY UPDATE

2.3 replace into

3、使用示例

初始表準備:

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

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

首先插入一些為方便測試的數(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);

此時查詢:

select * from study

開始測試:

(一)測試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錯誤(1062):Duplicate entry '1' for key 'PRIMARY' */
/* 受影響記錄行數(shù): 0  已找到記錄行: 0  警告: 0  持續(xù)時間 0 的 2 條查詢: 0.000 秒. */

報錯。此時表中的數(shù)據(jù):id 為 7的數(shù)據(jù)是沒有插入成功的

(二)測試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ù)時間 3 條查詢: 0.062 秒. */
SHOW WARNINGS LIMIT 5;

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

(三)測試 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ù)時間 2 條查詢: 0.015 秒. */

插入成功。此時表中的數(shù)據(jù):id 為 1 的 因為存在所以數(shù)據(jù)被更新了,而id為8 之前并沒有,所以其數(shù)據(jù)也并沒有更新

(四)測試 replace into

經(jīng)過上面的操作,目前的表數(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ù)時間 3 條查詢: 0.000 秒. */

插入成功。此時表中的數(shù)據(jù):id 為 1 的 因為存在所以數(shù)據(jù)被更新為了11,而id為9 之前并沒有,所以其數(shù)據(jù)也并沒有更新

注意的是:

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

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

總結(jié)

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

相關(guān)文章

  • 10個mysql中select語句的簡單用法

    10個mysql中select語句的簡單用法

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

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

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

    Java的Struts框架中append標簽與generator標簽的使用

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

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

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

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

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

    淺談MySQL中字符串匹配的N種姿勢

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

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

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

    MySql獲取某個字段存在于哪個表的sql語句

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

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

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

    mysql安裝報錯unknown variable mysqlx_port=0.0

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

最新評論

休宁县| 新营市| 宜宾县| 枞阳县| 赤壁市| 塔城市| 井研县| 德阳市| 久治县| 龙游县| 长丰县| 奉节县| 楚雄市| 保靖县| 昆山市| 南川市| 宁陕县| 安化县| 山阴县| 涞源县| 武穴市| 离岛区| 青岛市| 新乡县| 永靖县| 尚志市| 平顶山市| 鞍山市| 金华市| 长岛县| 繁昌县| 五台县| 安仁县| 保德县| 电白县| 西宁市| 依兰县| 呈贡县| 沐川县| 定结县| 东丰县|