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

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

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

insert的語(yǔ)法

復(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 語(yǔ)句不能插入多行。

一個(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語(yǔ)句插入從其他表選擇的行

復(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語(yǔ)句的目的表不能出現(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語(yǔ)句或INSERT INTO...SELECT語(yǔ)句,根據(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語(yǔ)句。在這些情況下,基本不需要對(duì)MyISAM使用INSERT DELAYED。

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

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

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

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

相關(guān)文章

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

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

    這篇文章主要介紹了MYSQL數(shù)據(jù)庫(kù)時(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)頁(yè)出現(xiàn)亂碼問題的解決方法

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

    無論在網(wǎng)頁(yè)中加多少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ì)使用到的,但是在一些特殊場(chǎng)景中,還是有需求的,下面這篇文章主要給大家介紹了關(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ù)庫(kù)觸發(fā)器使用教程

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

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

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

    這篇文章主要介紹了SQL性能優(yōu)化方法及性能測(cè)試,文章圍繞主題展開詳細(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)、使用場(chǎng)景和注意事項(xiàng),Truncate用于快速刪除表中所有數(shù)據(jù)并釋放空間,但不保留表結(jié)構(gòu);delete用于刪除表中特定行或所有數(shù)據(jù),保留表結(jié)構(gòu)且操作可回滾
    2024-10-10

最新評(píng)論

徐汇区| 宜城市| 金寨县| 安义县| 满城县| 崇左市| 南和县| 茶陵县| 武夷山市| 曲阳县| 赫章县| 五寨县| 洛南县| 通州市| 卫辉市| 墨竹工卡县| 万年县| 墨竹工卡县| 香港 | 基隆市| 会理县| 秀山| 商都县| 如皋市| 太保市| 广西| 大田县| 牡丹江市| 随州市| 南川市| 禄丰县| 大安市| 江津市| 涟水县| 双流县| 株洲市| 米脂县| 西丰县| 广德县| 乌什县| 南昌县|