成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL INSERT INTO語句的正確用法

數據庫 MySQL
此文章主要向大家描述的是MySQL INSERT INTO語句的實際用法與MySQL INSERT INTO語句的正確操作步驟,以下就是文章的詳細內容。

以下的文章主要介紹的是MySQL INSERT INTO語句的實際用法以及MySQL INSERT INTO語句中的相關語句的介紹,MySQL INSERT INTO語句在實際應用中是經常使用到的語句,所以對其相關的內容還是多多掌握為好。

  1. INSERT [LOW_PRIORITY | DELAYED] [IGNORE]  
  2. [INTO] tbl_name [(col_name,...)]  
  3. VALUES (expression,...),(...),... 

MySQLINSERT INTO SELECT語句:

  1. INSERT [LOW_PRIORITY | DELAYED] [IGNORE]  
  2. [INTO] tbl_name [(col_name,...)]  
  3. SELECT ... 

INSERT INTO語句:

  1. INSERT [LOW_PRIORITY | DELAYED] [IGNORE]  
  2. [INTO] tbl_name  
  3. SET col_name=expressioncol_name=expression, ... 

INSERT把新行插入到一個存在的表中,INSERTINTO... VALUES形式的語句基于明確指定的值插入行,MySQLINSERT INTO SELECT形式插入從其他表選擇的行,有多個值表的INSERT INTO... VALUES的形式在MySQL 3.22.5或以后版本中支持,col_name=expression語法在MySQL 3.22.10或以后版本中支持。

tbl_name是行應該被插入其中的表。列名表或SET子句指出語句為那一列指定值。

如果你為INSERT ... VALUES或INSERT ... SELECT不指定列表,所有列的值必須在VALUES()表或由SELECT提供。如果你不知道表中列的順序,使用DESCRIBE tbl_name來找出。

任何沒有明確地給出值的列被設置為它的缺省值。例如,如果你指定一個列表并沒命名表中所有列,未命名的列被設置為它們的缺省值。缺省值賦值在7.7 CREATE TABLE句法中描述。

 

一個expression可以引用在一個值表先前設置的任何列。例如,你能這樣:

  1. MySQL> INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2); 

但不能這樣:

  1. MySQL> INSERT INTO tbl_name (col1,col2) VALUES(col2*2,15); 

如果你指定關鍵詞LOW_PRIORITY,INSERT的執行被推遲到沒有其他客戶正在讀取表。在這種情況下,客戶必須等到插入語句完成后,如果表頻繁使用,它可能花很長時間。這與INSERT DELAYED讓客馬上繼續正好相反。

如果你在一個有許多值行的INSERT中指定關鍵詞IGNORE,表中任何復制一個現有PRIMARY或UNIQUE鍵的行被忽略并且不被插入。如果你不指定IGNORE,插入如果有任何復制現有關鍵值的行被放棄。你可用C API函數MySQL_info()檢查多少行被插入到表中。

 

如果MySQL用DONT_USE_DEFAULT_FIELDS選項配置,INSERT語句產生一個錯誤,除非你明確對需要一個非NULL值的所有列指定值。見4.7.3 典型configure選項。

 

MySQLINSERT INTO ... SELECT語句滿足下列條件:

 

查詢不能包含一個ORDER BY子句。

 

INSERT語句的目的表不能出現在SELECT查詢部分的FROM子句,因為這在ANSI SQL中被禁止讓從你正在插入的表中SELECT。(問題是SELECT將可能發現在同一個運行期間內先前被插入的記錄。當使用子選擇子句時,情況能很容易混淆)

 

AUTO_INCREMENT列象往常一樣工作。

 

如果你使用INSERT ... SELECT或INSERT ... VALUES語句有多個值列表,你可以使用C API函數MySQL_info()得到查詢的信息。信息字符串的格式如下:

 

Records: 100 Duplicates: 0 Warnings: 0

Duplicates指出不能被插入的行的數量,因為他們與現有的唯一的索引值重復。Warnings指出在出現某些問題時嘗試插入列值的次數。在下列任何條件下都可能發生錯誤:

 

插入NULL到被聲明了NOT NULL的列,列被設置為它的缺省值。

將超出列范圍的值設置給一個數字列,值被剪切為范圍內適當的端點值。

 

將數字列設成例如'10.34 a'的值,拖尾的垃圾被剝去并仍然是數字部分被插入。如果值根本不是一個數字,列被設置到0。

 

把一個字符串插入到超過列的最大長度的一個CHAR、VARCHAR、TEXT或BLOB列中。值被截斷為列的最大長度。

 

把一個對列類型不合法的值插入到一個日期或時間列。列被設置為該列類型適當的“零”值。

 

對于INSERT語句的DELAYED選項是MySQL專屬的選項-如果你客戶有不能等到INSERT完成,它是很有用的。當你為日記登錄使用MySQL時,而且你也周期性地運行花很長時間完成的SELECT語句,這是一個常見的問題。DELAYED在面MySQL 3.22.15中被引入,它是MySQL對 ANSI SQL92 的一個擴展。

 

當你使用INSERT DELAYED時,客戶將馬上準備好,并且當表不被任何其他的線程使用時,行將被插入。

另一個使用INSERT DELAYED的主要好處是從很多客戶插入被捆綁在一起并且寫進一個塊。這比做很多單獨的插入要來的快。

以上的相關內容就是對MySQL INSERT INTO語句的介紹,望你能有所收獲。

【編輯推薦】

  1. MySQL導入導出.sql文件實踐演練
  2. MySQL數據庫中的5種數據類型簡介
  3. 對MySQL DELETE語法的詳細解析
  4. MySQL show的實際操作用法
  5. MySQL 游標的具體使用方案
責任編輯:佚名 來源: 博客園
相關推薦

2010-05-25 15:24:38

MySQL updat

2010-05-11 10:12:50

mysql數據庫sql

2010-05-18 19:03:21

linux MySQL

2010-05-31 11:13:00

MySQL Date函

2010-10-08 14:23:08

MySQL中INSER

2010-01-21 18:35:56

VB.NET Impo

2010-06-11 14:55:17

2010-11-24 17:36:02

MySQL條件查詢語句

2010-10-15 11:16:52

MySQL Show語

2010-11-26 15:32:24

MySQL decla

2011-07-22 16:59:30

MySQL數據庫嵌套查詢

2010-05-18 14:04:51

MySQL語句

2010-05-20 08:47:21

MySQL數據庫

2010-10-27 15:03:47

Oracle with

2010-09-07 13:50:41

SQL語句

2010-04-30 17:58:55

Oracle trun

2010-04-26 15:30:45

Oracle join

2010-04-30 10:47:26

Oracle Nvl函

2010-04-30 11:58:45

Oracle sequ

2010-06-01 16:02:00

MySQL 常用語句
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美视频区 | 一区二区高清 | av黄色在线 | 97精品超碰一区二区三区 | 日韩一区二区在线视频 | 欧美aⅴ片 | h肉视频| 欧美一区二区三区在线观看视频 | 丝袜美腿av | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 精品亚洲一区二区 | 色综合久久久 | 日韩欧美一区二区三区四区 | 精品国产一区二区国模嫣然 | 久久久久久久久中文字幕 | 色呦呦网站 | 国产综合av| 欧美日产国产成人免费图片 | 国产激情91久久精品导航 | 高清av电影 | 99国内精品久久久久久久 | 无码一区二区三区视频 | 99色综合| 91综合网 | 国产9999精品 | 国产精品色 | 日本不卡高字幕在线2019 | 免费视频一区二区 | 777777777亚洲妇女| h视频在线免费 | 国产一区在线免费 | 午夜国产一级片 | 日本久久精品视频 | 美美女高清毛片视频免费观看 | 91精品国产综合久久小仙女图片 | 一区二区三区国产好的精 | av在线免费观看网址 | 亚洲精品久久区二区三区蜜桃臀 | 久久99蜜桃综合影院免费观看 | 欧美精品网站 | 国产福利在线视频 |