SQLite AS 关键字

SQLite 关键字 AS 用于临时给表或列取一个别名

别名只是当前 SQL 语句执行过程中临时的改变,在数据库中实际的表的名称不会改变

SQLite 支持两种别名: 表别名列别名

语法

表别名 的基本语法如下

SELECT column1, ... FROM table_name AS alias_name ...

列别名 的基本语法如下

SELECT column_name AS alias_name FROM table_name WHERE [condition];

别名只是另一个名称,并不会覆盖原来的名字,别名和原名可以在表中一同使用

范例

先运行下面的 SQL 语句创建测试数据

有两张表,一张是职工表,一张是职工部门表

DROP TABLE tbl_employee;
DROP TABLE tbl_department;

CREATE TABLE tbl_employee (
   id INTEGER PRIMARY KEY AUTOINCREMENT  NOT NULL,
   name           CHAR(64) NOT NULL,
   age            INTEGER  NOT NULL,
   city           CHAR(64),
   salary         REAL
);


CREATE TABLE tbl_department (
   id      INTEGER PRIMARY KEY AUTOINCREMENT  NOT NULL,
   name    CHAR(64) NOT NULL,
   emp_id  INTEGER  NOT NULL
);


INSERT INTO tbl_employee (name,age,city,salary) VALUES
    ('张三', 25, 'pek', 102400.00 ),
    ('李四', 18, 'shanghai', 88888.00 ),
    ('王五', 22, 'hangzhou', 22000.00 ),
    ('孙六', 32, 'pek', 32000.00 ),
    ('钱七', 25, 'shanghai', 25000.00 ),
    ('赵二', 45, 'pek', 45800.00 ),
    ('冯九', 37, 'chengdu', 15000.00 );

INSERT INTO tbl_department (name,emp_id) VALUES
    ('行政', 1),
    ('售后服务', 2 ),
    ('研发', 3 ),
    ('研发', 4 ),
    ('售后服务', 5 ),
    ('研发', 6 ),
    ('CEO', 7 );

一般情况下我们查询员工所属部门的时候会使用下面的语句

SELECT tbl_employee.id,tbl_employee.name,tbl_department.name 
FROM tbl_department,tbl_employee 
WHERE tbl_employee.id = tbl_department.emp_id;

输出结果如下

id          name        name      
----------  ----------  ----------
1           张三          行政        
2           李四          售后服务      
3           王五          研发        
4           孙六          研发        
5           钱七          售后服务      
6           赵二          研发        
7           冯九          CEO 

是不是发现 SQL 语句很长,而且 name 字段一模一样,如果使用其它语言连接,那么第一列的 name 将不复存在

这时候 AS 关键字的作用就来了,它可以临时给表和字段取一个别名,我们看看另一个语句

SELECT e.id,e.name,d.name as department 
FROM tbl_department AS d ,tbl_employee AS e 
WHERE e.id = d.emp_id;

输出结果如下

id          name        department
----------  ----------  ----------
1           张三          行政        
2           李四          售后服务      
3           王五          研发        
4           孙六          研发        
5           钱七          售后服务      
6           赵二          研发        
7           冯九          CEO 

语句是不是简短了很多,而且 name 也不会重复了


Copyright © 简单教程 www.twle.cn