在项目中遇到别名的问题,抽时间整理了一下

在sql中,合理的使用别名可以让sql更容易写并且提高可读性。别名使用 as 来表示,可以分为表别名和列别名。

别名应该是先定义后使用才对,所以首先要了解sql的执行顺序

sql执行顺序如下:

(1)from

(3) join

(2) on

(4) where

(5)group by(开始可以使用select的别名,后面的也行)

(6) avg,sum....

(7)having

(8) select

(9) distinct

(10) order by

这个最好记下来,要注意的是from是最先执行的,而select在having之后才执行。

这里有两张表

Student表

Score表

1.列别名

在这里可以看到我们给 name 添加了一个别名,输出后原表的 name 字段变为现在的别名字段 stuname;

2.表别名

我们给Student表起了个别名叫stu,给Score表起了个别名叫sc。

按照文章开头的顺序可以知道先执行form的语句,再执行where后面的句子,所以这种情况下where后可以接别名。

但是有一种情况比较特殊

执行顺序是 from -> group by --> having --> select 显而易见从from到having的过程中并没有定义c

但是这是个特殊情况,在group by 之后都可以使用select后字段的别名,记住即可。

参考文章:http://www.jb51.net/article/76521.htm

http://www.yiibai.com/mysql/alias.html

http://blog.csdn.net/u014044812/article/details/51004754

mysql别名的使用的更多相关文章

  1. Mysql 别名

    一.列别名 1.要给列添加别名,可以使用AS关键词后跟别名,例:SELECT [column_1 | expression] AS descriptive_name FROM table_name; ...

  2. mysql中别名(列别名和表别名)

    1.介绍 使用MySQL别名来提高查询的可读性.MySQL支持两种别名,称为列别名和表别名. 有时,列的名称是一些表达式,使查询的输出很难理解.要给列一个描述性名称,可以使用列别名.用法: SELEC ...

  3. os即时通讯客户端开发之-mac上安装MySQL

    一.安装 到MySQL官网上http://dev.mysql.com/downloads/mysql/,下载mysql可安装dmg版本 比如:Mac OS X ver. 10.7 (x86, 64-b ...

  4. mysql组复制安装

    参考文档 https://blog.csdn.net/li123128/article/details/80744568 https://www.cnblogs.com/ctulzq/p/863109 ...

  5. MAC机下用Terminal操作MySql

    在MAC机上安装好MySql后,在Terminal内运行mysql时会提示mysql command not found命令.这是因为没有把运行时的路径添加到$PATH变量中.检查$PATH变量中是否 ...

  6. MySQL篇,第二章:数据库知识2

    MySQL 数据库 2 名词介绍 1.DB(Database) DB就是数据库,存储数据的仓库 2.DBMS(Database Management System) 数据库管理系统 管理数据库的软件, ...

  7. MySQL连接表

    一:MySQL别名 1.介绍 使用MySQL别名来提高查询的可读性. MySQL支持两种别名,称为列别名和表别名. 有时,列的名称是一些表达式,使查询的输出很难理解.要给列一个描述性名称,可以使用列别 ...

  8. Datawhale MySQL 训练营 Task4 表联结

    学习内容 MySQL别名 列别名,将查询或者筛选出来列用AS 命名,如果有空格则需要引号 '' SELECT xxx AS xxxx FROM WHERE GROUP BY HAVING 表别名, 把 ...

  9. CakePHP 2.x 升级3.0

    CakePHP 2.x => 3.x 升级手顺 一.Controller层 1.find('list') 原2.x中该方法通过指定option中的'fields'来实现key=>value ...

随机推荐

  1. [err] 1055

    本人mysql安装在ubuntu16.04上,mysql版本是5.7.19:在创建表和插入数据时报了 [Err] 1055 - Expression #1 of ORDER BY clause is ...

  2. ARKit 增强现实平台 尝试(Xcode9 iOS11 A9处理器)

    一, Xcode 将加​​载其主页面并显示模板选择页面.模板简化了入门过程.然后选择增强现实应用程序图标,单击"下一步"按钮. 二, 运行程序会看到一个飞机 三,尝试更换模型 在这 ...

  3. 支持向量机(五)SMO算法

    11 SMO优化算法(Sequential minimal optimization) SMO算法由Microsoft Research的John C. Platt在1998年提出,并成为最快的二次规 ...

  4. Jmeter的安装和启动时出现unable to access jarfile apachejmeter.jar error value=1错误处理

    Jmeter是纯Java开发的, 能够运行Java程序的系统一般都可以运行Jmeter, 如:Windows. Linux. mac等. 由于是由Java开发,所以自然需要jdk环境. Windows ...

  5. 箱线图(boxplot)简介与举例

    简述:   盒图是在1977年由美国的统计学家约翰·图基(John Tukey)发明的.它由五个数值点组成:最小值(min),下四分位数(Q1),中位数(median),上四分位数(Q3),最大值(m ...

  6. Ubuntu16.04 install android-studio-ide-162.4069837-linux

    本文讲解如何在Ununtu 16.04上安装jdk.Android Sdk.Anroid Studio.Genymotion.AndroidStudio与Genymotion绑定. 由于第一次装了双系 ...

  7. ThinkJS框架入门详细教程(二)新手入门项目

    一.准备工作 参考前一篇:ThinkJS框架入门详细教程(一)开发环境 安装thinkJS命令 npm install -g think-cli 监测是否安装成功 thinkjs -v 二.创建项目 ...

  8. CoreData归纳使用

    1.CoreData简介 2.CoreData数据模型 3.CoreData的主要对象 4.使用CoreData实现数据存储 一.CoreData简介 CoreData用做数据持久化,是数据持久化的最 ...

  9. SAP问题【转载】

    1.A:在公司代码分配折旧表时报错? 在公司代码分配折旧表时报错,提示是"3000 的公司代码分录不完全-参见长文本" 希望各位大侠帮我看看. 3000 的公司代码分录不完全-参见 ...

  10. 2017-03-02学习心得之Java代码

    package com.lovo.classes;import java.util.Random;import java.util.TreeSet;import java.util.Scanner;p ...