插入記錄LOGIN

插入記錄

插入記錄

插入記錄有兩個基本語法

插入基本語法一

QQ截图20161009153143.png

插入基本語法二

 QQ截图20161009153225.png

說明

基本語法1與基本語法2的差異是:

1.    基本語法1的插入語句,表格中有多少個欄位就必須插入多少個值。一個不能多,一個也不能少。若有預設值,不想傳,可以寫上null。

2.    基本語法2中,除非有必填欄位必須寫入值外。如果有預設值的不想寫可以忽略不寫。 mysql會自動補全預設值。

3.    基本語法2中,以user(id,username,sex)欄位順序為值的順序。

假設有一張表為user表,我們將欄位、欄位說明、型別和欄位選填和必須狀態進行說明,表結構如下:

QQ截图20161009153254.png

依照基本語法一寫上表中的插入語句:

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`)


下一節
<?php echo "Hello Mysql"; ?>
章節課件