插入記錄
插入記錄
插入記錄有兩種個基本語法
插入基本語法一
插入基本語法二
?
說明
基本語法1和基本語法2的區(qū)別是:
1.??? 基本語法1的插入語句,表中有多少個字段就必須要插入多少個值。一個不能多,一個也不能少。若有默認值,不想傳,可以寫上null。
2.??? 基本語法2中,除非有必填字段必須要寫入值外。如果有默認值的不想寫可以忽略不寫。mysql會自動補全默認值。
3.??? 基本語法2中,以user(id,username,sex)字段順序為值的順序。
假設有一張表為user表,我們對字段、字段說明、類型和字段選填和必須狀態(tài)進行說明,表結構如下:
按照基本語法一寫上表中的插入語句:
insert into user values(null,'王開 ','php@163.com',null ,1);
注意
1.??? 可以不指定字段名稱,但是 values 后面的順序應該和表字段的排序一致。
2.??? 有默認值的字段可以不寫,則為默認值。
3.??? 如果有默認值或者可空字段不想傳入具體值,可寫入null。
4.??? 數(shù)據(jù)格式必須要與表規(guī)定的數(shù)據(jù)格式一致。
按照基本語法二寫上表中的插入語句:
insert into user(username,sex) values('王開',1);
注意
1.??? ID為自增的字段可以不用傳入值,每插入一次這個字段的值會自動向上加1。
2.??? 有默認值和可為空的字段可不傳
3.??? 以表user(username,sex)的插入順序為準
4.??? 基本語法二為更常用的用法
基本語法變形:一次插入多條記錄
insert into user(username,password,sex) values('黃曉明', 'abcdef', 1), ( 'angelababy', 'bcdeef', 0), ( '陳赫', '123456', 1), ('王寶強', '987654', 1);
插入記錄后返回該記錄ID
Mysql提供了一個LAST_INSERT_ID()的函數(shù)。 mysql> SELECT LAST_INSERT_ID(); -> 195
簡單說來,就是這個函數(shù)將返回插入的那條記錄在表中自增的那個字段的值,一般我們都給那個自增字段命名為ID。這樣就可以返回剛插入的記錄的ID值了。
mysql 記錄不存在時插入 記錄存在則更新的實現(xiàn)方法
mysql> truncate `200702`; Query OK, 0 rows affected (0.01 sec) mysql> select * from `200702`; Empty set (0.01 sec) mysql> insert into `200702` (`domain`, `2nd_domain`, `tld`, `query_ns1`, `query_ns2`, `report_date`) values ('dnspod.com', 'dnspod', 'com', 1000, 2000, '2007-02-04') ON DUPLICATE KEY UPDATE `query_ns1` = `query_ns1` + 1000, `query_ns2` = `query_ns2` + 2000; Query OK, 1 row affected (0.00 sec)
當然,建表的時候,千萬別忘記了給domain做一個unique
UNIQUE KEY `domain` (`domain`,`report_date`)
?