天天看點

Mysql常用sql語句(22)- insert 插入資料

測試必備的Mysql常用sql語句系列

https://www.cnblogs.com/poloyy/category/1683347.html

前言

  • 終于講完基礎的查詢語句了...這篇講的就是插入資料
  • insert 屬于DML語句(資料操縱語句)

insert ... values 的文法格式

INSERT INTO <表名> [ <列名1> [ , … <列名n>] ]
VALUES (值1) [… , (值n) ];      

文法格式說明

  • <列名>:可以不指定,預設指定表的所有列名
  • values:字段有多少個,值就要有多少個,且順序要對應,否則會報錯

insert .. set 的文法格式

這個用的不多哈,了解為主;

INSERT INTO <表名>
SET <列名1> = <值1>,
        <列名2> = <值2>,
        …      

兩種文法格式的差別

 insert .. values 可以插入任意行資料,而 insert ... set 每次隻能插入一行資料

看看 emp 表的結構,友善後面栗子示範

Mysql常用sql語句(22)- insert 插入資料

栗子一:不指定字段,添加記錄

INSERT INTO emp
VALUES
    ( "20", "員工1", 3, 1, 1 );      

栗子二:指定所有字段,添加記錄

INSERT INTO emp ( id, NAME, dept_id, leader, is_enable )
VALUES
    ( "20", "員工1", 3, 1, 1 );      

上面兩個栗子添加的記錄資料是一樣的哦,隻是一個指定了所有字段,另一個是不指定任何字段

知識點

  • 指定多個字段時,字段的順序可以随意,不需要按照表定義的順序來寫,但要保證 values 的順序和字段的順序相同!
  • 指定的字段不用加單引号或者雙引号,否則會報錯

常見錯誤寫法

特别在寫代碼的時候,經常需要字元串連接配接,一不留意就會用引号把字段名括起來,這樣是不對的哦!

INSERT INTO emp ( 'id', 'name' )
VALUES
    ( "20", "員工1");      

報錯截圖

Mysql常用sql語句(22)- insert 插入資料

栗子三:複制表資料來插入

INSERT INTO emp ( id, NAME, dept_id, leader, is_enable ) SELECT
15,
NAME,
dept_id,
leader,
is_enable 
FROM
    emp 
WHERE
    id = 1;      

主要的文法格式

insert into <表名> [<字段名>,<字段名>..] select ....      

注意:如果是複制表資料的話,不用加 values() !