数据库视图

视图、触发器、事务、存储过程、函数

拥有回忆 提交于 2020-01-01 03:29:46
视图、触发器、事务、存储过程、函数 阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 一 视图 视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用 #两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+ | 1 | 生物 | 1 | | 2 | 物理 | 2 | | 3 | 体育 | 3 | | 4 | 美术 | 2 | +-----+--------+------------+ 4 rows in set (0.00 sec) mysql> select * from teacher; +-----+-----------------+ | tid |

Mysql基础知识--视图

孤街醉人 提交于 2020-01-01 03:11:11
一、视图的操作 为了提高SQL语句的复用性和操作表的安全性,,MySQL数据库管理系统5提供了视图特性。 视图:本质上是一种虚拟表,其内容与真实的表相似,包含一系列带有名称的行和列数据。但是视图并不在数据库中一存储的数据值形式存在。行和列数据来自定义视图的查询所引用基本表,并且在具体引用视图时动态生成。 (一)视图的特点 视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系 视图是由基本表(实表)产生的表(虚表) 视图的建立和删除不影响基本表 对视图内容的更新(添加、删除和修改)直接影响基本表 当视图来自多个基本表时,不允许添加和删除数据 (二)创建视图 1.创建视图的语法形式 虽然视图可以被看成是一种虚拟表,但是其在物理上是不存在的,即数据库管理系统没有专门的位置为视图存储数据。 create view view_name AS 查询语句 注意:在SQL语句命名规范中,视图一般以view——xxx或者v_xxx的样式来命名 2.视图查询 SELECT * FROM view_name; 3.查看视图 #查看视图名 SHOW TABLES; #查看视图详细信息 SHOW TABLE STATUS [FROM db_nam] [LIKE 'pattern]'; eg: SHOW TABLE STATUS FROM VIEW LIKE ‘view_xxxx’ \G

mysql视图和临时表的区别

百般思念 提交于 2020-01-01 03:09:54
视图 视图是由从数据库的基本表中选出来的数据组成的逻辑窗口,它与基本表不同的是,视图是一个虚表。数据库中只存放视图的定义,而不存放视图包含的数据,这些数据仍存放在原来的基表中。所以基表中的数据如果发生改变,从视图中查询出的数据也随之改变。 视图是一个虚表,他是通过执行SQL查询所产生的。视图以select命名存储于数据字典当中。每当SQL查询包含有视图名称的时候,数据库管理系统会执行在视图定义当中所包含的查询,以建立其虚拟结果表。该结果表可以当做查询其余部分的源表使用。 视图可以是建立在一个或多个表上,也可以建立在视图上,但是不管怎么样对视图数据的操作最终都会转换为对基本表的操作,因为视图是一个虚表,数据实际上保存在基本表中 临时表 临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。 临时表有两种类型:本地和全局。它们在名称、可见性以及可用性上有区别。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。 临时表是建立在系统临时文件夹中的表,如果使用得当,完全可以像普通表一样进行各种操作,在VFP退出时自动被释放。

MySQL之视图

て烟熏妆下的殇ゞ 提交于 2020-01-01 03:08:57
一、视图的定义   视图是虚拟表或逻辑表,它被定义为具有连接的SQL SELECT查询语句。因为数据库视图与数据库表类似,它由行和列组成,因此可以根据数据库表查询数据。其内容由查询定义。但是,视图并不在数据库中以存储的数据值集形式存在,行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。简单的来说视图是由其定义结果组成的表; 二、视图的优缺点 优点:   1,数据库视图允许简化复杂查询,通过数据库视图,您只需使用简单的SQL语句,而不是使用具有多个连接的复杂的SQL语句。 2,安全性。一般是这样做的:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定。这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。 缺点:   1、性能:从数据库视图查询数据可能会很慢,特别是如果视图是基于其他视图创建的。  2、表依赖关系:将根据数据库的基础表创建一个视图。每当更改与其相关联的表的结构时,都必须更改视图。 三、创建视图 语法: CREATE VIEW 视图名称 AS SQL语句 ex: #两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+ | 1 |

MySQL之视图

时光毁灭记忆、已成空白 提交于 2020-01-01 03:08:29
一、视图的定义   视图是 虚拟表 或逻辑表,它被定义为具有连接的SQL SELECT 查询语句,因为数据库视图与数据库表类似,它由行和列组成,因此可以根据数据库表查询数据。其内容由查询定义。,   但是,视图并不在数据库中以存储的数据值集形式存在,行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。简单来说视图是由其定义结果组成的表。 二、视图的优点   1、数据库视图允许简化复杂查询,通过数据库视图,您只需使用简单的SQL语句,而不是使用具有多个连接的复杂的SQL语句。   2、安全性。一般是这样做的:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定。这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。 三、视图的缺点   1、性能:从数据库视图查询数据可能会很慢,特别是如果视图是基于其他视图创建的。   2、表依赖关系:将根据数据库的基础表创建一个项目。每当更改与其相关联的表的结构时,都必须更改视图。 四、创建视图 语法: CREATE VIEW 视图名称 AS SQL语句 临时表应用举例: #两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------

09-----视图

ぃ、小莉子 提交于 2020-01-01 03:08:05
一、视图的定义 视图是虚拟表或逻辑表,它被定义为具有连接的SQL SELECT查询语句。因为数据库视图与数据库表类似,它由行和列组成,因此可以根据数据库表查询数据。其内容由查询定义。 但是,视图并不在数据库中以存储的数据值集形式存在,行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。简单的来说视图是由其定义结果组成的表; 二、视图的优点 1、数据库视图允许简化复杂查询,通过数据库视图,您只需使用简单的SQL语句,而不是使用具有多个连接的复杂的SQL语句。 2、安全性。一般是这样做的:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定。这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。 三、视图的缺点 1、性能:从数据库视图查询数据可能会很慢,特别是如果视图是基于其他视图创建的。 2、表依赖关系:将根据数据库的基础表创建一个视图。每当更改与其相关联的表的结构时,都必须更改视图。 四、创建视图 语法: CREATE VIEW 视图名称 AS SQL语句 临时表应用举例: #两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+ | 1 |

mql初学事物和视图

你。 提交于 2020-01-01 02:43:49
1.概念:一条或者多条sql语句的集合! 事务:就是一堆操作的集合,他们同生共死。要么都执行成功,要么都执行失败 2.事务的特性 ACID A:原子性 完整的,不可分割的   原子性 (Atomicity):在事务中的操作,要么都执行,要么都不执行! C: 一致性 事务执行完毕后,数据的状态是一致的()   一致性(Consistency):事务必须保证数据库从一个一致性的状态变成另一个一致性的状态! I: ISOLation 隔离性 两个事务执行互不影响   隔离性(Isolation):每个事务之间互不干扰!哪怕是并发执行也不干扰! D: 永久性 事务执行完后,对数据的影响是永久的。   持久性(Durability):事务一旦被改变,那么对数据库中数据的影响是永久性的! 3.事务操作的关键字 自动提交事务开关set autocommit=1 开始事务 start transaction /begin 提交事务 commit 回滚事务 rollback set autocommit=1 4.事务+++存储过程 转账的例子 DELIMITER $$ CREATE PROCEDURE usp_transfer() BEGIN ##错误总数默认是0 DECLARE t_error INTEGER DEFAULT 0; ## continue 继续 hanlder 执行 并且对 t

mysql 视图

99封情书 提交于 2020-01-01 02:43:30
一. 视图概述 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。 对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。 视图是存储在数据库中的查询的SQL 语句,它主要出于两种原因:安全原因, 视图可以隐藏一些数据,如:社会保险基金表,可以用视图只显示姓名,地址,而不显示社会保险号和工资数等,另一原因是可使复杂的查询易于理解和使用。   视图:查看图形或文档的方式。   视图是从一个或多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。和表一样,视图也是包括几个被定义的数据列和多个数据行,但就本质而言这些数据列和数据行来源于其所引用的表。   所以视图不是真实存在的基础表而是一张虚表,视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中。   视图一经定义便存储在数据库中,与其相对应的数据并没有像表那样又在数据库中再存储一份,通过视图看到的数据只是存放在基本表中的数据。对视图的操作与对表的操作一样,可以对其进行查询、修改(有一定的限制)、删除。  

MySQL的事务和视图

蓝咒 提交于 2020-01-01 02:43:15
                  事务 1.概念 一条或者多条sql语句的集合! 事务:就是一堆操作的集合,他们同生共死。要么都执行成功,要么都执行失败 2.事务的特性 ACID A:原子性 完整的,不可分割的   原子性 (Atomicity):在事务中的操作,要么都执行,要么都不执行! C: 一致性 事务执行完毕后,数据的状态是一致的()   一致性(Consistency):事务必须保证数据库从一个一致性的状态变成另一个一致性的状态! I: ISOLation 隔离性 两个事务执行互不影响   隔离性(Isolation):每个事务之间互不干扰!哪怕是并发执行也不干扰! D: 永久性 事务执行完后,对数据的影响是永久的。   持久性(Durability):事务一旦被改变,那么对数据库中数据的影响是永久性的! 3.事务操作的关键字 自动提交事务开关set autocommit=0 开始事务 start transaction /begin 提交事务 commit 回滚事务 rollback set autocommit=1 4.事务+++存储过程 转账的例子 DELIMITER $$ CREATE PROCEDURE usp_transfer() BEGIN ##错误总数默认是0 DECLARE t_error INTEGER DEFAULT 0; ## continue

MYSQL数据库学习七 视图的操作

拜拜、爱过 提交于 2020-01-01 02:43:01
7.1 视图   视图使程序员只关心感兴趣的某些特定数据和他们所负责的特定任务。提高了数据库中数据的安全性。    视图的特点如下: 视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系。 视图是由基本表(实表)产生的表(虚表)。 视图的建立和删除不影响基本表。 对视图 内容 的更新(添加、删除和修改)直接影响基本表。 当视图来自多个基本表时,不允许添加和删除数据。 7.2 创建视图   创建完视图,可以将视图当做表一样来执行查询操作,创建视图时视图名不能重复: CREATE VIEW view_name AS 查询语句; 7.3 查看视图    通过为关键字SHOW TABLE设置LIKE参数,可以查看某一个具体表或视图的详细信息: SHOW TABLE STATUS 【FROM db_name】 【LIKE 'pattern'】;   查看关于视图的定义信息: SHOW CREATE VIEW view_name;   查看视图设计信息: DESCRIBE|DESC view_name;   通过系统表查看视图信息:(数据库information_scheme中存在一个包含视图信息的表格views,字段table_name对应视图名。) USE information_schema; SELECT * FROM views WHERE table_name=view