一步一步學MySQL----7 插入、更新、刪除資料
7.1 插入完整資料記錄
語法:
insert into table_name(field1,field2,field3,……)values(value1,value2,value3,……);
例如:
我們先建立一張user表,如下:
mysql> create table user(
-> id int,
-> name varchar(20),
-> address varchar(60)
-> );
Query OK, 0 rows affected (0.17 sec)
接著,向user表中插入一條記錄如下:
mysql> insert into user(id,name,address) values(1,’kkdd’,’shanghai’);
Query OK, 1 row affected (0.16 sec)
為了驗證這條記錄師傅插入成功,執行下面的查詢語句:
mysql> select * from user;
我們也可以在SQLyog中檢視user表是否有我們剛剛插入的資料,如下:
另外,當我們插入完整資料記錄時,也可以採用省略欄位的方式:
語法:
insert into table_name
values(value1,value2,value3,……);
7.2 插入資料記錄一部分
語法:
insert into table_name(field1,field2,field3,……) values(value1,value2,value3,……)
我們先建立一張student表,如下:
mysql>create table student(
-> id int >primary key auto_increment,
-> name varchar(20),
-> address varchar(60)
-> );
Query OK, 0 rows affected (0.07 sec)
接著我們先插入一條完整記錄(以作對比)
mysql>insert into student(id, name, address) values(1,’Davaid’,’shanghai’);
Query OK, 1 row affected (0.14 sec)
然後插入一條部分記錄
mysql> insert into student(id, name) values(2,’Dandan’);
Query OK, 1 row affected (0.10 sec)
再插入一條部分記錄
mysql> insert into student(name, address) values(‘Qingqing’, ‘beijing’);
Query OK, 1 row affected (0.15 sec)
最後,執行查詢語句:
mysql> select * from student;
注意:這裡我們發現一個問題,當我們插入第二個部分記錄時,插入語句中並沒有插入欄位id,但是我們看到表裡自動加上了欄位id,這是由於欄位id是“自動增加”約束的原因。
7.3 插入多條資料記錄
語法:
insert into table_name(field1,field2,field3,……) values(value11,value12,value13,……),
(value21,value22,value23,……),(value31,value32,value33,……), … …(valuen1,valuen2,valuen3,……);
7.4 插入查詢結果
語法:
insert into table_name1(field11,field12,field13,……) select (field21,field22,field23,……) from table_name2 where……;
目的:將一張表中的查詢記錄插入另一張表
例如:
我們已經有了一張student表,如下:
這裡,我們再新建一張student2表,如下:
我們看到,新建的student2表中沒有資料記錄
此時,我們將student表中的所有記錄插到student2表中,如下:
mysql> insert into student2(id, name, address) select * from student;
Query OK, 3 rows affected (0.09 sec)
Records: 3 Duplicates: 0 Warnings: 0
結果如下:
7.5 更新特定資料記錄
語法:
update table_name set field1=value1, field2=value2, field3=value3, … where condition;
例如:
現有student表如下:
接著,我們修改一下姓名為Qingqing的學生的地址,由beijing變為江蘇,如下:
mysql> update student set address=”jiangsu” where name=”Qingqing”;
Query OK, 1 row affected (0.15 sec)
Rows matched: 1 Changed: 1 Warnings: 0
我們來驗證一下,是否修改正確
7.6 更新所有資料記錄
語法:
update table_name set field1=value1, field2=value2, field3=value3, … where condition;
例如:
現有student表如下:
接著,我們將所有學生的地址都改為tianjin,如下:
mysql> update student set address=”tianjin” where id<4;
Query OK, 3 rows affected (0.11 sec)
Rows matched: 3 Changed: 3 Warnings: 0
我們來驗證一下,是否修改正確:
7.7 刪除特定資料記錄
語法:
delete from table_name where condition;
例如:
現有student表如下:
現想要刪除姓名為Davaid的資料資訊,如下:
mysql> delete from student where name=”Davaid”;
Query OK, 1 row affected (0.07 sec)
我們來驗證一下,是否已刪除,如下:
7.8 刪除所有資料記錄
語法:
delete from table_name where condition;
例如:
現有student表如下:
現想要刪除表中的所有記錄,如下:
mysql> delete from student where id<4;
Query OK, 2 rows affected (0.06 sec)
我們來驗證一下,是否已刪除,如下:
mysql> select * from student;
Empty set (0.00 sec)