做网站免费的域名,网站建设存在四个问题,专业做简历找什么店,哪些网页游戏好玩目录
一、视图概述
二、视图的作用和优点
三、视图的使用规则
四、视图操作
1、创建视图 2、查看视图
1#xff09;查看视图基本信息
2#xff09;查看视图详细信息
3、修改视图
4、更新视图
5、删除视图 一、视图概述
视图是数据库中的一个虚拟表#xff0c;同真…目录
一、视图概述
二、视图的作用和优点
三、视图的使用规则
四、视图操作
1、创建视图 2、查看视图
1查看视图基本信息
2查看视图详细信息
3、修改视图
4、更新视图
5、删除视图 一、视图概述
视图是数据库中的一个虚拟表同真实表一样视图包含一系列带有名称的行和列数据。
视图是从一个或者多个表中导出来的视图的行为与表非常相似在视图中用户可以使用SELECT、INSERT、UPDATE、DELETE等语句。从MySQL5.0开始就可以使用视图视图可以使用户操作方便而且可以保障数据库系统的安全性。视图其实没有存储任何数据它只是对表的一个查询视图的定义保存在数据字典内创建视图所基于的表叫做‘基表’。
二、视图的作用和优点
作用控制安全、保存查询数据
优点提供了灵活一致级别安全性、隐藏了数据的复杂性、简化了用户的SQL指令、通过重命名列从另一个角度提供数据。
三、视图的使用规则
1、视图名必须有唯一的命名
2. 在mysql中视图的数量没有限制
3. 创建视图必须从管理员那里获得必要的权限
4. 视图支持嵌套也就是说可以利用其他视图检索出来的数据创建新的视图
5. 在视图中可以使用OREDR BY但是如果视图内已经使用该排序子句则视图的ORDER BY将覆盖前面的 ORDER BY
6. 视图不能索引也不能关联触发器或默认值
7. 视图可以和表同时使用。
四、视图操作
1、创建视图
基本语法
create [or replace] [algorithm {undefined | merge | temptable}]
view 视图名 [字段列表] as 查询语句
[with [cascaded | local] check option]
例如
mysql create view view_emp3 as select * from emp3;
Query OK, 0 rows affected (0.00 sec)mysql show tables;
-----------------
| Tables_in_mydb3 |
-----------------
| dept3 |
| emp3 |
| view_emp3 |
-----------------
3 rows in set (0.00 sec)mysql select * from view_emp3;
----------------------------------
| eid | ename | age | dept_id |
----------------------------------
| 1 | 乔峰 | 20 | 1001 |
| 10 | 丁春秋 | 71 | 1005 |
| 2 | 段誉 | 21 | 1001 |
| 3 | 虚竹 | 23 | 1001 |
| 4 | 阿紫 | 18 | 1001 |
| 5 | 扫地僧 | 85 | 1002 |
| 6 | 李秋水 | 33 | 1002 |
| 7 | 鸠摩智 | 50 | 1002 |
| 8 | 天山童姥 | 60 | 1003 |
| 9 | 慕容博 | 58 | 1003 |
----------------------------------
10 rows in set (0.03 sec)2、查看视图
1查看视图基本信息
语法1
describe 视图名;
例如
mysql describe view_emp3;
-------------------------------------------------
| Field | Type | Null | Key | Default | Extra |
-------------------------------------------------
| eid | varchar(20) | NO | | NULL | |
| ename | varchar(20) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| dept_id | varchar(20) | YES | | NULL | |
-------------------------------------------------
4 rows in set (0.00 sec)语法2
show table status like 视图名 \G
例如
mysql show table status like view_emp3 \G
*************************** 1. row ***************************Name: view_emp3Engine: NULLVersion: NULLRow_format: NULLRows: NULLAvg_row_length: NULLData_length: NULL
Max_data_length: NULLIndex_length: NULLData_free: NULLAuto_increment: NULLCreate_time: NULLUpdate_time: NULLCheck_time: NULLCollation: NULLChecksum: NULLCreate_options: NULLComment: VIEW
1 row in set (0.00 sec)2查看视图详细信息
语法
show create view 视图名;
例如
mysql show create view view_emp3;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| View | Create View | character_set_client | collation_connection |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| view_emp3 | CREATE ALGORITHMUNDEFINED DEFINERrootlocalhost SQL SECURITY DEFINER VIEW view_emp3 AS select emp3.eid AS eid,emp3.ename AS ename,emp3.age AS age,emp3.dept_id AS dept_id from emp3 | utf8 | utf8_general_ci |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 row in set (0.00 sec)3、修改视图
语法1
create [or replace] [algorithm {undefined | merge | temptable}]
view 视图名 [字段列表] as 查询语句
[with [cascaded | local] check option] 语法2
alter [algorithm {undefined | merge | temptable}]
view 视图名 [字段列表] as 查询语句
[with [cascaded | local] check option]
例如
mysql alter view view_emp3 as select eid,ename from emp3;
Query OK, 0 rows affected (0.01 sec)
#修改后查看表基本信息
mysql desc view_emp3;
-----------------------------------------------
| Field | Type | Null | Key | Default | Extra |
-----------------------------------------------
| eid | varchar(20) | NO | | NULL | |
| ename | varchar(20) | YES | | NULL | |
-----------------------------------------------
2 rows in set (0.00 sec)4、更新视图
语法
#更新数据
update 视图名 set 字段名1值1,…… [where 条件];
#插入数据
insert into 视图名 [字段名列表] values (字段1值,字段2值,……) [,(字段1值,字段2值,……)……];
#删除数据
delete from 视图名 [where 条件];
例如
#更新数据前查看表数据
mysql select * from view_emp3;
-------------------
| eid | ename |
-------------------
| 1 | 乔峰 |
| 10 | 丁春秋 |
| 2 | 段誉 |
| 3 | 虚竹 |
| 4 | 阿紫 |
| 5 | 扫地僧 |
| 6 | 李秋水 |
| 7 | 鸠摩智 |
| 8 | 天山童姥 |
| 9 | 慕容博 |
-------------------
10 rows in set (0.00 sec)#修改数据 eid10 的记录ename为‘张三’
mysql update view_emp3 set ename张三 where eid10;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0#插入一个数据eid20 ename李四的数据
mysql insert into view_emp3 values (20,李四);
Query OK, 1 row affected (0.00 sec)#更新数据后进行查看
mysql select * from view_emp3;
-------------------
| eid | ename |
-------------------
| 1 | 乔峰 |
| 10 | 张三 |
| 2 | 段誉 |
| 20 | 李四 |
| 3 | 虚竹 |
| 4 | 阿紫 |
| 5 | 扫地僧 |
| 6 | 李秋水 |
| 7 | 鸠摩智 |
| 8 | 天山童姥 |
| 9 | 慕容博 |
-------------------#删除eid20的数据
mysql delete from view_emp3 where eid20;
Query OK, 1 row affected (0.00 sec)#删除后再进行查看
mysql select * from view_emp3;
-------------------
| eid | ename |
-------------------
| 1 | 乔峰 |
| 10 | 张三 |
| 2 | 段誉 |
| 3 | 虚竹 |
| 4 | 阿紫 |
| 5 | 扫地僧 |
| 6 | 李秋水 |
| 7 | 鸠摩智 |
| 8 | 天山童姥 |
| 9 | 慕容博 |
-------------------
10 rows in set (0.00 sec)5、删除视图
语法
drop view [if exists] 视图视 [,视图名] …… [restrict | cascade];
例如
#删除前先查看存在的表
mysql show tables;
-----------------
| Tables_in_mydb3 |
-----------------
| dept3 |
| emp3 |
| view_emp3 |
-----------------
3 rows in set (0.00 sec)#删除视图view_emp3
mysql drop view view_emp3;
Query OK, 0 rows affected (0.00 sec)#删除后再进行查看
mysql show tables;
-----------------
| Tables_in_mydb3 |
-----------------
| dept3 |
| emp3 |
-----------------
2 rows in set (0.00 sec)参考书籍MySQL5.7从入门到精通-清华大学出版社