视图View的使用
(一)概念
1. 视图是简化查询过程,提高数据库安全性的虚拟表。 2. 视图中保存的仅仅是一条select语句,保存的是视图的定义,并没有保存真正的数据。视图中的源数据都来自于数据库表,数据库表称为基本表或者基表,视图称为虚拟表。 使用视图关注重点就在select语句上,因为select语句不一样,得到的结果集也是不一样的。
(二)作用
1. 防止未经许可的用户访问敏感数据,确保数据的安全性 2. 封装sql语句,简化查询过程 3. 视图可对用户屏蔽真实表结构
(三)语法
格式: CREATE VIEW 视图名字 AS SELECT 语句;
(四)案例
准备数据: CREATE DATABASE mysqlTall; CREATE TABLE `user` ( uid INT PRIMARY KEY AUTO_INCREMENT, uname VARCHAR(30) NOT NULL, username VARCHAR(20) UNIQUE NOT NULL, `password` VARCHAR(20) NOT NULL, hobby VARCHAR(20) NOT NULL ); INSERT INTO `user` VALUE (NULL, "张三", "zhangsan", "123", "抽烟"), (NULL, "李四", "lisi", "456", "喝酒"), (NULL, "张二麻子", "zhangermazi", "789", "烫头"); 1. 创建视图 语法: CREATEA VIEW 视图名字 AS SELECT 语句;
2. 查询视图 语法:SELECT * FROM 视图名;
3. 查看视图结构 语法:desc 视图名
4. 修改视图 语法: ALTER VIEW 视图名称 AS SQL语句 ;
5. 删除视图 语法: DROP VIEW 视图名称
代码
CREATE TABLE `user` (
uid INT PRIMARY KEY AUTO_INCREMENT,
uname VARCHAR(30) NOT NULL,
username VARCHAR(20) UNIQUE NOT NULL,
`password` VARCHAR(20) NOT NULL,
hobby VARCHAR(20) NOT NULL
);
INSERT INTO `user` VALUE (NULL, "张三", "zhangsan", "123", "抽烟"),
(NULL, "李四", "lisi", "456", "喝酒"),
(NULL, "张二麻子", "zhangermazi", "789", "烫头");
select * from user;
#创建视图
create view user_view as select uid,uname,hobby from user;
#查询视图
select * from user_view;
#创建用户
CREATE USER 'zhangsan' @'%' IDENTIFIED by '123';
#授权
grant select on day09.user_view to 'zhangsan'@'%';
#查看表结构
desc user_view;
#修改视图
alter view user_view as select uname,hobby from user;
#删除视图
drop view user_view;