有没有一种方法可以为查询提供速记符号?
前任。
Q1 = (select * from tablename2)
Q2 = (select * from tablename2)
select name from Q1;
select name from Q2;
我知道意见,但我不打算使用它们。
是的。创建一个视图。
CREATE VIEW Q1 AS (
SELECT
name,
id,
othercol
FROM tablename1
);
/* Works with a WHERE clause too */
CREATE VIEW Q2 AS (
SELECT
name,
id,
othercol
FROM tablename2
WHERE othercol = 'some limitation'
);
SELECT name FROM Q1;
/* aggregates work too */
SELECT name, COUNT(*) AS numrows FROM Q2 GROUP BY name;
注意:不建议SELECT *
在视图中(或在生产代码中的任何地方)。始终明确选择列表中的列,以便它们的顺序是确定的。
CREATE TEMPORARY TABLE ... SELECT
或者,使用语法创建一个临时表。
CREATE TEMPORARY TABLE Q1
SELECT name, id, othercol FROM tablename1;
/* select from it */
SELECT name FROM Q1 WHERE id IN (1,2,3,4,5)
/* When done, drop it. Otherwise, it will be dropped when the client connection terminates. */
DROP TABLE Q1;
我认为你在谈论观点。查看他们的文档。
视图类似于您要查找的内容。
但是对于其他查询或更新,“视图”不如“别名”或“外观”更方便。一个很好的比喻是“一个视图是一个虚拟表”。在 MSSQL 中,“视图”也可以成为增强安全性的有效方法。
这是一篇关于这个主题的好文章: