-
数据库表和视图的区别与联系,以及在MySQL中视图的使用
2019-04-09 23:20:52三、视图和表的关系 四、MySQL的相关操作 一、什么是视图 在数据库的独立性模型中,视图属于外模式,其起到了将用户与模式和内模式的分开。视图是从一个或者多个基本表(或者视图,但是一般建议不要使用,效率比较低...一、什么是视图
二、什么是表
三、视图和表的关系
四、MySQL的相关操作
一、什么是视图
在数据库的独立性模型中,视图属于外模式,其起到了将用户与模式和内模式的分开。视图是从一个或者多个基本表(或者视图,但是一般建议不要使用,效率比较低)导出来的虚拟的表。在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据。视图是原始数据库的一种变换,也就是说其实视图就是一组对原表的select操作的集合,视图的定义存在数据库中,但是与此定义相关的数据并没有存放在数据库中。我们可以将视图看成一个窗口,通过这个窗口我们可以看到一些数据,而通过窗口我们所看到的数据存放在基表中(因此称视图为虚拟的表)。
二、什么是表
在关系数据库中,用表来表达主体之间的关系,表属于数据库层次模式当中的内模式,也就是与物理储存有关。在关系数据库中,所有的关系被转化为二维表储存。三、视图和表的关系
联系:
视图是建立在基本表之上建立的虚拟表,它的结构和内容都来自基本表,它一句基本表而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。
区别:- 表是在物理空间实际存在的,并且在数据库的字典表中也有基本表的数据,而视图值储存了的定义。
- 表示内容,视图是窗口
- 视图是已经编译好的sql语句,而表不是
- 表示内模式,视图是外模式
- 视图是查看数据表的一种方式,可以查询数据表中的某些字段构成的数据,只是一些SQL语句的集合。从安全的角度来看,视图可以不给用户接触数据表,从而不知道表结构。
- 表属于全局模式中的表,视图属于局部模式的表
- 视图的建立和删除值影响视图的本身,不影响对应的基本表
- 不能对视图进行update或者insert into操作,一般视图只能进行selet操作
视图的作用:
1、当一个子查询需要反复使用的时候,视图可以简化代码,直接调用而不是每次都重复写
2、系统的数据管理员,需要给用户提供数据但是又不希望用户知道其他的任何数据的时候,可以给用户提供视图,也就是看数据的一个窗口,起到保护的作用
性能分析: 通常来说直接查询和查询视图是没有什么区别的(SQL本身也会进行优化),除非是视图嵌套了视图,或者查询很复杂要计算。但是每次select视图的时候,视图都会重新计算创建它的规则(SQL算法),如果算法复杂,数据量大,就会比较慢,并且表的索引(可以提高速率)对于视图而言是无效的,它是全表扫描。
四、MySQL中的相关操作
1、表的创建:--------创建表----------- --判断表是否存在--- if exists (select * from sysobjects where name = "S") ----存在就把表删除----- drop table S go creat table S ( sno int primary key, name vaechar(20) null ) -----添加数据----- insert into S(sno,name) values(01,"张三”); insert into S(sno,name) values(02,"李四"); ------查询数据------ select * from S
创建视图
--------判断是否存在------- if exists (select * from sysobjects where name ="VIEW_S") drop view VIEW_S go -----创建视图----- ------由于视图是基于基表,所以其没有数据的插入环节---- creat view VIEW_S as select * from S where sno=01 go ----使用视图---- select * from VIEW_S
-
dba user all 系统视图的区别,及相关视图
2020-07-19 23:18:51一、举例 dba_objects user_objects all_objects 三种视图 1.dba_objects 显示的整个实例中的对象,能否查看去取决于数据库...二、oracle数据库中三种标准的权限; connect resource dba 首先我看查看下这三个角色...一、举例 dba_objects user_objects all_objects 三种视图
1.dba_objects 显示的整个实例中的对象,能否查看去取决于数据库用户的权限。
2.user_objects 只显示当前用户拥有的所有对象,其他的用户和系统的对象不显示。
3.all_objects 显示当前用户可以访问的所有对象,包含用户拥有的对象。
二、oracle数据库中三种标准的权限;
connect resource dba
首先我看查看下这三个角色都有什么组成 从视图 dba_sys_privs
connect
connect一般给临时用户,只能登陆上来干不了啥事。
resource
从图上也看出来了,日常的开发需要用到的基本有了
dba权限就没有啥好看的 该有的不该有的都有了,一般不要随便给,容易背锅。
三、权限相关视图
select * from session_privs; 查看当前用户的所拥有的的权限。
select * from user_sys_privs; 查看当前用户所拥有的系统权限。
select * from dba_sys_privs; 查看所有用户的系统权限。
select * from role_sys_privs; 查看某个角色所拥有的系统权限。
select * from dba_role_privs; 查看所有用户所拥有的角色。
下面链接是百度到的别人写的
https://www.cnblogs.com/Haihong72H/p/11253741.html
-
SQL Server基础之《视图的概述和基本操作》
2015-05-14 09:20:47一:视图的概述二:视图的分类三:视图的优点和作用四:视图的基本操作和语法五:视图和表的区别 数据库中的视图是一个虚拟表。同真实的表一样,视图包含一系列带有名称的列和行数据,行和列数据用来自由定义视图...数据库中的视图是一个虚拟表。同真实的表一样,视图包含一系列带有名称的列和行数据,行和列数据用来自由定义视图和查询所引用的表,并且在引用视图时动态产生。本篇将通过一些实例来介绍视图的概念,视图的作用,创建视图,查看视图,修改视图,更新和删除视图等SQL Server的数据库知识。
一:视图的概述
视图是从一个或者多个表导出的,它的行为与表非常相似,但视图是一个虚拟表,在视图中可以使用SELECT语句查询数据,以及使用insert、update和delete语句修改记录,对于视图的操作最终转化为对基本数据表的操作。视图不仅可以方便操作,而且可以保障数据库系统的安全性。
视图一经定义便存储在数据库中,与其相对应的数据并没有像表数据那样在数据库中在存储一份,通过视图看到的数据只是存放在基本表中的数据。可以对其进行增删该查,通过视图对数据修改,基本表数据也对应变化,反之亦然。
二:视图的分类
SQL Server的视图可以分为3类,分别是:标准视图,索引视图,分区视图
2.1.标准视图
标准视图组合了一个或多个表中的数据,可以获得使用视图中的大多数好处,包括重点将放在特定的数据上及简化数据操作。
2.2.索引视图
索引视图是被具体化了的视图,即它已经经过计算并存储。可以为视图创建索引,对视图创建一个唯一的聚集索引。索引视图可以显著提高某些类型查询的性能,索引视图尤其适于聚合许多行的查询,但它们不太适于经常更新的基本数据集。
2.3.分区视图
分区视图在一台多多台服务器间水平连接一组成员表的分区数据,这样,数据看上去如同来自一个表。连接本地同一个SQL Server实例中的成员表的视图是一个本地区分视图。
三:视图的优点和作用
与直接从表中读取数据相比,视图具有一下优点
3.1.简单化
看到的就是需要的,视图不仅可以简化用户对数据的理解,也可以简化对它们的操作,那些经常使用的查询可以被定义为视图,从而使得用户不必为以后的每次操作指定全部的条件。
3.2.安全性
视图可以作为一种安全机制。通过视图用户只能查看和修改他们所能看到的数据。其它或表既不可见也不可以访问。如果某一用户想要访问视图的,必须授予其访问权限。视图所引用表的访问权限与视图权限的设置互不影响。
3.3.逻辑数据独立性
视图可以帮助用户屏蔽真实表结构变化带来的影响。
四:视图的基本操作和语法
4.1.创建视图
--语法 CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition
测试数据准备:
use sample_db; create table studentTable( id int identity(1,1)primary key, name varchar(20), gender char(2), age int, ) insert into studentTable (name,gender,age) values ('刘备','男',28), ('张飞','男',24), ('关羽','男',26);
--创建视图 if (exists (select * from sys.objects where name = 'student_view')) drop view student_view go --student_view()不实用参数,默认为基础表中的列名称 create view student_view as select name,age from studentTable where age>24; --执行视图 select * from student_view;
查看视图的信息
- 使用sp_help存储过程查看视图的定义信息
- 使用sp_helptext系统存储过程使用来显示规则,默认值,未加密的存储过程,用户定义函数,触发器或视图的文本,语法
exec sp_help 'student_view'; exec sp_helptext 'student_view';
创建加密视图:
--加密视图 if (exists (select * from sys.objects where name = 'student_encryption')) drop view student_encryption go create view student_encryption with encryption --加密 as select id, name, age from studentTable go --view_definition is null --查看加密视图 select * from information_schema.views where table_name like 'student_encryption';
从执行结果可看出view_definition字段为 NULL
4.2.使用视图修改基本表数据
(1).通过视图向基本表中插入数据
--(1).通过视图向基本表中插入数据 create view stu_insert_view(编号,姓名,性别,年龄) as select id,name,gender,age from studentTable; go select * from studentTable; ---插入一条数据 insert into stu_insert_view values('曹操','男',40); ----查看插入记录之后表中的内容。 select * from studentTable;
(2).通过视图修改基本表的数据
--(2).通过视图修改基本表的数据 --查看修改之前的数据 select * from studentTable; --修改数据 update student_view set age=30 where name='刘备'; --查看修改后的数据 select * from studentTable;
(3).通过视图删除基本表的数据
--语法 delete view_name where condition; --例子 delete student_view where name ='张飞'; select * from student_view; select * from studentTable;
4.3.修该视图
--修改视图 alter view student_view as select * from studentTable where age>26;
4.4.删除视图
--语法 drop view view_name1,view_name2,......,view_nameN; --该语句可以同时删除多个视图,只要在删除各视图名称之间用逗号分隔即可。 drop view studentTable;
五:视图和表的区别
- 视图是已经编译好的SQL语句,是基于SQL语句的结果集的可视化表,而表不是;
- 视图(除过索引视图)没有实际的物理记录,而基本表有;
- 表示内容,视图是窗口;
- 表占物理空间,而视图不占物理空间,视图只是逻辑概念的存在;
- 视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全角度说,视图可以防止用户接触数据表,从而不知表结构;
- 表属于全局模式的表,是实表;视图数据局部模式的表,是虚表;
- 视图的建立和删除只影响视图本身,不影响对应的基本表。
-
mysql索引 实验报告_视图和索引的创建和使用实验报告
2021-03-04 05:17:20信息工程学院实验报告课程名称:《数据库原理》实验项目名称:视图和索引的创建和使用一、实 验 目 的:(1)掌握创建视图的SQL语句的用法。(2)掌握修改视图的方法。(3)熟悉视图更新与基本表更新的区别与联系;认识视图...信息工程学院实验报告
课程名称:《数据库原理》
实验项目名称:视图和索引的创建和使用
一、实 验 目 的:
(1)掌握创建视图的SQL语句的用法。
(2)掌握修改视图的方法。
(3)熟悉视图更新与基本表更新的区别与联系;认识视图的作用。
(4)熟悉索引的作用,以及不同类型索引的区别。
(5)学会用T-SQL语句对表创建和删除索引
二、实 验 设 备 与 器 件
Win7 +Sql server 2008
三、实 验 内 容 与 步 骤
利用备份文件school,还原数据库,然后完成以下实验内容:
(1)用T-SQL语句,定义信息系学生基本情况视图V_IS。
(2)用T-SQL语句,将Student,Course 和SC表中学生的学号,姓名,课程号,课程名,成绩定义为
视图V_S_C_G。
(3)用T-SQL语句,将各系学生人数,平均年龄定义为视图V_NUM_AVG。
(4)用T-SQL语句,定义一个反映学生出生年份的视图V_YEAR。
(5)用T-SQL语句,将各位学生学号、选修课程的门数及平均成绩定义为视图V_AVG_S_G。
(6)用T-SQL语句,将各门课程的课程号、选修人数及平均成绩定义为视图V_AVG_C_G。
(7)用T-SQL语句完成以下视图操作,查看结果,并分析原因。
①通过视图V_IS,将学号为“200215125”的学生姓名更改为“张小立”,并查看结果;
②通过视图V_IS,新增加一个学生记录 ('200215126','黄笑',19, '男','IS'),并查看结果。
③通过视图V_IS,新增加一个学生记录 ('200215127','李霞',19, '女','MA'),并查看结果。
④通过视图V_IS,删除学号为“200215126”的学生信息,并查看结果。
⑤通过视图V_S_C_G,将学号“200215122”的姓名改为“刘晓晨”,能否实现?若无法实现说明原因。
⑥通过视图V_AVG_S_G,将学号“200215121”的平均成绩改为90,能否实现?若无法实现说明原因。
⑦修改视图V_IS定义,添加WITH CHECK OPTION语句,然后用update语句修改“200215125”的学
生所在系,改为’MA’, 能否实现?若无法实现说明原因。
⑧修改视图V_YEAR,对其进行加密处理,并查看结果。
(8)写出T-SQL语句:利用表和前面所建视图,查询平均成绩为90分以上的学生学号、姓名和成绩;
(9)写出T-SQL语句:利用表和前面所建视图,查询成绩大于课程平均成绩的学生学号、课程号和成绩;
(10)写出T-SQL语句:利用表和前面所建视图,按系分组统计平均成绩80分以上的人数,按降序排列。
(11)为student表创建一个复合索引i_sdept_sno,以院系升序、学号降序。
(12)在student表的sname列上建立普通降序索引。
(13)在course表的cname列上建立唯一索引。
(14)将sc表的原先在sno,cno列上的聚集索引,改为在sno列上建立。
(15)用系统过程sp_helpindex查看表student中的索引信息。
(16)用系统过程sp_rename,将索引i_sdept_sno的名称改为i_s。
-
SQLserver视图、存储过程、事务的简单介绍和使用
2019-05-31 09:38:02SQLserver视图、存储过程、事务 ...视图和普通的应用程序端SQL查询的区别:区别一:视图本身就是查询,保存到数据库服务器端,应用程序通过调用命令来执行视图;区别二:普通查询保存在应用程序端,需要... -
Django(五):视图和路由系统
2018-08-31 22:13:00二、request对象和response对象 三、路由系统 一、FBV和CBV 1.FBV(function base view)基于函数的视图 2.CBC(class base view)基于类的视图 3.两者区别如下: #FBV def add_author... -
数据库实验8——视图的定义与使用
2020-05-08 21:03:10文章目录视图的定义与使用一、实验目的二、实验要求三、实验内容1.定义视图2.使用视图四、实验步骤五、...思考视图和基本表的区别。 注意操作结果的截图与保存,供撰写实验报告使用。 三、实验内容 1.定义视图 在EDU -
2020HFUT数据库实验八 视图的定义与使用
2020-05-17 19:12:07实验八 视图的定义与使用 一.实验目的 熟悉和掌握对数据表中视图的查询操作和SQL语句...思考视图和基本表的区别。 注意操作结果的截图与保存,供撰写实验报告使用。 四.实验内容 1.定义视图 在EDUC数据库中,已 -
Sql Server 视图学习
2018-10-16 15:48:00五:视图和表的区别 数据库中的视图是一个虚拟表。同真实的表一样,视图包含一系列带有名称的列和行数据,行和列数据用来自由定义视图和查询所引用的表,并且在引用视图时动态产生。本篇将通过一些实例来介绍... -
视图基本知识
2019-01-06 11:09:26一、概念 视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。...三、视图与表的区别 (... -
数据库-视图
2018-07-09 10:20:02一、实验目的:1.掌握创建视图的SQL语句的用法。...学习灵活熟练的进行视图的操作,认识视图的作用 二、实验环境:SQL Server 2014 三、实验内容:Part 1 定义视图1.定义计算机系学生基本情况视图V_Co... -
双目立体匹配,SFM和MVS三维点云重建的区别和联系
2020-07-02 22:34:56三、MVS(Multi View Stereo)多视图立体:一系列不同视角图片 一、双目相机重建步骤: 1、双目相机矫正(获得相机内参和外参) 2、图像立体矫正(左右两个图片对齐到同一平面) 3、立体匹配(对齐后的图片利用极线... -
数据库实验之视图
2018-09-20 22:21:584.熟悉和掌握对数据表中视图的更新操作和SQL命令的使用,并注意视图更新与基本表更新的区别与联系 5.学习灵活熟练的进行视图的操作,认识视图的作用 二、实验环境: 三、实验内容: (写出主要的... -
数据库实验四 视图
2018-07-04 19:56:25一、实验目的:1.掌握创建视图的SQL语句的用法。2.掌握修改视图的方法。...学习灵活熟练的进行视图的操作,认识视图的作用二、实验环境: Windows下的SQL三、实验内容:Part 1 定义视图在数据库中,以StudentCour... -
数据库实验四 使用视图
2020-12-15 15:57:27实验四 使用视图 一、实验目的 ...理解和掌握视图消解的执行原理,掌握可更新视图和不可更新视图的区别。 三、实验过程 1.准备实验数据 创建数据库s_t和spj,创建学生表student、课程表course、选修表sc、 -
本博客的目录视图
2020-08-10 14:46:25收录了本博客的全部链接,方便查看与记录。...堆和栈的区别(转) C语言数组和指针详解(转) 2.qt编程 Qt编程基础(信号和槽机制、字符串操作、容器类) 3.shell脚本编程 Linux shell脚本编程总结(一、运算符) -
数据库实验--视图
2019-11-11 21:17:533. 熟悉视图更新与基本表更新的区别与联系 4. 认识视图的作用 二、实验内容 使用 SSMS 和 Transact-SQL 语句 CREATE VIEW 创建视图 使用 Transact-SQL 语句 ALTER VIEW 修改视图 学习删除视图的 Transact-SQL ... -
mvc和mvvm的区别
2020-11-04 21:46:41MVC是三个单词的缩写,分别为:模型(Model),视图(View)和 控制(Controller)。 MVC模型的目的就是实现Web系统的职能分工。 Model层实现系统中的业务逻辑,View层用于用交互,Controller层是Model和View沟通的... -
前端的arrayBuffer和后端的buffer的区别。
2020-04-21 01:31:44ArrayBuffer对象、TypedArray视图和DataView视图是 JavaScript 操作二进制数据的一个接口。它们都是以数组的语法处理二进制数据,所以统称为二进制数组。 二进制数组由三类对象组成。 (1)ArrayBuffer对象: ... -
数据库实验---视图
2018-07-05 22:21:52一、实验目的:1.掌握创建视图的SQL语句的用法。2.掌握修改视图的方法。...学习灵活熟练的进行视图的操作,认识视图的作用二、实验环境: SQL Serve 2017 三、实验内容:Part 1 定义视图在数据库中,以Student C... -
面试题:react和vue的区别分析
2021-01-19 17:13:56三大框架之二,大家应该都不会陌生,都有学习过或者开发中使用。 但是他们到底有啥区别呢?这个就是我们这篇文章所需探讨并学习的。 开始! MVC 和 MVVM 首先,来说明下这些字母代表的含义 M:Model 模型 V:View ... -
RationalDMIS 2020 图形视图操作技巧
2020-12-14 22:09:15了解了以下技巧后会消除您操作图形视图时“不顺手”的感觉。有很多用户在使用RationalDMIS之前有其他CMM软件或者三维制图软件的操作经验,习惯了某种操作方式,...同样的视角,打开和关闭透视投影观察同一个CAD的区别: -
vue和jquery的区别
2019-04-09 15:35:07Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。 二vue中两个核心点 ... -
Dev Gridcontrol Mater-Details多级视图动态绑定
2016-09-26 14:41:54用过DEV Gridcontrol的朋友们应该大多数都知道Gridcontrol可以实现多级视图,即通过主视图和子视图的主外键关系来达到分级展开的效果。常用的做法一般都是先设定两个表之间的Relation后直接用控件绑定,然后控件自动... -
数据库(事务、视图、变量、存储过程 、函数 、循环结构)
2020-02-19 19:47:41文章目录一. 事务1....视图和表的区别三. 变量1.系统变量:2.设置系统变量的值3.全局变量4.会话变量5. 自定义变量6. 局部变量 一. 事务 TCL 事务控制语言 事务: 一个或一组sql语句组成一个执行单元... -
MySQL索引与视图
2020-08-07 16:22:38唯一索引 : 除了值唯一,和基本索引没什么区别。 3.主键索引 : 特殊索引,一个表只能有一个主键,而且不能为空值。 4.组合索引 : 在多个列段上创建索引,只有在查询中使用了创建索引的第一个字段时,才会被使用...