表达式列表"/>
MySQL讲义第20讲——select 查询之字段或表达式列表
MySQL讲义第20讲——select 查询之字段或表达式列表
文章目录
- MySQL讲义第20讲——select 查询之字段或表达式列表
- 一、显示表中的所有字段
- 二、显示所需的部分字段
- 三、利用字段名、运算符和函数构造表达式
- 四、为字段和表达式指定别名
- 五、使用 distinct 参数对查询结果去重
在 select 查询语句中可以指定需要显示的字段,也可以利用字段名、运算符、函数等构造表达式。
一、显示表中的所有字段
如果需要显示表中的所有字段,可以使用字段列表把所有字段列出来,也可以使用(*)表示。如:
mysql> SELECT-> *-> FROM -> stu;
+-----------+-----------+--------+---------------------+--------+-------------+---------+
| stu_id | stu_name | gender | birth | height | phone | dept_id |
+-----------+-----------+--------+---------------------+--------+-------------+---------+
| 201801101 | 王占峰 | 男 | 1999-12-30 00:00:00 | 177.0 | 15937320987 | D02 |
| 201801102 | 刘国量 | 男 | 2000-08-14 00:00:00 | 174.0 | 15937320789 | D02 |
| 201801103 | 巩莉 | 女 | 2000-06-18 00:00:00 | 170.0 | 15937320456 | D02 |
| 201801104 | 宋丹风 | 女 | 1999-11-20 00:00:00 | 165.0 | 15937320444 | D02 |
| 201801201 | 王艳艳 | 女 | 1999-09-30 00:00:00 | 162.0 | 15937320888 | D03 |
| 201801202 | 赵牡丹 | 女 | 2001-08-10 00:00:00 | 160.0 | 15937320666 | D03 |
| 201801203 | 王大强 | 男 | 2000-10-19 00:00:00 | 174.0 | 15937320555 | D03 |
| 201901002 | 王宏伟 | 男 | 2001-02-15 00:00:00 | 180.0 | 15937320255 | D01 |
| 201901003 | 张静静 | 女 | 2001-08-17 00:00:00 | 167.0 | 15937320123 | D01 |
| 201901004 | 李刚 | 男 | 2000-12-25 00:00:00 | 178.0 | 15937320321 | D01 |
| 201901005 | 刘鹏 | 男 | 2001-12-18 00:00:00 | 176.0 | 15937320654 | D01 |
+-----------+-----------+--------+---------------------+--------+-------------+---------+
11 rows in set (0.00 sec)mysql> SELECT-> stu_id,-> stu_name,-> gender,-> birth,-> height,-> phone,-> dept_id-> FROM -> stu;
+-----------+-----------+--------+---------------------+--------+-------------+---------+
| stu_id | stu_name | gender | birth | height | phone | dept_id |
+-----------+-----------+--------+---------------------+--------+-------------+---------+
| 201801101 | 王占峰 | 男 | 1999-12-30 00:00:00 | 177.0 | 15937320987 | D02 |
| 201801102 | 刘国量 | 男 | 2000-08-14 00:00:00 | 174.0 | 15937320789 | D02 |
| 201801103 | 巩莉 | 女 | 2000-06-18 00:00:00 | 170.0 | 15937320456 | D02 |
| 201801104 | 宋丹风 | 女 | 1999-11-20 00:00:00 | 165.0 | 15937320444 | D02 |
| 201801201 | 王艳艳 | 女 | 1999-09-30 00:00:00 | 162.0 | 15937320888 | D03 |
| 201801202 | 赵牡丹 | 女 | 2001-08-10 00:00:00 | 160.0 | 15937320666 | D03 |
| 201801203 | 王大强 | 男 | 2000-10-19 00:00:00 | 174.0 | 15937320555 | D03 |
| 201901002 | 王宏伟 | 男 | 2001-02-15 00:00:00 | 180.0 | 15937320255 | D01 |
| 201901003 | 张静静 | 女 | 2001-08-17 00:00:00 | 167.0 | 15937320123 | D01 |
| 201901004 | 李刚 | 男 | 2000-12-25 00:00:00 | 178.0 | 15937320321 | D01 |
| 201901005 | 刘鹏 | 男 | 2001-12-18 00:00:00 | 176.0 | 15937320654 | D01 |
+-----------+-----------+--------+---------------------+--------+-------------+---------+
11 rows in set (0.00 sec)
二、显示所需的部分字段
把需要显示的字段列出来,字段之间用逗号(,)隔开。如:
mysql> SELECT-> stu_name,-> birth,-> height-> FROM-> stu;
+-----------+---------------------+--------+
| stu_name | birth | height |
+-----------+---------------------+--------+
| 王占峰 | 1999-12-30 00:00:00 | 177.0 |
| 刘国量 | 2000-08-14 00:00:00 | 174.0 |
| 巩莉 | 2000-06-18 00:00:00 | 170.0 |
| 宋丹风 | 1999-11-20 00:00:00 | 165.0 |
| 王艳艳 | 1999-09-30 00:00:00 | 162.0 |
| 赵牡丹 | 2001-08-10 00:00:00 | 160.0 |
| 王大强 | 2000-10-19 00:00:00 | 174.0 |
| 王宏伟 | 2001-02-15 00:00:00 | 180.0 |
| 张静静 | 2001-08-17 00:00:00 | 167.0 |
| 李刚 | 2000-12-25 00:00:00 | 178.0 |
| 刘鹏 | 2001-12-18 00:00:00 | 176.0 |
+-----------+---------------------+--------+
11 rows in set (0.00 sec)
三、利用字段名、运算符和函数构造表达式
可以利用运算符和函数对字段名进行运算,并显示结果。如:
mysql> SELECT-> stu_name,-> birth,-> year(now())-year(birth)-> FROM -> stu;
+-----------+---------------------+-------------------------+
| stu_name | birth | year(now())-year(birth) |
+-----------+---------------------+-------------------------+
| 王占峰 | 1999-12-30 00:00:00 | 21 |
| 刘国量 | 2000-08-14 00:00:00 | 20 |
| 巩莉 | 2000-06-18 00:00:00 | 20 |
| 宋丹风 | 1999-11-20 00:00:00 | 21 |
| 王艳艳 | 1999-09-30 00:00:00 | 21 |
| 赵牡丹 | 2001-08-10 00:00:00 | 19 |
| 王大强 | 2000-10-19 00:00:00 | 20 |
| 王宏伟 | 2001-02-15 00:00:00 | 19 |
| 张静静 | 2001-08-17 00:00:00 | 19 |
| 李刚 | 2000-12-25 00:00:00 | 20 |
| 刘鹏 | 2001-12-18 00:00:00 | 19 |
+-----------+---------------------+-------------------------+
11 rows in set (0.00 sec)--说明:本查询使用了两个函数 now()和year() 以及算数运算符(-)对字段 birth 进行运算,得到学生的年龄。
四、为字段和表达式指定别名
在查询中可以为字段和表达式指定别名,字段、表达式和别名之间加 as 或空格。如上例:
mysql> SELECT-> stu_name,-> birth,-> year(now())-year(birth) as age-> FROM -> stu;
+-----------+---------------------+------+
| stu_name | birth | age |
+-----------+---------------------+------+
| 王占峰 | 1999-12-30 00:00:00 | 21 |
| 刘国量 | 2000-08-14 00:00:00 | 20 |
| 巩莉 | 2000-06-18 00:00:00 | 20 |
| 宋丹风 | 1999-11-20 00:00:00 | 21 |
| 王艳艳 | 1999-09-30 00:00:00 | 21 |
| 赵牡丹 | 2001-08-10 00:00:00 | 19 |
| 王大强 | 2000-10-19 00:00:00 | 20 |
| 王宏伟 | 2001-02-15 00:00:00 | 19 |
| 张静静 | 2001-08-17 00:00:00 | 19 |
| 李刚 | 2000-12-25 00:00:00 | 20 |
| 刘鹏 | 2001-12-18 00:00:00 | 19 |
+-----------+---------------------+------+
11 rows in set (0.00 sec)mysql> SELECT-> stu_name,-> birth,-> year(now())-year(birth) age-> FROM -> stu;
+-----------+---------------------+------+
| stu_name | birth | age |
+-----------+---------------------+------+
| 王占峰 | 1999-12-30 00:00:00 | 21 |
| 刘国量 | 2000-08-14 00:00:00 | 20 |
| 巩莉 | 2000-06-18 00:00:00 | 20 |
| 宋丹风 | 1999-11-20 00:00:00 | 21 |
| 王艳艳 | 1999-09-30 00:00:00 | 21 |
| 赵牡丹 | 2001-08-10 00:00:00 | 19 |
| 王大强 | 2000-10-19 00:00:00 | 20 |
| 王宏伟 | 2001-02-15 00:00:00 | 19 |
| 张静静 | 2001-08-17 00:00:00 | 19 |
| 李刚 | 2000-12-25 00:00:00 | 20 |
| 刘鹏 | 2001-12-18 00:00:00 | 19 |
+-----------+---------------------+------+
11 rows in set (0.01 sec)
五、使用 distinct 参数对查询结果去重
使用 distinct 关键字可以去除查询结果中的重复行。如:
-- 查询有学生的系的系名
mysql> SELECT DISTINCT-> dept_name-> FROM -> dept d inner join stu s on d.dept_id = s.dept_id;
+--------------+
| dept_name |
+--------------+
| 管理系 |
| 计算机系 |
| 数学系 |
+--------------+
3 rows in set (0.00 sec)
更多推荐
MySQL讲义第20讲——select 查询之字段或表达式列表
发布评论