视图部分
数据准备
create database if not exists mydb6_view; use mydb6_view; create table dept( deptno int primary key, dname varchar(20), loc varchar(20) ); insert into dept values(10, '教研部','北京'), (20, '学工部','上海'), (30, '销售部','广州'), (40, '财务部','武汉'); create table emp( empno int primary key, ename varchar(20), job varchar(20), mgr int, hiredate date, sal numeric(8,2), comm numeric(8, 2), deptno int, -- FOREIGN KEY (mgr) REFERENCES emp(empno), FOREIGN KEY (deptno) REFERENCES dept(deptno) ON DELETE SET NULL ON UPDATE CASCADE ); insert into emp values (1001, '甘宁', '文员', 1013, '2000-12-17', 8000.00, null, 20), (1002, '黛绮丝', '销售员', 1006, '2001-02-20', 16000.00, 3000.00, 30), (1003, '殷天正', '销售员', 1006, '2001-02-22', 12500.00, 5000.00, 30), (1004, '刘备', '经理', 1009, '2001-4-02', 29750.00, null, 20), (1005, '谢逊', '销售员', 1006, '2001-9-28', 12500.00, 14000.00, 30), (1006, '关羽', '经理', 1009, '2001-05-01', 28500.00, null, 30), (1007, '张飞', '经理', 1009, '2001-09-01', 24500.00, null, 10), (1008, '诸葛亮', '分析师', 1004, '2007-04-19', 30000.00, null, 20), (1009, '曾阿牛', '董事长', null, '2001-11-17', 50000.00, null, 10), (1010, '韦一笑', '销售员', 1006, '2001-09-08', 15000.00, 0.00, 30), (1011, '周泰', '文员', 1008, '2007-05-23', 11000.00, null, 20), (1012, '程普', '文员', 1006, '2001-12-03', 9500.00, null, 30), (1013, '庞统', '分析师', 1004, '2001-12-03', 30000.00, null, 20), (1014, '黄盖', '文员', 1007, '2002-01-23', 13000.00, null, 10); create table salgrade( grade int primary key, losal int, hisal int ); insert into salgrade values (1, 7000, 12000), (2, 12010, 14000), (3, 14010, 20000), (4, 20010, 30000), (5, 30010, 99990);
创建视图
create or replace view view1_emp as select ename,job from emp;#一定要加as
查看视图和表
-- 查看表和视图 show tables; show full tables;
show full tables 可以查看是表还是视图
-- 二者等价 select * from view1_emp; select * from (select ename,job from emp )as aa1;
-- 修改视图 alter view view1_emp as select a.deptno,a.dname,a.loc,b.ename,b.sal from dept a,emp b where a.deptno = b.deptno; select * from view1_emp;