在查询语句中可以指定所有的列(使用 *),可以指定需要显示的列,或者使用列名、运算符、函数等构造表达式。
如果查询时要显示表中的所有列,可以使用(*)表示,可以把所有的列名写到 SELECT 后面,使用逗号(,)隔开。
例如:
-- 使用 * 表示所有列
mysql> select * from student;
+-------+-----------+---------------------+-------------+-----------+
| s_id | s_name | birth | phone | addr |
+-------+-----------+---------------------+-------------+-----------+
| S2011 | 张晓刚 | 1999-12-03 00:00:00 | 13163735775 | 信阳市 |
| S2012 | 刘小青 | 1999-10-11 00:00:00 | 13603732255 | 新乡市 |
| S2013 | 曹梦德 | 1998-02-13 00:00:00 | 13853735522 | 郑州市 |
| S2014 | 刘艳 | 1998-06-24 00:00:00 | 13623735335 | 郑州市 |
| S2015 | 刘岩 | 1999-07-06 00:00:00 | 13813735225 | 信阳市 |
| S2016 | 刘若非 | 2000-08-31 00:00:00 | 13683735533 | 开封市 |
| S2021 | 董雯花 | 2000-07-30 00:00:00 | 13533735564 | 开封市 |
| S2022 | 周华建 | 1999-05-25 00:00:00 | 13243735578 | 郑州市 |
| S2023 | 特朗普 | 1999-06-21 00:00:00 | 13343735588 | 新乡市 |
| S2024 | 奥巴马 | 2000-10-17 00:00:00 | 13843735885 | 信阳市 |
| S2025 | 周健华 | 2000-08-22 00:00:00 | 13788736655 | 开封市 |
| S2026 | 张学有 | 1998-07-06 00:00:00 | 13743735566 | 郑州市 |
| S2031 | 李明博 | 1999-10-26 00:00:00 | 13643732222 | 郑州市 |
| S2032 | 达芬奇 | 1999-12-31 00:00:00 | 13043731234 | 郑州市 |
+-------+-----------+---------------------+-------------+-----------+
14 rows in set (0.00 sec)
-- 使用字段列表
mysql> select s_id,s_name,birth,phone,addr from student;
+-------+-----------+---------------------+-------------+-----------+
| s_id | s_name | birth | phone | addr |
+-------+-----------+---------------------+-------------+-----------+
| S2011 | 张晓刚 | 1999-12-03 00:00:00 | 13163735775 | 信阳市 |
| S2012 | 刘小青 | 1999-10-11 00:00:00 | 13603732255 | 新乡市 |
| S2013 | 曹梦德 | 1998-02-13 00:00:00 | 13853735522 | 郑州市 |
| S2014 | 刘艳 | 1998-06-24 00:00:00 | 13623735335 | 郑州市 |
| S2015 | 刘岩 | 1999-07-06 00:00:00 | 13813735225 | 信阳市 |
| S2016 | 刘若非 | 2000-08-31 00:00:00 | 13683735533 | 开封市 |
| S2021 | 董雯花 | 2000-07-30 00:00:00 | 13533735564 | 开封市 |
| S2022 | 周华建 | 1999-05-25 00:00:00 | 13243735578 | 郑州市 |
| S2023 | 特朗普 | 1999-06-21 00:00:00 | 13343735588 | 新乡市 |
| S2024 | 奥巴马 | 2000-10-17 00:00:00 | 13843735885 | 信阳市 |
| S2025 | 周健华 | 2000-08-22 00:00:00 | 13788736655 | 开封市 |
| S2026 | 张学有 | 1998-07-06 00:00:00 | 13743735566 | 郑州市 |
| S2031 | 李明博 | 1999-10-26 00:00:00 | 13643732222 | 郑州市 |
| S2032 | 达芬奇 | 1999-12-31 00:00:00 | 13043731234 | 郑州市 |
+-------+-----------+---------------------+-------------+-----------+
14 rows in set (0.00 sec)
把需要查询列依次写到 SELECT 后面,列名之间用逗号(,)隔开。
例如:
mysql> select s_id, s_name, birth from student;
+-------+-----------+---------------------+
| s_id | s_name | birth |
+-------+-----------+---------------------+
| S2011 | 张晓刚 | 1999-12-03 00:00:00 |
| S2012 | 刘小青 | 1999-10-11 00:00:00 |
| S2013 | 曹梦德 | 1998-02-13 00:00:00 |
| S2014 | 刘艳 | 1998-06-24 00:00:00 |
| S2015 | 刘岩 | 1999-07-06 00:00:00 |
| S2016 | 刘若非 | 2000-08-31 00:00:00 |
| S2021 | 董雯花 | 2000-07-30 00:00:00 |
| S2022 | 周华建 | 1999-05-25 00:00:00 |
| S2023 | 特朗普 | 1999-06-21 00:00:00 |
| S2024 | 奥巴马 | 2000-10-17 00:00:00 |
| S2025 | 周健华 | 2000-08-22 00:00:00 |
| S2026 | 张学有 | 1998-07-06 00:00:00 |
| S2031 | 李明博 | 1999-10-26 00:00:00 |
| S2032 | 达芬奇 | 1999-12-31 00:00:00 |
+-------+-----------+---------------------+
14 rows in set (0.00 sec)
-- 列的顺序可以和表中列的顺序不一致
mysql> select s_id, s_name, addr, phone from student;
+-------+-----------+-----------+-------------+
| s_id | s_name | addr | phone |
+-------+-----------+-----------+-------------+
| S2011 | 张晓刚 | 信阳市 | 13163735775 |
| S2012 | 刘小青 | 新乡市 | 13603732255 |
| S2013 | 曹梦德 | 郑州市 | 13853735522 |
| S2014 | 刘艳 | 郑州市 | 13623735335 |
| S2015 | 刘岩 | 信阳市 | 13813735225 |
| S2016 | 刘若非 | 开封市 | 13683735533 |
| S2021 | 董雯花 | 开封市 | 13533735564 |
| S2022 | 周华建 | 郑州市 | 13243735578 |
| S2023 | 特朗普 | 新乡市 | 13343735588 |
| S2024 | 奥巴马 | 信阳市 | 13843735885 |
| S2025 | 周健华 | 开封市 | 13788736655 |
| S2026 | 张学有 | 郑州市 | 13743735566 |
| S2031 | 李明博 | 郑州市 | 13643732222 |
| S2032 | 达芬奇 | 郑州市 | 13043731234 |
+-------+-----------+-----------+-------------+
14 rows in set (0.00 sec)
mysql> select s_id,'name:' name, s_name from student;
+-------+-------+-----------+
| s_id | name | s_name |
+-------+-------+-----------+
| S2011 | name: | 张晓刚 |
| S2012 | name: | 刘小青 |
| S2013 | name: | 曹梦德 |
| S2014 | name: | 刘艳 |
| S2015 | name: | 刘岩 |
| S2016 | name: | 刘若非 |
| S2021 | name: | 董雯花 |
| S2022 | name: | 周华建 |
| S2023 | name: | 特朗普 |
| S2024 | name: | 奥巴马 |
| S2025 | name: | 周健华 |
| S2026 | name: | 张学有 |
| S2031 | name: | 李明博 |
| S2032 | name: | 达芬奇 |
+-------+-------+-----------+
14 rows in set (0.00 sec)
mysql> select s_id, s_name, birth, now() current_day from student;
+-------+-----------+---------------------+---------------------+
| s_id | s_name | birth | current_day |
+-------+-----------+---------------------+---------------------+
| S2011 | 张晓刚 | 1999-12-03 00:00:00 | 2022-07-20 15:47:17 |
| S2012 | 刘小青 | 1999-10-11 00:00:00 | 2022-07-20 15:47:17 |
| S2013 | 曹梦德 | 1998-02-13 00:00:00 | 2022-07-20 15:47:17 |
| S2014 | 刘艳 | 1998-06-24 00:00:00 | 2022-07-20 15:47:17 |
| S2015 | 刘岩 | 1999-07-06 00:00:00 | 2022-07-20 15:47:17 |
| S2016 | 刘若非 | 2000-08-31 00:00:00 | 2022-07-20 15:47:17 |
| S2021 | 董雯花 | 2000-07-30 00:00:00 | 2022-07-20 15:47:17 |
| S2022 | 周华建 | 1999-05-25 00:00:00 | 2022-07-20 15:47:17 |
| S2023 | 特朗普 | 1999-06-21 00:00:00 | 2022-07-20 15:47:17 |
| S2024 | 奥巴马 | 2000-10-17 00:00:00 | 2022-07-20 15:47:17 |
| S2025 | 周健华 | 2000-08-22 00:00:00 | 2022-07-20 15:47:17 |
| S2026 | 张学有 | 1998-07-06 00:00:00 | 2022-07-20 15:47:17 |
| S2031 | 李明博 | 1999-10-26 00:00:00 | 2022-07-20 15:47:17 |
| S2032 | 达芬奇 | 1999-12-31 00:00:00 | 2022-07-20 15:47:17 |
+-------+-----------+---------------------+---------------------+
14 rows in set (0.01 sec)
mysql> select s_id, s_name, birth, year(now())-year(birth) age from student;
+-------+-----------+---------------------+------+
| s_id | s_name | birth | age |
+-------+-----------+---------------------+------+
| S2011 | 张晓刚 | 1999-12-03 00:00:00 | 23 |
| S2012 | 刘小青 | 1999-10-11 00:00:00 | 23 |
| S2013 | 曹梦德 | 1998-02-13 00:00:00 | 24 |
| S2014 | 刘艳 | 1998-06-24 00:00:00 | 24 |
| S2015 | 刘岩 | 1999-07-06 00:00:00 | 23 |
| S2016 | 刘若非 | 2000-08-31 00:00:00 | 22 |
| S2021 | 董雯花 | 2000-07-30 00:00:00 | 22 |
| S2022 | 周华建 | 1999-05-25 00:00:00 | 23 |
| S2023 | 特朗普 | 1999-06-21 00:00:00 | 23 |
| S2024 | 奥巴马 | 2000-10-17 00:00:00 | 22 |
| S2025 | 周健华 | 2000-08-22 00:00:00 | 22 |
| S2026 | 张学有 | 1998-07-06 00:00:00 | 24 |
| S2031 | 李明博 | 1999-10-26 00:00:00 | 23 |
| S2032 | 达芬奇 | 1999-12-31 00:00:00 | 23 |
+-------+-----------+---------------------+------+
14 rows in set (0.00 sec)
为一个列或者表达式指定别名,语法格式如下:
格式一:列名|表达式 as 别名
格式二:列名|表达式 别名
例如:
mysql> select s_id, s_name as stu_name, year(now())-year(birth) as age
-> from student;
+-------+-----------+------+
| s_id | stu_name | age |
+-------+-----------+------+
| S2011 | 张晓刚 | 23 |
| S2012 | 刘小青 | 23 |
| S2013 | 曹梦德 | 24 |
| S2014 | 刘艳 | 24 |
| S2015 | 刘岩 | 23 |
| S2016 | 刘若非 | 22 |
| S2021 | 董雯花 | 22 |
| S2022 | 周华建 | 23 |
| S2023 | 特朗普 | 23 |
| S2024 | 奥巴马 | 22 |
| S2025 | 周健华 | 22 |
| S2026 | 张学有 | 24 |
| S2031 | 李明博 | 23 |
| S2032 | 达芬奇 | 23 |
+-------+-----------+------+
14 rows in set (0.00 sec)
mysql> select s_id, s_name stu_name, year(now())-year(birth) age
-> from student;
+-------+-----------+------+
| s_id | stu_name | age |
+-------+-----------+------+
| S2011 | 张晓刚 | 23 |
| S2012 | 刘小青 | 23 |
| S2013 | 曹梦德 | 24 |
| S2014 | 刘艳 | 24 |
| S2015 | 刘岩 | 23 |
| S2016 | 刘若非 | 22 |
| S2021 | 董雯花 | 22 |
| S2022 | 周华建 | 23 |
| S2023 | 特朗普 | 23 |
| S2024 | 奥巴马 | 22 |
| S2025 | 周健华 | 22 |
| S2026 | 张学有 | 24 |
| S2031 | 李明博 | 23 |
| S2032 | 达芬奇 | 23 |
+-------+-----------+------+
14 rows in set (0.00 sec)
使用 DISTINCT 关键词可以消除查询结果中重复的行。DISTINCT 关键词必须放到 SELECT 后面,字段列表之前。
mysql> select addr from student;
+-----------+
| addr |
+-----------+
| 信阳市 |
| 新乡市 |
| 郑州市 |
| 郑州市 |
| 信阳市 |
| 开封市 |
| 开封市 |
| 郑州市 |
| 新乡市 |
| 信阳市 |
| 开封市 |
| 郑州市 |
| 郑州市 |
| 郑州市 |
+-----------+
14 rows in set (0.00 sec)
mysql> select distinct addr from student;
+-----------+
| addr |
+-----------+
| 信阳市 |
| 新乡市 |
| 郑州市 |
| 开封市 |
+-----------+
4 rows in set (0.00 sec)