1. 程式人生 > >一步一步學MySQL----7 插入、更新、刪除資料

一步一步學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)