MySQL讲义第20讲——select 查询之字段或表达式列表

编程入门 行业动态 更新时间:2024-10-10 11:26:45

MySQL讲义第20讲——select 查询之字段或<a href=https://www.elefans.com/category/jswz/34/1771310.html style=表达式列表"/>

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 查询之字段或表达式列表

本文发布于:2024-02-13 08:47:38,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1757579.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:表达式   讲义   字段   列表   MySQL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!