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
也不会重复了