MySQL查询函数之为表和字段取别名的案例
这篇文章将为大家详细讲解有关MySQL查询函数之为表和字段取别名的案例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
(1)、为表取别名当表名字很长或者执行一些特殊查询时,为了方便操作或者需要多次使用相同的表时,可以为表指定别名,用这个别名代替原来的名称。为表取别名的基本语法格式为:
表名[as]表别名
"表名"为数据库中存储的数据表的名称,“表别名为查询时指定的表的新名称,as关键字为可选参数”
【例1】为orders表取别名o,查询30001订单的下单日期,SQL语句如下;
mysql>select*fromordersaso->whereo.o_num=30001;+-------+---------------------+-------+|o_num|o_date|c_id|+-------+---------------------+-------+|30001|2008-09-0100:00:00|10001|+-------+---------------------+-------+1rowinset(0.00sec)
【例2】为customers和orders表分别取别名,并进行连接查询,SQL语句如下:
mysql>selectc.c_id,o.o_num->fromcustomersascleftjoinordersaso->onc.c_id=o.c_id;+-------+-------+|c_id|o_num|+-------+-------+|10001|30001||10003|30002||10004|30003||10001|30005||10002|NULL|+-------+-------+5rowsinset(0.05sec)
由结果可以看到,MySQL可以同时为多个表取别名,而且表别名可以放在不同的位置,如where子句、select列表、on子句以及order by子句等。
自连接是一种特殊的内连接,在连接查询中的两个表都是同一个表,其查询语句如下:
mysql>selectf1.f_id,f1.f_name->fromfruitsasf1,fruitsasf2->wheref1.s_id=f2.s_idandf2.f_id='a1';+------+------------+|f_id|f_name|+------+------------+|a1|apple||b1|blackberry||c0|cherry|+------+------------+3rowsinset(0.00sec)(2)、为字段取别名
在使用select语句显示查询结果是,MySQL会显示每个select后面指定的输出列,有些情况下,显示的列的名称会很长或者名称不够直观,MySQL可以指定列别名,替换字段或者表达式。为字段取别名的基本语法格式为:
列名[as]列别名
"列名"为表中字段定义的名称,"列别名"为字段新的名称,as关键字为可选参数。
【例1】查询fruits表,为f_name取别名fruit_name、f_price取别名fruit_price,再为fruits表取别名f1,查询表中f_price<8的水果名称,SQL语句如下:
mysql>selectf1.f_nameasfruits_name,f1.f_priceasfruit_price->fromfruitsasf1->wheref1.f_price<8;+-------------+-------------+|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|+-------------+-------------+9rowsinset(0.00sec)
【例2】查询suppliers表中字段s_name和s_city,使用concat函数连接这两个字段值,并取列别名为suppliers_title。
mysql>selectconcat(trim(s_name),'(',trim(s_city),')')->fromsuppliers->orderbys_name;+-------------------------------------------+|concat(trim(s_name),'(',trim(s_city),')')|+-------------------------------------------+|ACME(Shanghai)||DKInc(Zhengzhou)||FastFruitInc.(Tianjin)||FNKInc.(Zhongshan)||GoodSet(Taiyuan)||JustEatOurs(Beijing)||LTSupplies(Chongqing)|+-------------------------------------------+7rowsinset(0.00sec)
由结果可以看到,显示结果的列名称为select子句后面的计算字段,实际上计算之后的列是没有名字的,这样的结果让人很不容易理解,如果为字段取一个别名,将会使结果更清晰,SQL语句如下:
mysql>selectconcat(trim(s_name),'(',trim(s_city),')')->assuppliers_title->fromsuppliers->orderbys_name;+-------------------------+|suppliers_title|+-------------------------+|ACME(Shanghai)||DKInc(Zhengzhou)||FastFruitInc.(Tianjin)||FNKInc.(Zhongshan)||GoodSet(Taiyuan)||JustEatOurs(Beijing)||LTSupplies(Chongqing)|+-------------------------+7rowsinset(0.00sec)
可以看到,select增加了 as suppliers_title,它指示了MySQL为计算字段创建一个别名suppliers_title,显示结果为指定的列别名,这样就增强了查询结果的可读性。
注意:表别名只在执行查询的时候使用,并不在返回结果中显示,而列别名定义之后,将返回给客户端显示,显示的结果字段为字段列的别名。
关于“MySQL查询函数之为表和字段取别名的案例”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。