SQL:对表、字段起别名

1、对表起别名

1.1 使用 as

有时候,在对数据库中的表进行操作的时候,发现表名比较冗长,这时候我们就需要对表创建一个别名,别名的关键字为as(也可以不加)

select a.Sno,a.Sname,a.Sage 
from student as a

---
select a.Sno,a.Sname,a.Sage 
from student a (as可以去掉)

我们就对student取了一个别名叫做a

1.2 使用 WITH … AS … 语句增强 SQL 查询的可读性

因为业务比较复杂,所以大家经常会用到各种子查询(sub-query)。于是会写成类似这样:

SELECT
  t1.foo,
  t1.bar,
  t2.baz
FROM (
    SELECT
      foo,
      bar
    FROM
      tb1
    WHERE
      <conditions>
  ) AS t1 INNER JOIN (
    SELECT
      baz
    FROM
      tb2
    WHERE
      <conditions>
  ) AS t2 ON <conditions>
WHERE
  <conditions>;

这样写子查询会有两个问题:

  • 一是子查询的结果如果要在多个不同地方用到,那么就要复制粘贴多次,实际执行的时候也可能执行多次。
  • 二是当子查询 或/和 JOIN 特别多的时候,整个查询就会变得无比复杂,可读性极差。

为解决问题,可用视图(VIEW)解决,也可用 WITH ... AS ... 子句来解决WITH AS (SELECT ... FROM WHERE ) 和视图类似,可以创建一个临时表,供之后使用。按上述例子,改用 WITH … AS … 子句可以写成这样:

WITH t1 AS (
  SELECT
    foo,
    bar
  FROM
    tb1
  WHERE
    <conditions>
),
t2 AS (
  SELECT
    baz
  FROM
    tb2
  WHERE
    <conditions>
)

SELECT
  t1.foo,
  t1.bar,
  t2.baz
FROM
  t1 INNER JOIN t2 ON <conditions>
WHERE
  <conditions>;

https://liam.page/2020/03/13/the-WITH-AS-clause-in-Hive-SQL/

2、对字段起别名

SQL:对表、字段起别名_第1张图片
更改后:
SQL:对表、字段起别名_第2张图片

你可能感兴趣的:(MySQL,sql,数据库)