共计 3130 个字符,预计需要花费 8 分钟才能阅读完成。
自动写代码机器人,免费开通
这篇文章将为大家详细讲解有关 MySQL 查询函数之为表和字段取别名的案例,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
(1)、为表取别名
当表名字很长或者执行一些特殊查询时,为了方便操作或者需要多次使用相同的表时,可以为表指定别名,用这个别名代替原来的名称。为表取别名的基本语法格式为:
表名 [as] 表别名
表名 为数据库中存储的数据表的名称,“表别名为查询时指定的表的新名称,as 关键字为可选参数”
【例 1】为 orders 表取别名 o,查询 30001 订单的下单日期,SQL 语句如下;
mysql select * from orders as o - where o.o_num = 30001;+-------+---------------------+-------+| o_num | o_date | c_id |+-------+---------------------+-------+| 30001 | 2008-09-01 00:00:00 | 10001 |+-------+---------------------+-------+1 row in set (0.00 sec)
【例 2】为 customers 和 orders 表分别取别名,并进行连接查询,SQL 语句如下:
mysql select c.c_id,o.o_num - from customers as c left join orders as o - on c.c_id = o.c_id;+-------+-------+| c_id | o_num |+-------+-------+| 10001 | 30001 || 10003 | 30002 || 10004 | 30003 || 10001 | 30005 || 10002 | NULL |+-------+-------+5 rows in set (0.05 sec)
由结果可以看到,MySQL 可以同时为多个表取别名,而且表别名可以放在不同的位置,如 where 子句、select 列表、on 子句以及 order by 子句等。
自连接是一种特殊的内连接,在连接查询中的两个表都是同一个表,其查询语句如下:
mysql select f1.f_id,f1.f_name - from fruits as f1,fruits as f2 - where f1.s_id = f2.s_id and f2.f_id = a1 +------+------------+| f_id | f_name |+------+------------+| a1 | apple || b1 | blackberry || c0 | cherry |+------+------------+3 rows in set (0.00 sec)
(2)、为字段取别名
在使用 select 语句显示查询结果是,MySQL 会显示每个 select 后面指定的输出列,有些情况下,显示的列的名称会很长或者名称不够直观,MySQL 可以指定列别名,替换字段或者表达式。为字段取别名的基本语法格式为:
列名 [as] 列别名
列名 为表中字段定义的名称,列别名 为字段新的名称,as 关键字为可选参数。
【例 1】查询 fruits 表,为 f_name 取别名 fruit_name、f_price 取别名 fruit_price,再为 fruits 表取别名 f1,查询表中 f_price 8 的水果名称,SQL 语句如下:
mysql select f1.f_name as fruits_name,f1.f_price as fruit_price - from fruits as f1 - where f1.f_price +-------------+-------------+| fruits_name | fruit_price |+-------------+-------------+| lemon | 6.40 || apple | 5.20 || apricot | 2.20 || berry | 7.60 || xxxx | 3.60 || cherry | 3.20 || xbabay | 2.60 || grape | 5.30 || xbabay | 3.60 |+-------------+-------------+9 rows in set (0.00 sec)
【例 2】查询 suppliers 表中字段 s_name 和 s_city,使用 concat 函数连接这两个字段值,并取列别名为 suppliers_title。
mysql select concat(trim(s_name), (,trim(s_city), ) )
- from suppliers - order by s_name;+-------------------------------------------+| concat(trim(s_name), (,trim(s_city), ) ) |+-------------------------------------------+| ACME(Shanghai) || DK Inc(Zhengzhou) || FastFruit Inc.(Tianjin) || FNK Inc.(Zhongshan) || Good Set(Taiyuan) || Just Eat Ours(Beijing) || LT Supplies(Chongqing) |+-------------------------------------------+7 rows in set (0.00 sec)
由结果可以看到,显示结果的列名称为 select 子句后面的计算字段,实际上计算之后的列是没有名字的,这样的结果让人很不容易理解,如果为字段取一个别名,将会使结果更清晰,SQL 语句如下:
mysql select concat(trim(s_name), (,trim(s_city), ) )
- as suppliers_title - from suppliers - order by s_name;+-------------------------+| suppliers_title |+-------------------------+| ACME(Shanghai) || DK Inc(Zhengzhou) || FastFruit Inc.(Tianjin) || FNK Inc.(Zhongshan) || Good Set(Taiyuan) || Just Eat Ours(Beijing) || LT Supplies(Chongqing) |+-------------------------+7 rows in set (0.00 sec)
可以看到,select 增加了 as suppliers_title,它指示了 MySQL 为计算字段创建一个别名 suppliers_title,显示结果为指定的列别名,这样就增强了查询结果的可读性。
注意:表别名只在执行查询的时候使用,并不在返回结果中显示,而列别名定义之后,将返回给客户端显示,显示的结果字段为字段列的别名。
关于“MySQL 查询函数之为表和字段取别名的案例”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
向 AI 问一下细节