《MySQL 學習筆記》 插入&更新&刪除數據
阿新 • • 發佈:2018-06-30
int select AR row type 所有 blog ted values
插入&更新&刪除數據
- 構建練習表結構
- 插入數據
- 為表的所有字段插入數據
- 為表的指定字段插入數據
- 同時插入多條記錄
- 將查詢結果插入到表中
- 更新數據
- 更新表中指定字段
- 根據範圍更新表中指定字段的所有記錄
- 刪除數據
- 刪除表中指定記錄
- 根據範圍刪除表中指定記錄
- 清空表中記錄
構建練習表結構
創建以下表結構:
MariaDB [lyshark]> create table person -> ( -> id int unsigned not null auto_increment, -> name char(50) not null default ‘‘, -> age int not null default 0, -> info char(50) null, -> primary key(id) -> ); Query OK, 0 rows affected (0.00 sec)
語法格式:
insert into 表名 (字段) values(數值);
插入數據
為表的所有字段插入數據
在person表中,插入一條新紀錄,id=1,name=LyShark,age=22,info=Lawyer
MariaDB [lyshark]> select * from person; Empty set (0.00 sec) MariaDB [lyshark]> insert into person(id,name,age,info) values(1,‘LyShark‘,22,‘Lawyer‘); #插入一條記錄 Query OK, 1 row affected (0.00 sec) MariaDB [lyshark]> select * from person; +----+---------+-----+--------+ | id | name | age | info | +----+---------+-----+--------+ | 1 | LyShark | 22 | Lawyer | +----+---------+-----+--------+ 1 row in set (0.00 sec) MariaDB [lyshark]>
為表的指定字段插入數據
在person表中,插入一條新紀錄name=Willam,age=18,info=sports
MariaDB [lyshark]> desc person; +-------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | name | char(50) | NO | | | | | age | int(11) | NO | | 0 | | | info | char(50) | YES | | NULL | | +-------+------------------+------+-----+---------+----------------+ 4 rows in set (0.00 sec) MariaDB [lyshark]> insert into person(name,age,info) values(‘Willam‘,18,‘sports man‘); #指定插入字段 Query OK, 1 row affected (0.04 sec) MariaDB [lyshark]> select * from person; +----+---------+-----+------------+ | id | name | age | info | +----+---------+-----+------------+ | 1 | LyShark | 22 | Lawyer | | 2 | Willam | 18 | sports man | +----+---------+-----+------------+ 2 rows in set (0.00 sec) MariaDB [lyshark]>
同時插入多條記錄
MariaDB [lyshark]> select * from person; +----+---------+-----+------------+ | id | name | age | info | +----+---------+-----+------------+ | 1 | LyShark | 22 | Lawyer | | 2 | Willam | 18 | sports man | +----+---------+-----+------------+ 2 rows in set (0.00 sec) MariaDB [lyshark]> insert into person(name,age,info) values(‘Evans‘,27,‘secretary‘), #同時插入多條數據的寫法 -> (‘Dale‘,22,‘cook‘), -> (‘Edison‘,28,‘singer‘); Query OK, 3 rows affected (0.01 sec) Records: 3 Duplicates: 0 Warnings: 0 MariaDB [lyshark]> select * from person; +----+---------+-----+------------+ | id | name | age | info | +----+---------+-----+------------+ | 1 | LyShark | 22 | Lawyer | | 2 | Willam | 18 | sports man | | 3 | Evans | 27 | secretary | | 4 | Dale | 22 | cook | | 5 | Edison | 28 | singer | +----+---------+-----+------------+ 5 rows in set (0.00 sec)
將查詢結果插入到表中
為了實現將另一個表中的記錄插入到本表中,我們新建一個person_old表,其表結構和person相同,我們將person_old表中的內容全部遷移到person中去
創建一個測試表,並插入測試字段:
MariaDB [lyshark]> create table person_old -> ( -> id int unsigned not null auto_increment, -> name char(50) not null default ‘‘, -> age int not null default 0, -> info char(50) null, -> primary key(id) -> ); Query OK, 0 rows affected (0.01 sec) MariaDB [lyshark]> insert into person_old -> values(11,‘harry‘,20,‘student‘),(12,‘Beckham‘,33,‘police‘); Query OK, 2 rows affected (0.00 sec) Records: 2 Duplicates: 0 Warnings: 0
接下來我們將person_old表中的內容遷移到person中去
MariaDB [lyshark]> select * from person_old; +----+---------+-----+---------+ | id | name | age | info | +----+---------+-----+---------+ | 11 | harry | 20 | student | | 12 | Beckham | 33 | police | +----+---------+-----+---------+ 2 rows in set (0.00 sec) MariaDB [lyshark]> select * from person; +----+---------+-----+------------+ | id | name | age | info | +----+---------+-----+------------+ | 1 | LyShark | 22 | Lawyer | | 2 | Willam | 18 | sports man | | 3 | Evans | 27 | secretary | | 4 | Dale | 22 | cook | | 5 | Edison | 28 | singer | +----+---------+-----+------------+ 5 rows in set (0.00 sec) MariaDB [lyshark]> MariaDB [lyshark]> insert into person(id,name,age,info) #利用查詢命令完成遷移 -> select id,name,age,info from person_old; Query OK, 2 rows affected (0.00 sec) Records: 2 Duplicates: 0 Warnings: 0 MariaDB [lyshark]> select * from person; +----+---------+-----+------------+ | id | name | age | info | +----+---------+-----+------------+ | 1 | LyShark | 22 | Lawyer | | 2 | Willam | 18 | sports man | | 3 | Evans | 27 | secretary | | 4 | Dale | 22 | cook | | 5 | Edison | 28 | singer | | 11 | harry | 20 | student | | 12 | Beckham | 33 | police | +----+---------+-----+------------+ 7 rows in set (0.00 sec)
更新數據
更新表中指定字段
將id=11的name字段的值改為xxxx,age字段改為200
MariaDB [lyshark]> select * from person; +----+---------+-----+------------+ | id | name | age | info | +----+---------+-----+------------+ | 1 | LyShark | 22 | Lawyer | | 2 | Willam | 18 | sports man | | 3 | Evans | 27 | secretary | | 4 | Dale | 22 | cook | | 5 | Edison | 28 | singer | | 11 | harry | 20 | student | | 12 | Beckham | 33 | police | +----+---------+-----+------------+ 7 rows in set (0.00 sec) MariaDB [lyshark]> update person set age=200,name=‘xxxx‘ where id=11; #更新單個字段 Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 MariaDB [lyshark]> select * from person; +----+---------+-----+------------+ | id | name | age | info | +----+---------+-----+------------+ | 1 | LyShark | 22 | Lawyer | | 2 | Willam | 18 | sports man | | 3 | Evans | 27 | secretary | | 4 | Dale | 22 | cook | | 5 | Edison | 28 | singer | | 11 | xxxx | 200 | student | | 12 | Beckham | 33 | police | +----+---------+-----+------------+ 7 rows in set (0.00 sec)
根據範圍更新表中指定字段的所有記錄
在person表中,將1-12的info字段全部改為lyshark blog
MariaDB [lyshark]> select * from person; +----+---------+-----+------------+ | id | name | age | info | +----+---------+-----+------------+ | 1 | LyShark | 22 | Lawyer | | 2 | Willam | 18 | sports man | | 3 | Evans | 27 | secretary | | 4 | Dale | 22 | cook | | 5 | Edison | 28 | singer | | 11 | xxxx | 200 | student | | 12 | Beckham | 33 | police | +----+---------+-----+------------+ 7 rows in set (0.00 sec) MariaDB [lyshark]> update person set info=‘lyshark blog‘ where age between 1 and 200; #指定修改的字段 Query OK, 7 rows affected (0.00 sec) Rows matched: 7 Changed: 7 Warnings: 0 MariaDB [lyshark]> select * from person; +----+---------+-----+--------------+ | id | name | age | info | +----+---------+-----+--------------+ | 1 | LyShark | 22 | lyshark blog | | 2 | Willam | 18 | lyshark blog | | 3 | Evans | 27 | lyshark blog | | 4 | Dale | 22 | lyshark blog | | 5 | Edison | 28 | lyshark blog | | 11 | xxxx | 200 | lyshark blog | | 12 | Beckham | 33 | lyshark blog | +----+---------+-----+--------------+ 7 rows in set (0.00 sec)
刪除數據
刪除表中指定記錄
通過id號,刪除表中指定列
MariaDB [lyshark]> select * from person; +----+---------+-----+--------------+ | id | name | age | info | +----+---------+-----+--------------+ | 1 | LyShark | 22 | lyshark blog | | 2 | Willam | 18 | lyshark blog | | 3 | Evans | 27 | lyshark blog | | 4 | Dale | 22 | lyshark blog | | 5 | Edison | 28 | lyshark blog | | 11 | xxxx | 200 | lyshark blog | | 12 | Beckham | 33 | lyshark blog | +----+---------+-----+--------------+ 7 rows in set (0.00 sec) MariaDB [lyshark]> delete from person where id=12; #通過id號,刪除表中指定列 Query OK, 1 row affected (0.05 sec) MariaDB [lyshark]> select * from person; +----+---------+-----+--------------+ | id | name | age | info | +----+---------+-----+--------------+ | 1 | LyShark | 22 | lyshark blog | | 2 | Willam | 18 | lyshark blog | | 3 | Evans | 27 | lyshark blog | | 4 | Dale | 22 | lyshark blog | | 5 | Edison | 28 | lyshark blog | | 11 | xxxx | 200 | lyshark blog | +----+---------+-----+--------------+ 6 rows in set (0.00 sec)
根據範圍刪除表中指定記錄
在person表中,刪除age字段值在19-22的記錄
MariaDB [lyshark]> select * from person; +----+---------+-----+--------------+ | id | name | age | info | +----+---------+-----+--------------+ | 1 | LyShark | 22 | lyshark blog | | 2 | Willam | 18 | lyshark blog | | 3 | Evans | 27 | lyshark blog | | 4 | Dale | 22 | lyshark blog | | 5 | Edison | 28 | lyshark blog | | 11 | xxxx | 200 | lyshark blog | +----+---------+-----+--------------+ 6 rows in set (0.00 sec) MariaDB [lyshark]> delete from person where age between 19 and 22; #指定範圍刪除 Query OK, 2 rows affected (0.00 sec) MariaDB [lyshark]> select * from person; +----+--------+-----+--------------+ | id | name | age | info | +----+--------+-----+--------------+ | 2 | Willam | 18 | lyshark blog | | 3 | Evans | 27 | lyshark blog | | 5 | Edison | 28 | lyshark blog | | 11 | xxxx | 200 | lyshark blog | +----+--------+-----+--------------+ 4 rows in set (0.00 sec)
清空表中所有記錄
MariaDB [lyshark]> select * from person; +----+--------+-----+--------------+ | id | name | age | info | +----+--------+-----+--------------+ | 2 | Willam | 18 | lyshark blog | | 3 | Evans | 27 | lyshark blog | | 5 | Edison | 28 | lyshark blog | | 11 | xxxx | 200 | lyshark blog | +----+--------+-----+--------------+ 4 rows in set (0.00 sec) MariaDB [lyshark]> delete from person; #清空表中所有記錄 Query OK, 4 rows affected (0.00 sec) MariaDB [lyshark]> select * from person; Empty set (0.00 sec)
《MySQL 學習筆記》 插入&更新&刪除數據