mysql view

定义:在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。

1、视图是一个虚拟存在的表,视图可以包含表的全部或者部分记录,也可以由一个表或者多个表来创建。使用视图就可以不用看到数据表中的所有数据,而是只想得到所需的数据。当我们创建一个视图的时候,实际上是在数据库里执行了SELECT语句,SELECT语句包含了字段名称、函数、运算符,来给用户显示数据。

2、视图在外观上和很相似,但是它不需要实际上的物理存储数据还是存储在原来的表里。在数据库中,只存放了视图的定义,并没有存放视图的数据,视图的数据是依赖原来表中的数据的,所以原来的表的数据发生了改变,那么显示的视图的数据也会跟着改变,例如向数据表中插入数据,那么在查看视图的时候,会发现视图中也被插入了同样的数据。视图实际上是由预定义的查询形式的表所组成的。

3、在数据库中,视图的使用方式与表的使用方式一致,我们可以像操作表一样去操作视图,或者去获取数据。一般来说,我们只是利用视图来查询数据,不会通过视图来操作数据。

4、基于视图可以创建视图

5、视图增加了数据的安全性和逻辑独立性,数据库的设计和结构不会受到视图中的函数、where 或 join 语句的影响。视图可以只展现数据表的一部分数据,对于我们不希望让用户看到全部数据,只希望用户看到部分数据的时候,可以选择使用视图。

用法:

1、创建视图(CREATE VIEW 视图名称[(column_list)] AS SELECT 语句)

create view employee_view as SELECT * from employee;

完整的创建视图的格式

CREATE ALGORITHM VIEW 视图名称[(column_list)] AS SELECT 语句  WITH  [CASCADED|LOCAL] CHECK OPTION

  1)CASCADED 默认值,表示更新视图的时候,要满足视图和表的相关条件

  2)LOCAL:表示更新视图的时候,要满足该视图定义的一个条件即可


create view employee_view as SELECT * from employee WITH CASCADED CHECK OPTION;

看到很多例子,更新视图可以更新真实表。原因,我是这样理解的:视图并没有保存内容。只是引用数据。那么,更新视图,其实就是以引用的方式操作了真实表
with check option:对视图进行更新操作的时,需要检查更新后的值是否还是满足视图公式定义的条件。通俗点,就是所更新的结果是否还会在视图中存在。如果更新后的值不在视图范围内,就不允许更新如果创建视图的时候,没有加上with check option,更新视图中的某项数据的话,mysql并不会进行有效性检查。删掉了就删掉了。在视图中将看不到了。所以使用WHIT [CASCADED|LOCAL] CHECK OPTION选项可以保证数据的安全性

2、查看视图数据(select column_list from view)

SELECT * FROM employee_view;

3、查看视图(show create view view_name)

 show CREATE view employee_view;

4、删除视图(drop view view_name)

drop view employee_view

5、修改视图

  1)CREATE OR REPLACE VIEW 视图名称[(column_list)] AS SELECT 语句

create or replace view employee_view as select eid,ename,salary FROM employee;

  2)ALTER VIEW视图名称[(column_list)] AS SELECT 语句

alter view employee_view as SELECT * FROM employee;

6、修改视图中的数据(update view_name set column where 语句)

UPDATE employee_view set ename=‘小红‘ WHERE ename=‘小个‘;
时间: 2025-01-02 13:49:56

mysql view的相关文章

mysql view(视图)

一,什么是视图 视图是存放数据的一个接口,也可以说是虚拟的表.这些数据可以是从一个或几个基本表(或视图)的数据.也可以是用户自已定义的数据.其实视图里面不存放数据的,数据还是放在基本表里面,基本表里面的数据发生变动时,视图里面的数据随之变动. 二,视图有什么用 1,视图可以让查询变得很清楚 如果您要找的数据存放在三张关系表里面,查看数据的时候,你就要写个联合查询了.换种方法,我把联合查询的数据放到视图里面,这样查询起来是不是更方便呢,通phpmyadmin看着是不是更清淅呢. 2,保护数据库的重

mysql view 更新中的问题

  mysql的视图有三种类型:merge.temptable.undefined.如果没有ALGORITHM子句,默认算法是UNDEFINED(未定义的). 算法会影响MySQL处理视图的方式. 1,MERGE,会将引用视图的语句的文本与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分. 2,TEMPTABLE,视图的结果将被置于临时表中,然后使用它执行语句. 3,UNDEFINED,MySQL将选择所要使用的算法.如果可能,它倾向于MERGE而不是TEMPTABLE,这是因为MER

MySQL优化详解

ysql表复制 复制表结构+复制表数据 ? 1 2 mysql> create table t3 like t1; mysql> insert into t3 select * from t1; mysql索引 ? 1 2 3 4 5 6 7 8 9 10 11 12 ALTER TABLE用来创建普通索引.UNIQUE索引或PRIMARY KEY索引 ALTER TABLE table_name ADD INDEX index_name (column_list) ALTER TABLE t

MySQL数据库优化详解(收藏)

MySQL数据库优化详解 mysql表复制 复制表结构+复制表数据mysql> create table t3 like t1;mysql> insert into t3 select * from t1;mysql索引 ALTER TABLE用来创建普通索引.UNIQUE索引或PRIMARY KEY索引ALTER TABLE table_name ADD INDEX index_name (column_list)ALTER TABLE table_name ADD UNIQUE (colu

mysql基础以优化

转自:http://www.cnblogs.com/yydcdut/p/3888308.html mysql表复制                                                                                复制表结构+复制表数据 mysql> create table t3 like t1; mysql> insert into t3 select * from t1; mysql索引                     

sql学习笔记(18)-----------数据库创建过程

手动创建数据库的步骤: 第一步:决定数据库实例的SID 数据库实例的SID用来将当前实例和以后可能创建的实例进行区分 % setenv ORACLE_SID mynewdb 第二步:建立数据库管理员认证方法 第三步:创建初始化參数文件 实例(由内存结构SAG和后台进程组成)启动过程中要读取初始化參数文件.得到初始化參数文件的一个好办法是改动一个已有的初始化參数文件.为了简化操作,将初始化參数文件放在Oracle默认的位置上.这种话.当数据库启动时,就没有必要再指定pfile參数了.由于Oracl

好吧就让我们结束这一切吧

http://www.tudou.com/programs/view/K7lbU7LsiJI/HGN13.htmlhttp://www.tudou.com/programs/view/SfcF7r7DsCk/XCWU7.htmlhttp://www.tudou.com/programs/view/BbljqbN52ZY/ieGvM.htmlhttp://www.tudou.com/programs/view/R4thdEitDik/17gGr.htmlhttp://www.tudou.com/p

法涉法而尴尬的收入法国

http://www.tudou.com/programs/view/pQOO07vn4Sc/l99Fi.htmlhttp://www.tudou.com/programs/view/EDJkM6ojYkc/r7RA6.htmlhttp://www.tudou.com/programs/view/Gf0zVZygPtU/EmvXY.htmlhttp://www.tudou.com/programs/view/UhqFbgbyQ6k/Z23Lx.htmlhttp://www.tudou.com/p

我不要说谎好吗

http://www.tudou.com/programs/view/KhjSmQKHEzM/McEy9.htmlhttp://www.tudou.com/programs/view/5FNDTTRKi6Y/9719g.htmlhttp://www.tudou.com/programs/view/UWFf0dz2DEk/3xPj2.htmlhttp://www.tudou.com/programs/view/b2zsYr4dCZg/gv6FP.htmlhttp://www.tudou.com/p