《MYSQL數據庫正確使用MySQL INSERT INTO語句》要點:
本文介紹了MYSQL數據庫正確使用MySQL INSERT INTO語句,希望對您有用。如果有疑問,可以聯系我們。
MYSQL實例以下的文章主要介紹的是MySQL INSERT INTO語句的實際用法以及MySQL INSERT INTO語句中的相關語句的介紹,MySQL INSERT INTO語句在實際應用中是經常使用到的語句,所以對其相關的內容還是多多掌握為好.
MYSQL實例
INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] tbl_name [(col_name,...)]
VALUES (expression,...),(...),...
MYSQL實例
MySQLINSERT INTO SELECT語句:
MYSQL實例
INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] tbl_name [(col_name,...)]
SELECT ...
MYSQL實例
INSERT INTO語句:
MYSQL實例
INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] tbl_name
SET col_name=expression, col_name=expression, ...
MYSQL實例INSERT把新行插入到一個存在的表中,INSERTINTO... VALUES形式的語句基于明確指定的值插入行,MySQLINSERT INTO SELECT形式插入從其他表選擇的行,有多個值表的INSERT INTO... VALUES的形式在MySQL 3.22.5或以后版本中支持,col_name=expression語法在MySQL 3.22.10或以后版本中支持.
MYSQL實例tbl_name是行應該被插入其中的表.列名表或SET子句指出語句為那一列指定值.
MYSQL實例如果你為INSERT ... VALUES或INSERT ... SELECT不指定列表,所有列的值必須在VALUES()表或由SELECT提供.如果你不知道表中列的順序,使用DESCRIBE tbl_name來找出.
MYSQL實例任何沒有明確地給出值的列被設置為它的缺省值.例如,如果你指定一個列表并沒命名表中所有列,未命名的列被設置為它們的缺省值.缺省值賦值在7.7 CREATE TABLE句法中描述.
MYSQL實例一個expression可以引用在一個值表先前設置的任何列.例如,你能這樣:
MYSQL實例
MySQL> INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2);
MYSQL實例但不能這樣:
MYSQL實例
MySQL> INSERT INTO tbl_name (col1,col2) VALUES(col2*2,15);
MYSQL實例如果你指定關鍵詞LOW_PRIORITY,INSERT的執行被推遲到沒有其他客戶正在讀取表.在這種情況下,客戶必須等到插入語句完成后,如果表頻繁使用,它可能花很長時間.這與INSERT DELAYED讓客馬上繼續正好相反.
MYSQL實例如果你在一個有許多值行的INSERT中指定關鍵詞IGNORE,表中任何復制一個現有PRIMARY或UNIQUE鍵的行被忽略并且不被插入.如果你不指定IGNORE,插入如果有任何復制現有關鍵值的行被放棄.你可用C API函數MySQL_info()檢查多少行被插入到表中.
MYSQL實例如果MySQL用DONT_USE_DEFAULT_FIELDS選項配置,INSERT語句產生一個錯誤,除非你明確對需要一個非NULL值的所有列指定值.見4.7.3 典型configure選項.
MYSQL實例MySQLINSERT INTO ... SELECT語句滿足下列條件:
MYSQL實例查詢不能包含一個ORDER BY子句.
MYSQL實例INSERT語句的目的表不能出現在SELECT查詢部分的FROM子句,因為這在ANSI SQL中被禁止讓從你正在插入的表中SELECT.(問題是SELECT將可能發現在同一個運行期間內先前被插入的記錄.當使用子選擇子句時,情況能很容易混淆)
MYSQL實例AUTO_INCREMENT列象往常一樣工作.
MYSQL實例如果你使用INSERT ... SELECT或INSERT ... VALUES語句有多個值列表,你可以使用C API函數MySQL_info()得到查詢的信息.信息字符串的格式如下:
MYSQL實例Records: 100 Duplicates: 0 Warnings: 0
MYSQL實例Duplicates指出不能被插入的行的數量,因為他們與現有的唯一的索引值重復.Warnings指出在出現某些問題時嘗試插入列值的次數.在下列任何條件下都可能發生錯誤:
MYSQL實例插入NULL到被聲明了NOT NULL的列,列被設置為它的缺省值.
MYSQL實例將超出列范圍的值設置給一個數字列,值被剪切為范圍內適當的端點值.
MYSQL實例將數字列設成例如'10.34 a'的值,拖尾的垃圾被剝去并仍然是數字部分被插入.如果值根本不是一個數字,列被設置到0.
MYSQL實例把一個字符串插入到超過列的最大長度的一個CHAR、VARCHAR、TEXT或BLOB列中.值被截斷為列的最大長度.
MYSQL實例把一個對列類型不合法的值插入到一個日期或時間列.列被設置為該列類型適當的“零”值.
MYSQL實例對于INSERT語句的DELAYED選項是MySQL專屬的選項-如果你客戶有不能等到INSERT完成,它是很有用的.當你為日記登錄使用MySQL時,而且你也周期性地運行花很長時間完成的SELECT語句,這是一個常見的問題.DELAYED在面MySQL 3.22.15中被引入,它是MySQL對 ANSI SQL92 的一個擴展.
MYSQL實例當你使用INSERT DELAYED時,客戶將馬上準備好,并且當表不被任何其他的線程使用時,行將被插入.
MYSQL實例另一個使用INSERT DELAYED的主要好處是從很多客戶插入被捆綁在一起并且寫進一個塊.這比做很多單獨的插入要來的快.
MYSQL實例以上的相關內容就是對MySQL INSERT INTO語句的介紹,希望對大家的學習有所贊助.
《MYSQL數據庫正確使用MySQL INSERT INTO語句》是否對您有啟發,歡迎查看更多與《MYSQL數據庫正確使用MySQL INSERT INTO語句》相關教程,學精學透。維易PHP學院為您提供精彩教程。