MySQL插入語句解析

來源:互聯網
上載者:User

標籤:

1.INSERT INTO

  最常用簡單的插入語句,可以有以下兩種用法

  1>  INSERT INTO tb_user(id, name, age) VALUES (100022, ‘Tom‘, 25); // 只給指定的列賦值

  2>  INSERT INTO tb_user VALUES (100022, ‘Tom‘, 25);  // 必須 給所有列賦值

  註: INTO關鍵字可以省略

 

2. INSERT INTO  ... SELECT

  可以將查詢結果插入表中

  insert into t2same(name,age) select name, age from t2;

  insert into t2same select id, name, age from t2;

  註:1> 查詢不能包含一個ORDER BY子句

    2> INSERT語句的目的表不能出現在SELECT查詢部分的FROM子句

 

3. INSERT IGNORE INTO

  當插入資料時,如出現錯誤時(如重複資料)將不返回錯誤,只以警告形式返回。通常這也是我們使用IGNORE的目的,避免插入重複資料。

但是當有SQL語句語法錯誤時也不返回錯誤,所以使用ignore請確保語句本身沒有問題,否則也會被忽略掉。

  重複資料的判斷依據:主鍵列相同或者唯一索引列相同。

  例: 

CREATE TABLE tb_user (    id int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT,    name VARCHAR(50) NOT NULL,    id_no VARCHAR(20) NOT NULL UNIQUE,    age int(3))INSERT INTO tb_user VALUES(1, ‘Tom‘, 25);
-- 下方兩句既不會插入資料也不會報錯INSERT IGNORE INTO tb_user VALUES(1, ‘Lucy‘, 18);INSERT IGNORE INTO tb_user VALUES(2, ‘Tom‘, 18);

 

4. REPLACE INTO

  表示插入替換資料,目的表中有Primary Key,或者UNIQUE索引,如果表中已經存在資料,則用新資料替換,如果沒有資料則效果同INSERT INTO.

  在表中已存在和要插入相同資料時,REPLACE INTO 和 INSERT IGNORE INTO 二者作用正好相反。

 

5. ON DUPLICATE KEY UPDATE

  當PRIMARY或者UNIQUE重複時,則執行UPDATE語句,在原有記錄基礎上,更新指定欄位內容,其它欄位內容保留。如UPDATE後為無用語句,如id=id,則同3功能相同。

  例如,為了實現name重複的資料插入不報錯,可使用一下語句:

  INSERT INTO tb_user (name) VALUES (‘Tom‘) ON DUPLICATE KEY UPDATE id = id

 

MySQL插入語句解析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.