插入記錄
插入記錄有兩個基本語法
插入基本語法一
插入基本語法二
說明
基本語法1與基本語法2的差異是:
1. 基本語法1的插入語句,表格中有多少個欄位就必須插入多少個值。一個不能多,一個也不能少。若有預設值,不想傳,可以寫上null。
2. 基本語法2中,除非有必填欄位必須寫入值外。如果有預設值的不想寫可以忽略不寫。 mysql會自動補全預設值。
3. 基本語法2中,以user(id,username,sex)欄位順序為值的順序。
假設有一張表為user表,我們將欄位、欄位說明、型別和欄位選填和必須狀態進行說明,表結構如下:
依照基本語法一寫上表中的插入語句:
insert into user values(null,'王开 ','php@163.com',null ,1);
注意
1. 可以不指定欄位名稱,但是values 後面的順序應該和表格欄位的排序一致。
2. 有預設值的欄位可以不寫,則為預設值。
3. 若有預設值或可空白欄位不想傳入特定值,則可寫入null。
4. 資料格式必須與表格規定的資料格式一致。
依照基本語法二寫上表中的插入語句:
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()的函数。 mysql> SELECT LAST_INSERT_ID(); -> 195
簡單說來,就是這個函數將傳回插入的那筆記錄在表格中自增的那個欄位的值,一般我們都會給那個自增欄位命名為ID。這樣就可以傳回剛插入的記錄的ID值了。
mysql 記錄不存在時插入記錄存在則更新的實作方法
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`)