插入記錄
插入記錄
插入記錄有兩種個(gè)基本語(yǔ)法
插入基本語(yǔ)法一
插入基本語(yǔ)法二
說(shuō)明
基本語(yǔ)法1和基本語(yǔ)法2的區(qū)別是:
1. 基本語(yǔ)法1的插入語(yǔ)句,表中有多少個(gè)字段就必須要插入多少個(gè)值。一個(gè)不能多,一個(gè)也不能少。若有默認(rèn)值,不想傳,可以寫(xiě)上null。
2. 基本語(yǔ)法2中,除非有必填字段必須要寫(xiě)入值外。如果有默認(rèn)值的不想寫(xiě)可以忽略不寫(xiě)。mysql會(huì)自動(dòng)補(bǔ)全默認(rèn)值。
3. 基本語(yǔ)法2中,以u(píng)ser(id,username,sex)字段順序?yàn)橹档捻樞颉?/p>
假設(shè)有一張表為user表,我們對(duì)字段、字段說(shuō)明、類(lèi)型和字段選填和必須狀態(tài)進(jìn)行說(shuō)明,表結(jié)構(gòu)如下:
按照基本語(yǔ)法一寫(xiě)上表中的插入語(yǔ)句:
insert into user values(null,'王開(kāi) ','php@163.com',null ,1);
注意
1. 可以不指定字段名稱(chēng),但是 values 后面的順序應(yīng)該和表字段的排序一致。
2. 有默認(rèn)值的字段可以不寫(xiě),則為默認(rèn)值。
3. 如果有默認(rèn)值或者可空字段不想傳入具體值,可寫(xiě)入null。
4. 數(shù)據(jù)格式必須要與表規(guī)定的數(shù)據(jù)格式一致。
按照基本語(yǔ)法二寫(xiě)上表中的插入語(yǔ)句:
insert into user(username,sex) values('王開(kāi)',1);
注意
1. ID為自增的字段可以不用傳入值,每插入一次這個(gè)字段的值會(huì)自動(dòng)向上加1。
2. 有默認(rèn)值和可為空的字段可不傳
3. 以表user(username,sex)的插入順序?yàn)闇?zhǔn)
4. 基本語(yǔ)法二為更常用的用法
基本語(yǔ)法變形:一次插入多條記錄
insert into user(username,password,sex) values('黃曉明', 'abcdef', 1), ( 'angelababy', 'bcdeef', 0), ( '陳赫', '123456', 1), ('王寶強(qiáng)', '987654', 1);
插入記錄后返回該記錄ID
Mysql提供了一個(gè)LAST_INSERT_ID()的函數(shù)。 mysql> SELECT LAST_INSERT_ID(); -> 195
簡(jiǎn)單說(shuō)來(lái),就是這個(gè)函數(shù)將返回插入的那條記錄在表中自增的那個(gè)字段的值,一般我們都給那個(gè)自增字段命名為ID。這樣就可以返回剛插入的記錄的ID值了。
mysql 記錄不存在時(shí)插入 記錄存在則更新的實(shí)現(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)
當(dāng)然,建表的時(shí)候,千萬(wàn)別忘記了給domain做一個(gè)unique
UNIQUE KEY `domain` (`domain`,`report_date`)
baby不要哭泣
牢記基本插入語(yǔ)法
8年前 添加回復(fù) 0