9、delete刪除資料記錄與like子句指定條件、union操作符
阿新 • • 發佈:2021-01-31
學習目標:
delete刪除資料記錄與like子句指定條件、union操作符
學習內容:
1.delete刪除資料
delete from <表名稱> ; 刪除表中所有資料
如果沒有指定 WHERE 子句,MySQL 表中的所有記錄將被刪除。
delete from <表名稱> where age=21; 刪除表中指定資料
可以在 WHERE 子句中指定任何條件
mysql> select * from polon;
+----+-----------+-----+-----+-----------------+
| id | name | sex | age | submission_data |
+----+-----------+-----+-----+-----------------+
| 2 | 李四 | 男 | 21 | 2021-01-30 |
| 3 | 王五 | 女 | 19 | 2016-08-09 |
| 4 | 張三 | 男 | 18 | 2018-07-03 |
| 5 | 二麻子 | 男 | 18 | 2018-07-03 |
+----+-----------+-----+-----+-----------------+
4 rows in set (0.00 sec)
mysql> delete from polon where age=21; #刪除age為21的指定資料
Query OK, 1 row affected (0.50 sec)
mysql> select * from polon;
+----+-----------+-----+-----+-----------------+
| id | name | sex | age | submission_data |
+----+-----------+-----+-----+-----------------+
| 3 | 王五 | 女 | 19 | 2016-08-09 |
| 4 | 張三 | 男 | 18 | 2018-07-03 |
| 5 | 二麻子 | 男 | 18 | 2018-07-03 |
+----+-----------+-----+-----+-----------------+
3 rows in set (0.00 sec)
2.like子句
select * from <表名稱> where <指定條件> like ‘%<指定條件>’; 以指定條件查詢,得出所有記錄
mysql> select * from polon where age like '%8'; #查詢age中以8結尾的所有記錄
+----+-----------+-----+-----+-----------------+
| id | name | sex | age | submission_data |
+----+-----------+-----+-----+-----------------+
| 4 | 張三 | 男 | 18 | 2018-07-03 |
| 5 | 二麻子 | 男 | 18 | 2018-07-03 |
+----+-----------+-----+-----+-----------------+
2 rows in set (0.01 sec)
可以在 WHERE 子句中使用LIKE子句。
可以使用LIKE子句代替等號 =。
LIKE 通常與 % 一同使用,類似於一個元字元的搜尋。
可以使用 AND 或者 OR 指定一個或多個條件。
可以在 DELETE 或 UPDATE 命令中使用 WHERE…LIKE 子句來指定條件。
3.union操作符
UNION 操作符用於連線兩個以上的 SELECT 語句的結果組合到一個結果集合中。多個 SELECT 語句會刪除重複的資料。
select <列名稱> from <表名稱1>
union
select <列名稱> from <表名稱2>
order by <列名稱>;
mysql> show tables; #獲取資料表
+------------------+
| Tables_in_runoob |
+------------------+
| apps |
| runoob_tb1 |
+------------------+
2 rows in set (0.00 sec)
mysql> select * from apps; #獲取apps表內容
+----+--------+---------------+------------+
| id | name | runoob_author | data |
+----+--------+---------------+------------+
| 3 | QQ | 馬化騰 | 2019-07-05 |
| 5 | 微信 | 王江 | 2013-04-01 |
+----+--------+---------------+------------+
2 rows in set (0.00 sec)
mysql> select * from runoob_tb1; #獲取runoob_tb1表內容
+-----------+--------------+---------------+-----------------+
| runoob_id | runoob_title | runoob_author | submission_data |
+-----------+--------------+---------------+-----------------+
| 1 | jave教程 | runoob.com | 2016-04-03 |
| 2 | 我愛中華 | 劉桑 | 2021-01-29 |
| 3 | 琰瀟秋 | 李旺 | 2014-05-07 |
| 4 | 學習php | 王江 | 2015-08-05 |
| 5 | python | 李桑 | 2021-01-30 |
+-----------+--------------+---------------+-----------------+
5 rows in set (0.00 sec)
mysql> select runoob_author from apps
-> union #相當於兩張資料表中的runoob_author列 去重後的並集
-> select runoob_author from runoob_tb1
-> order by runoob_author; #使用order命令
+---------------+
| runoob_author |
+---------------+
| runoob.com |
| 劉桑 |
| 李旺 |
| 李桑 |
| 王江 |
| 馬化騰 |
+---------------+
6 rows in set (0.47 sec)
或者使用union all獲取所有的資料(未去重)
mysql> select runoob_author from apps
-> union all #獲取兩張表中runoob_author 列中所有的資料,未去重
-> select runoob_author from runoob_tb1
-> order by runoob_author;
+---------------+
| runoob_author |
+---------------+
| runoob.com |
| 劉桑 |
| 李旺 |
| 李桑 |
| 王江 | #相同
| 王江 | #相同
| 馬化騰 |
+---------------+
7 rows in set (0.00 sec)
也可以使用where子句
mysql> select runoob_author,name from apps #兩者之間使用 , 隔開
-> where runoob_author="王江" # where指定條件使runoob_author=name,前者等於後者
-> union all
-> select runoob_author,runoob_title from runoob_tb1
-> where runoob_author="王江" # where指定條件使runoob_author=runoob_title,前者等於後者
-> order by runoob_author;
+---------------+-----------+
| runoob_author | name |
+---------------+-----------+
| 王江 | 微信 |
| 王江 | 學習php |
+---------------+-----------+
2 rows in set (0.00 sec)
UNION 語句:用於將不同表中相同列中查詢的資料展示出來;(不包括重複資料)
UNION ALL 語句:用於將不同表中相同列中查詢的資料展示出來;(包括重複資料)