视图
概述
视图是一个虚拟表,同真实的表一样,视图包含一系列带有名称的行和列数据。行和列数据用来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
视图是从一个或多个表中导出的,它的行为与表非常相似,但视图时一个虚拟表。
视图分类
分为3类:标准视图、索引视图、分区视图。
创建视图
需要先创建的表
CREATE TABLE student(s_id INT,name VARCHAR(40)) CREATE TABLE stu_detail(s_id INT,glass VARCHAR(40),addr VARCHAR(90)) CREATE TABLE t (quantity INT, price INT); INSERT INTO t VALUES(3, 50);
单表上创建视图
【例1】在数据t上创建一个名为view_t的视图
CREATE VIEW view_t AS SELECT quantity,price,quantity*price AS Total_price FROM t SELECT * FROM view_t
多表上创建视图
【例2】在表student和表stu_detail上创建视图stu_glass
首先向两个表中插入一些数据。
INSERT INTO student VALUES(1,'wanglin1'),(2,'gaoli'),(3,'zhanghai'); INSERT INTO stu_detail VALUES(1, 'wuban','henan'),(2,'liuban','hebei'),(3,'qiban','shandong');
CREATE VIEW stu_glass(id,name,glass) AS SELECT student.s_id,student.name,stu_detail.glass FROM student,stu_detail WHERE student.s_id = stu_detail.s_id SELECT * FROM stu_glass
修改视图
【例3】使用ALTER语句修改视图view_t
ALTER VIEW view_t AS SELECT quantity FROM t
查看视图信息
【例4】使用sp_help存储过程查看view_t视图的定义信息
EXEC sp_help 'dbo.view_t'
【例5】使用sp_helptext存储过程查看view_t视图的定义信息
EXEC sp_helptext 'dbo.view_t'
使用视图修改数据
通过视图向基本表中插入数据
【例6】通过视图向基本表中插入一条新记录
CREATE VIEW view_stuinfo(编号,名字,成绩,性别) AS SELECT s_id,s_name,s_score,s_sex FROM stu_info WHERE s_name = '张三' SELECT * FROM stu_info -- 插入一条记录 INSERT INTO view_stuinfo VALUES(8,'雷子',90,'男') SELECT * FROM stu_info SELECT * FROM view_stuinfo

通过视图修改基本表中数据
【例7】通过view_stuinfo更新表中姓名为’张三’的同学的成绩
SELECT * FROM view_stuinfo UPDATE view_stuinfo SET 成绩 = 99 WHERE 名字 = '张三' SELECT * FROM stu_info
通过视图删除基本表中数据
【例8】通过视图删除基本表stu_info中的记录
DELETE view_stuinfo WHERE 名字 = '张三' SELECT * FROM stu_info SELECT * FROM view_stuinfo
删除视图
【例9】同时删除系统中的view_stuinfo和view_t视图
DROP VIEW dbo.view_stuinfo,dbo.view_t exec sp_help 'view_stuinfo' exec sp_help 'view_t'
问题
- 视图和表的区别是什么?
- 视图是已经编译好的SQL语句,是基于SQL语句的结果集的可视化表,而表不是。
- 视图没有实际的物理记录,而基本表有。
- 表示内容,视图是窗口。
- 表占用物理空间而视图不占,视图只是逻辑概念的存在。表可以及时对它进行修改,但视图只能用创建的语句来修改。
- 视图是查询表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以防止用户接触数据表,从而不知道表结构。
- 表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
- 视图的建立和删除只影响其本身,不影响对应的基本表。
- 视图和表有什么联系?
视图是在基本表上建立的表,它的结构和内容都来自基本表,依据基本表存在。
一个视图可以对应一个基本表,也可以对应多个基本表。
视图是基本表的抽象和在逻辑意义上建立的新的关系。
本文来自博客园,作者:一纸年华,转载请注明原文链接:https://www.cnblogs.com/nullcodeworld/p/18210652
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)