Linux 下 Informix 视图创建与使用
一 环境准备与连接
dbaccess -e <<'EOF'
CREATE DATABASE testdb WITH BUFFERPOOL BP8K, LOG;
CONNECT TO testdb;
EOF
二 创建与修改视图
CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;
CREATE VIEW view_name (col1_alias, col2_alias, ...) AS
SELECT c1, c2, ...
FROM t1 JOIN t2 ON ...
WHERE ...;
CREATE OR REPLACE VIEW view_name AS
SELECT ... -- 新的查询定义
DROP VIEW view_name;
CREATE VIEW emp_view AS
SELECT emp_id, emp_name, salary
FROM employees
WHERE salary > 0;
CREATE VIEW emp_dept_view (first_name, last_name, dept_name) AS
SELECT e.first_name, e.last_name, d.dept_name
FROM employees e
JOIN departments d ON e.dept_id = d.dept_id;
三 查询与权限控制
SELECT * FROM emp_view WHERE salary > 5000;
GRANT SELECT ON emp_view TO analytics_user;
REVOKE SELECT ON emp_view FROM analytics_user;
四 查看与维护视图定义
-- 1) 先找到视图的 tabid
SELECT tabid, tabname, tabtype
FROM systables
WHERE tabname = 'EMP_DEPT_VIEW';
-- 2) 再按 tabid 查看视图文本(可能分多行)
SELECT seqno, viewtext
FROM sysviews
WHERE tabid = :view_tabid
ORDER BY seqno;