MySQL如何为表和字段取别名详解

目录
  • 为表和字段取别名
  • 1.为表取别名
    • 语法格式:
    • 例子:
    • 查询结果:
    • 例子:
    • 查询结果:
    • 例子:
    • 查询结果:
  • 2.为字段取别名
    • 语法格式:
    • 例子
    • 查询结果:
    • 例子(取别名前):
    • 查询结果:
    • 例子(取别名后):
    • 查询结果:
  • 总结

为表和字段取别名

阿文之前介绍过MySQL的分组查询、集合函数查询和嵌套子查询,在编写SQL语句时有的地方使用到AS关键字为查询结果中的某一列指定一个特定的名字。在内连接查询时,则对相同的表分别指定两个不同的名字,在这里可以为字段或者表取一个表名,起到区分、标识和简化的作用。

1.为表取别名

当表的名字很长或者执行一些特殊的查询时,为了方便操作或者需要多次使用相同的表时,可以为表指定别名,用这个别名替代表原来的名称。

语法格式:

表名 AS 表别名

  • "表名"为数据库中存储的数据表的名称
  • "表别名"为查询时指定的表的新名称,AS关键字为可选参数

例子:

SELECT * FROM fruits AS OD WHERE OD.s_id = 103;

查询结果:

在这里fruits AS OD代码表示为fruits表取别名为OD,指定过滤条件直接使用OD代替fruits。

例子:

SELECT OG.s_id,OD.f_name, OG.s_name, OG.s_city FROM fruits AS OD INNER JOIN suppliers AS OG ON OD.s_id = OG.s_id; 

查询结果:

由结果看到,MySQL可以同时为多个表取别名,而且表别名可以放在不同的位置,如WHERE子句、SELECT列表、ON子句以及ORDER BY子句等。

自连接连接是一种特殊的内连接,在连接查询中的两个表都是同一个表,其查询语句如下

例子:

SELECT OD1.s_id, OD2.s_id, OD1.f_name, OD1.f_price, OD1.f_id FROM fruits AS OD1 INNER JOIN fruits AS OD2 ON OD1.s_id = OD2.s_id AND OD2.s_id = 103;

查询结果:

提示:

在为表取别名时,要保证不能与数据库中其他表的名称冲突。且不能为SQL语句的关键字。

2.为字段取别名

在上面的自连接例子中,可以看到查询出来的两个s_id,字段名分别为s_id和s_id(1),不容易区别到底是哪张表的字段,这时候就需要为字段取列别名。

确实,在有些情况下,显示的列的名称很长或者需要区分或者名称不够直观时,就需要为字段取列别名。

语法格式:

字段名 AS 列别名

  • "列名"为表中字段定义的名称
  • "列别名"为字段新的名称

例子

SELECT f_name AS fruit_name, s_id AS supplier_id, f_price AS fruit_price FROM fruits AS f1 WHERE f1.f_price < 5;

查询结果:

也可以为SELECT子句中的计算字段取别名。例如,对使用COUNT聚合函数或者CONCAT等系统函数执行的结果字段取别名。

例子(取别名前):

SELECT CONCAT(TRIM(s_name),"  (", TRIM(s_city),")") FROM suppliers ORDER BY s_name; 

查询结果:

例子(取别名后):

SELECT CONCAT(TRIM(s_name),"  (", TRIM(s_city),")") AS suppliers_title FROM suppliers ORDER BY s_name; 

查询结果:

可以看到比没有取别名的查询结果要更清晰更好理解了

提示:

表别名只在执行查询的时候使用,并不在返回结果中显示,而列别名定义之后,将返回给客户端显示,显示的结果字段为字段列的别名。

总结

  • 通过给数据表取别名,可以清楚的辨别表,特别在自连接查询时
  • 通过给字段取别名,可以清楚的辨别查询出来的数据,更清晰更好理解

到此这篇关于MySQL如何为表和字段取别名的文章就介绍到这了,更多相关MySQL表和字段取别名内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 基于mysql中delete的语法别名问题

    目录 mysql delete的语法别名问题 mysql delete 语句中使用别名 alias mysql delete的语法别名问题 首先确认,mysql中的delete语句是支持别名的: 在自己书写delete语法时候,语句如下: delete from tableA a where a.c_pk_id = '123' 但是会报一个别名使用错误,如下: [Err] 1064 - You have an error in your SQL syntax; check the manual

  • MySQL笔记之别名的使用

    在查询时,可以为表和字段取一个别名.这个别名可以代替其指定的表和字段 为表取别名 复制代码 代码如下: mysql> SELECT * FROM department d    -> WHERE d.d_id=1001;+------+-----------+--------------+-------------+| d_id | d_name    | function     | address     |+------+-----------+--------------+------

  • 关于sql和mysql对于别名不能调用的一些理解

    在写sql的时候,由于有部分语句别名不能调用,百度了一下原因,原来是由于别名机制不同引起的.为了避免下一次再犯同样的错误,今天把网上找到资料总结了一下,sql和mysql执行顺序,发现内部机制是一样的.最大区别是在别名的引用上. 一.sql执行顺序 (1)from (3) join (2) on (4) where (5)group by (6) avg,sum.... (7)having (8) select (9) distinct (10) order by 从这个顺序中我们不难发现,所有

  • MySQL中使用表别名与字段别名的基本教程

    MySQL 表别名(Alias) SQL 表别名 在 SQL 语句中,可以为表名称及字段(列)名称指定别名(Alias),别名是 SQL 标准语法,几乎所有的数据库系统都支持.通过关键字 AS 来指定. 表别名语法: SELECT column FROM table AS table_alias 上述 SQL 执行后的效果,给人感觉是对 table_alias 表进行查询,但实际上对单表做简单的别名查询通常是无意义的.一般是对一个表要当作多个表来操作,或者是对多个表进行操作时,才设置表别名. 表

  • MySQL Union合并查询数据及表别名、字段别名用法分析

    本文实例讲述了MySQL Union合并查询数据及表别名.字段别名用法.分享给大家供大家参考,具体如下: union关键字 SELECT s_id, f_name, f_price FROM fruits WHERE f_price < 9.0 UNION ALL SELECT s_id, f_name, f_price FROM fruits WHERE s_id IN(101,103); 为表取别名 SELECT * from orders AS o WHERE o.o_num = 3000

  • MySQL如何为表和字段取别名详解

    目录 为表和字段取别名 1.为表取别名 语法格式: 例子: 查询结果: 例子: 查询结果: 例子: 查询结果: 2.为字段取别名 语法格式: 例子 查询结果: 例子(取别名前): 查询结果: 例子(取别名后): 查询结果: 总结 为表和字段取别名 阿文之前介绍过MySQL的分组查询.集合函数查询和嵌套子查询,在编写SQL语句时有的地方使用到AS关键字为查询结果中的某一列指定一个特定的名字.在内连接查询时,则对相同的表分别指定两个不同的名字,在这里可以为字段或者表取一个表名,起到区分.标识和简化的

  • MySQL为数据表建立索引的原则详解

    目录 1.索引是什么? 2.索引的优点? 3.索引的缺点? 4.在建立索引的时候,都有哪些需要考虑的因素呢? 1.只为用于搜索.排序.分组的列创建索引 2.索引列的类型尽量小 3.为列前缀建立索引 4.覆盖索引 5.让索引列以列名的形式在搜索条件中单独出现 6.新插入记录时主键大小对效率的影响 7.冗余和重复索引 总结 面试题: 索引是什么? 索引的优点? 索引的缺点? 在建立索引的时候都有哪些需要考虑的因素呢? 为数据表建立索引的原则有哪些? 什么是索引覆盖? 非聚簇索引一定会回表查询吗? 1

  • MySQL中大数据表增加字段的实现思路

    前言 增加字段相信大家应该都不陌生,随手就可以写出来,给 MySQL 一张表加字段执行如下 sql 就可以了: ALTER TABLE tbl_tpl ADD title(255) DEFAULT '' COMMENT '标题' AFTER id; 但是线上的一张表如果数据量很大呢,执行加字段操作就会锁表,这个过程可能需要很长时间甚至导致服务崩溃,那么这样操作就很有风险了. 那么,给 MySQL 大表加字段的思路如下: ① 创建一个临时的新表,首先复制旧表的结构(包含索引) create tab

  • MySQL 清除表空间碎片的实例详解

    MySQL 清除表空间碎片的实例详解 碎片产生的原因 (1)表的存储会出现碎片化,每当删除了一行内容,该段空间就会变为空白.被留空,而在一段时间内的大量删除操作,会使这种留空的空间变得比存储列表内容所使用的空间更大: (2)当执行插入操作时,MySQL会尝试使用空白空间,但如果某个空白空间一直没有被大小合适的数据占用,仍然无法将其彻底占用,就形成了碎片: (3)当MySQL对数据进行扫描时,它扫描的对象实际是列表的容量需求上限,也就是数据被写入的区域中处于峰值位置的部分: 例如: 一个表有1万行

  • Mysql联表update数据的示例详解

    1.MySQL UPDATE JOIN语法 在MySQL中,可以在 UPDATE语句 中使用JOIN子句执行跨表更新.MySQL UPDATE JOIN的语法如下: UPDATE T1, T2, [INNER JOIN | LEFT JOIN] T1 ON T1.C1 = T2. C1 SET T1.C2 = T2.C2, T2.C3 = expr WHERE condition 更详细地看看MySQL UPDATE JOIN语法: 首先,在UPDATE子句之后,指定主表(T1)和希望主表连接表

  • Mysql表连接的执行流程详解

    目录 1. 前言 1.1 mysql连接的原理 1.2 show warnings命令 2. 准备工作 3. inner join内连接on.where的区别 4. left join左连接on.where的区别 4.1 where驱动表过滤条件 4.2 on驱动表过滤条件 4.3 on被驱动表过滤条件 4.4 where被驱动表过滤条件 5. 总结 1. 前言 对于连接操作,驱动表和被驱动表的关联条件我们放在on后面,如果额外增加对驱动表和被驱动表的过滤条件,放到on或者where后面都不会报

  • Mybatis 动态表名+Map参数传递+批量操作详解

    需求: 之前项目一个变动,需要对3张mysql数据库表数据进行清洗,3张表表名不同,表结构完全相同,需要对这3张表进行相同的增.改.查动作,一开始比较紧急先对一张表进行操作,后来复制了3个一样的 service.dao.mapper等.后来对代码进行优化,研究了一下动态表名的处理. 1,查询操作: 查询操作只需要传入动态表名的时候,传递参数仍然是map mapper.xml内,需要使用statementType="STATEMENT",采用非预编译模式 mapper.xml内,动态表名

  • MySQL 设计和命令行模式下建立详解

    MySQL 设计和命令行模式下建立详解 系列文章: MySQL 设计和命令行模式下建立详解 C++利用MySQL API连接和操作数据库实例详解 1.数据表的设计 MySQL数据库管理系统(DBMS)中,包含的MySQL中定义数据字段的类型对你数据库的优化是非常重要的.MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 下面以大学熟悉的学生选课管理系统中用到的数据库为例,来设计相应的数据表.主要有三张表:学生表,课程表和选课表. 学生表设计: 字段(Field) 类

  • MySQL中使用去重distinct方法的示例详解

    一 distinct 含义:distinct用来查询不重复记录的条数,即distinct来返回不重复字段的条数(count(distinct id)),其原因是distinct只能返回他的目标字段,而无法返回其他字段 用法注意: 1.distinct[查询字段],必须放在要查询字段的开头,即放在第一个参数: 2.只能在SELECT 语句中使用,不能在 INSERT, DELETE, UPDATE 中使用: 3.DISTINCT 表示对后面的所有参数的拼接取 不重复的记录,即查出的参数拼接每行记录

  • MySQL的视图和索引用法与区别详解

    MySQL的视图 简单来说MySQL的视图就是对SELECT 命令的定义的一个快捷键,我们查询时会用到非常复杂的SELECT语句,而这个语句我们以后还会经常用到,我们可以经这个语句生产视图.视图是一个虚拟的表,它不存储数据,所用的数据都在真实的表中. 这样做的好处有: 1.防止有未经允许的租户访问到敏感数据 2.将多个物理表抽象成一个逻辑表 3.结果容易理解 4.获得数据更容易,很多人对SQL语句不太了解,我们可以通过创建视图的形式方便用户使用. 5.显示数据更容易. 6.维护程序更方便.调试视

随机推荐