网站改版 域名,dw网站制作效果怎么做,物流网站建设方案范文,做市场调查的网站第7步---MySQL的视图操作 虚拟表。保存的只是视图的定义。不存放真实的数据#xff0c;数据还是在原先的表中。 好处是方便和简化代码以及安全。 1.视图创建
数据准备
-- 创建表的测试数据
create table dept(deptno int primary key,dname varchar(20),loc varchar(20)
);
…第7步---MySQL的视图操作 虚拟表。保存的只是视图的定义。不存放真实的数据数据还是在原先的表中。 好处是方便和简化代码以及安全。 1.视图创建
数据准备
-- 创建表的测试数据
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 OR REPLACEVIEW view_emp AS SELECT ename,job FROM emp;
视图查看
-- 查看视图
SHOW full TABLES;-- 查询视图
SELECT * FROM view_emp;2.修改视图
-- 修改
ALTER VIEW view_emp
AS
SELECT a.deptno,a.dname,a.loc ,b.ename ,b.sal FROM dept a,
emp b
WHERE a.deptnob.deptno; 其实视图表示的就是后面的连表查询的语句。 3.更新视图 可以对视图进行更新更新的数据会同步到正式的表中 聚合 去重 分组函数 having union 子查询 常量值 等等不能更新 -- 更新
-- 创建测试的视图
CREATE OR REPLACEVIEW view_emp1AS SELECT ename,job FROM emp;-- 更新视图数据
UPDATE view_emp1 SET ename 周瑜 WHERE ename关羽;-- 插入失败
INSERT INTO view_emp1 VALUES(张伞信息,文员);
视图中虽然可以更新数据但是有很多的限制。一般情况下最好将视图作为查询数据的虚拟表而不要通过视图更新数据。因为使用视图更新数据时如果没有全面考虑在视图中更新数据的限制就可能会造成数据更新失败。只作为视图数据查询和安全性的操作就行了不要进行别的操作
4.删除视图和重命名 删除的只是表的定义数据并没有丢失 -- 重命名
RENAME TABLE view_emp1 to ;-- 删除视图
DROP VIEW IF EXISTS view_emp2;
5.视图总结
概念虚拟表逻辑结构
作用原表数据变化视图中的数据也是发生变化的
cxl特点简化sql数据安全
操作 创建 create view 视图名 as 视图创建的语句 查看 和查询正式表是一样的 修改 alter view 视图名 as 子表 更新 好多是不支持的 重命名 rename table 旧名字 to 新的名字 删除 drop view if exists 视图名字