MySQL基本簡單操作 現在我創建了一個數據表,表的內容如下: mysql select from gubeiqing_table; + + + | name | age | + + + | gbq | 21 | | zhangsan | 20 | | lisi | 22 | + + + 3 row ...
MySQL基本簡單操作
現在我創建了一個數據表,表的內容如下:
mysql> select * from gubeiqing_table;
+----------+-----+
| name | age |
+----------+-----+
| gbq | 21 |
| zhangsan | 20 |
| lisi | 22 |
+----------+-----+
3 rows in set (0.00 sec)
我現在需要對這些數據按照年齡進行一個升序排序。
mysql> select * from gubeiqing_table order by age ASC;
+----------+-----+
| name | age |
+----------+-----+
| zhangsan | 20 |
| gbq | 21 |
| lisi | 22 |
+----------+-----+
3 rows in set (0.00 sec)
可以看到現在的資料庫已經按照升序的方式進行排序了。
order by
是用來排序的,ASC
是升序排序,DESC
是降序排序。
現在我有一個這樣的數據表。
mysql> select * from gubeiqing_table;
+----------+-----+
| name | age |
+----------+-----+
| gbq | 21 |
| zhangsan | 20 |
| lisi | 22 |
| zhangsi | 21 |
| lisan | 22 |
+----------+-----+
5 rows in set (0.00 sec)
我想知道這個數據表裡有哪些年齡段。
mysql> select age from gubeiqing_table group by age;
+-----+
| age |
+-----+
| 21 |
| 20 |
| 22 |
+-----+
3 rows in set (0.00 sec)
首先從數據表中查找age
欄位,接著通過group by
將這些年齡分組。
還可以統計這些年齡分別有多少人。
mysql> select age,count(*) from gubeiqing_table group by age;
+-----+----------+
| age | count(*) |
+-----+----------+
| 21 | 2 |
| 20 | 1 |
| 22 | 2 |
+-----+----------+
3 rows in set (0.00 sec)
接著學一下聯合查詢,使用UNION
,UNION
用於連接兩個以上的SELECT
語句的結果組合到一個結果集合中,多個SELECT
語句會刪除重覆的數據。。
mysql> show tables;
+---------------------+
| Tables_in_gubeiqing |
+---------------------+
| gbq |
| gubeiqing_table |
+---------------------+
2 rows in set (0.00 sec)
mysql> select * from gbq;
+------+-----+
| name | age |
+------+-----+
| qaz | 20 |
| wsx | 23 |
| edc | 21 |
+------+-----+
3 rows in set (0.00 sec)
mysql> select * from gubeiqing_table;
+----------+-----+
| name | age |
+----------+-----+
| gbq | 21 |
| zhangsan | 20 |
| lisi | 22 |
| zhangsi | 21 |
| lisan | 22 |
+----------+-----+
5 rows in set (0.00 sec)
我現在想查看兩個表
mysql> select age from gbq
-> union
-> select age from gubeiqing_table;
+-----+
| age |
+-----+
| 20 |
| 23 |
| 21 |
| 22 |
+-----+
4 rows in set (0.00 sec)
現在看到的是所有的值,但是並不是這個欄位所以的值。用UNION
看到的是去重之後的所有值,如果不想去重那麼要使用UNION ALL
。
mysql> select age from gbq
-> union all
-> select age from gubeiqing_table;
+-----+
| age |
+-----+
| 20 |
| 23 |
| 21 |
| 21 |
| 20 |
| 22 |
| 21 |
| 22 |
+-----+
8 rows in set (0.00 sec)
這樣就看到了全部的值。
各位大佬不介意的話我只想要一點流量。個人博客