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

mysql insert語句操作實(shí)例講解

 更新時(shí)間:2014年12月02日 10:55:27   投稿:junjie  
這篇文章主要介紹了mysql insert語句操作實(shí)例講解,本文講解了insert的基本語法、批量插入多條數(shù)據(jù)、使用set插入數(shù)據(jù)、INSERT…SELECT語句等內(nèi)容,需要的朋友可以參考下

insert的語法

復(fù)制代碼 代碼如下:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    VALUES ({expr | DEFAULT},...),(...),...
    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
或:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name
    SET col_name={expr | DEFAULT}, ...
    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
或:

INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    SELECT ...
    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]

如果列清單和VALUES清單均為空清單,則INSERT會(huì)創(chuàng)建一個(gè)行,每個(gè)列都被設(shè)置為默認(rèn)值:

復(fù)制代碼 代碼如下:

INSERT INTO tbl_name () VALUES();

假設(shè)worker表只有name和email,插入一條數(shù)據(jù)

復(fù)制代碼 代碼如下:

insert into worker values(“tom”,”tom@yahoo.com”);

批量插入多條數(shù)據(jù)

復(fù)制代碼 代碼如下:

insert into worker values(‘tom','tom@yahoo.com'),(‘paul','paul@yahoo.com');

給出要賦值的那個(gè)列,然后再列出值的插入數(shù)據(jù)

復(fù)制代碼 代碼如下:

insert into worker (name) values (‘tom');
insert into worker (name) values (‘tom'), (‘paul');

使用set插入數(shù)據(jù)

復(fù)制代碼 代碼如下:

insert into worker set name='tom';

在 SET 子句中未命名的行都賦予一個(gè)缺省值,使用這種形式的 INSERT 語句不能插入多行。

一個(gè)expression可以引用在一個(gè)值表先前設(shè)置的任何列,例如:

復(fù)制代碼 代碼如下:

INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2);
--但不能這樣
INSERT INTO tbl_name (col1,col2) VALUES(col2*2,15);

使用INSERT…SELECT語句插入從其他表選擇的行

復(fù)制代碼 代碼如下:

insert into tbl_name1(col1,col2) select col3,col4 from tbl_name2;
--如果每一列都有數(shù)據(jù)
insert into tbl_name1 select col3,col4 from tbl_name2;

查詢不能包含一個(gè)ORDER BY子句,而且INSERT語句的目的表不能出現(xiàn)在SELECT查詢部分的FROM子句.

 ON DUPLICATE KEY UPDATE

如果您指定了ON DUPLICATE KEY UPDATE,并且插入行后會(huì)導(dǎo)致在一個(gè)UNIQUE索引或PRIMARY KEY中出現(xiàn)重復(fù)值,則執(zhí)行舊行UPDATE。

復(fù)制代碼 代碼如下:

--假設(shè)a,b為唯一索引,表table沒有1,2這樣的行是正常插入數(shù)據(jù),沖突時(shí),更新c列的值
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=3;
--或者是
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=values(c);
--引用其他列更新沖突的行
INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);
 向一個(gè)已定義為NOT NULL的列中插入NULL。對(duì)于一個(gè)多行INSERT語句或INSERT INTO...SELECT語句,根據(jù)列數(shù)據(jù)的類型,列被設(shè)置為隱含的默認(rèn)值。對(duì)于數(shù)字類型,默認(rèn)值為0;對(duì)于字符串類型,默認(rèn)值為空字符串('');對(duì)于日期和時(shí)間類型,默認(rèn)值為“zero”值。

INSERT INTO...SELECT的ON DUPLICATE KEY UPDATE

復(fù)制代碼 代碼如下:

insert into tbl_name1(a,b,c)
  select col1,col2,col3 from tbl_name2
ON DUPLICATE KEY UPDATE c=values(c);

INSERT DELAYED

如果您的客戶端不能等待INSERT完成,則這個(gè)選項(xiàng)是非常有用的,當(dāng)一個(gè)客戶端使用INSERT DELAYED時(shí),會(huì)立刻從服務(wù)器處得到一個(gè)確定。并且行被排入隊(duì)列,當(dāng)表沒有被其它線程使用時(shí),此行被插入。

使用INSERT DELAYED的另一個(gè)重要的好處是,來自許多客戶端的插入被集中在一起,并被編寫入一個(gè)塊。這比執(zhí)行許多獨(dú)立的插入要快很多。

復(fù)制代碼 代碼如下:

INSERT DELAYED INTO worker (name) values (‘tom'), (‘paul');

使用DELAYED時(shí)有一些限制:

1.INSERT DELAYED僅適用于MyISAM, MEMORY和ARCHIVE表。對(duì)于MyISAM表,如果在數(shù)據(jù)文件的中間沒有空閑的塊,則支持同時(shí)采用SELECT和INSERT語句。在這些情況下,基本不需要對(duì)MyISAM使用INSERT DELAYED。

2.INSERT DELAYED應(yīng)該僅用于指定值清單的INSERT語句。服務(wù)器忽略用于INSERT DELAYED...SELECT語句的DELAYED和INSERT DELAYED...ON DUPLICATE UPDATE語句的DELAYED。

3.因?yàn)樵谛斜徊迦肭?,語句立刻返回,所以您不能使用LAST_INSERT_ID()來獲取AUTO_INCREMENT值。AUTO_INCREMENT值可能由語句生成。

4.對(duì)于SELECT語句,DELAYED行不可見,直到這些行確實(shí)被插入了為止。

5.DELAYED在從屬復(fù)制服務(wù)器中被忽略了,因?yàn)镈ELAYED不會(huì)在從屬服務(wù)器中產(chǎn)生與主服務(wù)器不一樣的數(shù)據(jù)。

相關(guān)文章

  • MYSQL?數(shù)據(jù)庫時(shí)間字段?INT,TIMESTAMP,DATETIME?性能效率的比較介紹

    MYSQL?數(shù)據(jù)庫時(shí)間字段?INT,TIMESTAMP,DATETIME?性能效率的比較介紹

    這篇文章主要介紹了MYSQL數(shù)據(jù)庫時(shí)間字段INT,TIMESTAMP,DATETIME性能效率的比較介紹,文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • MySQL之淺談DDL和DML

    MySQL之淺談DDL和DML

    大家好,本篇文章主要講的是MySQL之淺談DDL和DML,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • asp+mysql+utf8 網(wǎng)頁出現(xiàn)亂碼問題的解決方法

    asp+mysql+utf8 網(wǎng)頁出現(xiàn)亂碼問題的解決方法

    無論在網(wǎng)頁中加多少UTF8的定義,顯示的結(jié)果都還是會(huì)有一些小格子,反而定義為gb2312,顯示完全正常
    2014-03-03
  • MySQL自增列插入0值的解決方案

    MySQL自增列插入0值的解決方案

    基于業(yè)務(wù)邏輯的要求,需要在MySQL的自增列插入0值,針對(duì)此需求,本文給予詳細(xì)的解決方案,感興趣的你可以參考下哈,希望可以幫助到你
    2013-03-03
  • MySQL存儲(chǔ)過程圖文實(shí)例講解

    MySQL存儲(chǔ)過程圖文實(shí)例講解

    雖然MySQL的存儲(chǔ)過程一般情況下是不會(huì)使用到的,但是在一些特殊場景中,還是有需求的,下面這篇文章主要給大家介紹了關(guān)于MySQL存儲(chǔ)過程的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • Mysql錯(cuò)誤Cannot find or open table x/x from the internal問題解決方法

    Mysql錯(cuò)誤Cannot find or open table x/x from the internal問題解決方法

    這篇文章主要介紹了Mysql錯(cuò)誤Cannot find or open table x/x from the internal問題解決方法,需要的朋友可以參考下
    2014-06-06
  • Docker啟動(dòng)mysql配置實(shí)現(xiàn)過程

    Docker啟動(dòng)mysql配置實(shí)現(xiàn)過程

    這篇文章主要介紹了Docker啟動(dòng)mysql配置實(shí)現(xiàn)過程,文中附含詳細(xì)的圖文示例,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家早日升職加薪
    2021-09-09
  • MySql數(shù)據(jù)庫觸發(fā)器使用教程

    MySql數(shù)據(jù)庫觸發(fā)器使用教程

    MySQL從5.0.2版本開始支持觸發(fā)器,MySQL的觸發(fā)器和存儲(chǔ)過程一樣,都是嵌入到MySQL服務(wù)器的一段程序,這篇文章主要給大家介紹了關(guān)于MySql數(shù)據(jù)庫觸發(fā)器使用的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • SQL性能優(yōu)化方法及性能測試

    SQL性能優(yōu)化方法及性能測試

    這篇文章主要介紹了SQL性能優(yōu)化方法及性能測試,文章圍繞主題展開詳細(xì)內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2022-05-05
  • MySQL刪除表數(shù)據(jù)、清空表命令詳解(truncate、drop、delete區(qū)別)

    MySQL刪除表數(shù)據(jù)、清空表命令詳解(truncate、drop、delete區(qū)別)

    介紹了MySQL中清空或刪除表數(shù)據(jù)的三種方法:truncate、delete和drop,以及它們的特點(diǎn)、使用場景和注意事項(xiàng),Truncate用于快速刪除表中所有數(shù)據(jù)并釋放空間,但不保留表結(jié)構(gòu);delete用于刪除表中特定行或所有數(shù)據(jù),保留表結(jié)構(gòu)且操作可回滾
    2024-10-10

最新評(píng)論

定南县| 图木舒克市| 江川县| 肥东县| 丰城市| 香港 | 绥江县| 余干县| 承德县| 古浪县| 五莲县| 航空| 莲花县| 琼结县| 郧西县| 南康市| 肇庆市| 陕西省| 云南省| 迁西县| 同仁县| 乐东| 武川县| 乌什县| 隆德县| 黄平县| 兴文县| 驻马店市| 上杭县| 浮山县| 儋州市| 建平县| 蒲江县| 西青区| 余姚市| 嘉义市| 德保县| 禄劝| 彭阳县| 吉林省| 公安县|