IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL——视图 -> 正文阅读

[大数据]MySQL——视图

1. 什么是视图?

  1. 他也是数据库的一部分
  2. 视图是一张虚拟表
  3. 视图建立在已有表的基础上,这些原基础的视图被称为基表
  4. 视图提供数据内容语句为select语句,可以将视图理解为存储起来的select语句
  5. 视图向用户提供基表数据的另一种表现方式

2. 视图的作用? 表

  1. 权限控制的时候可以使用
  2. 简化复杂的多表查询

视图的概述:
视图是一个或多个表中导出来的表,它是一种虚拟存在的表,并且表的结构和数据都依赖于基本表,通过视图不仅可以看到存放在基本表中的数据,并且还可以像操作基本表一样,对视图中存放的数据进行查询,修改,和删除。

视图的优点:
1.简化查询语句
视图不仅可以简化用户对数据的理解,也可以简化对数据的操作,从而使用户避免大量的重复操作。
2.安全性
通过视图用户只能查询和修改他们所能见到的数据,数据库中的其他数据即看不到也取不到,,数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和列上。
3.逻辑数据独立性
视图可以帮助用户屏蔽真实表结构变化带来的影响。

创建视图的语法格式

 create view 视图名 [字段] as select 语句

例如:

create table student(
sid int,
name varchar(20),
math float,
chinese float
);
insert into student(sid,name,math,chinese)values(1,'tom',80,70);
insert into student(sid,name,math,chinese)values(2,'jack',85,40);
insert into student(sid,name,math,chinese)values(3,'luny',70,50);
insert into student(sid,name,math,chinese)values(4,'som',90,60);

创建视图

create view view_stu as select math,chinese,math+chinese from student;
create view view_stu2 (math,chin,sum)as select math,chinese,math+chinese from student;

在多表上创建视图

CREATE TABLE category(
	-- 商品分类编号
	cid VARCHAR(10) PRIMARY KEY,
	-- 商品分类名称
	cname VARCHAR(50)
)

商品表

CREATE TABLE products(
  -- 商品编号
  pid VARCHAR(10) PRIMARY KEY,
  -- 商品名称
  pname VARCHAR(50),
  -- 商品价格
  price INT,
  -- 商品是否上架
  flag VARCHAR(2),
  -- 外键id
  category_id VARCHAR(10),
  -- 添加外键约束
  FOREIGN KEY (category_id) REFERENCES category(cid)

);

商品分类添加数据

INSERT INTO category VALUES('c001','家电');
INSERT INTO category VALUES('c002','鞋服');
INSERT INTO category VALUES('c003','化妆');
INSERT INTO category VALUES('c004','汽车');

商品表

INSERT INTO products VALUES ('p001','小米电视',5000,'1','c001');
INSERT INTO products VALUES ('p002','格力空调',3000,'1','c001');
INSERT INTO products VALUES ('p003','海尔冰箱',4500,'1','c001');
INSERT INTO products VALUES ('p004','篮球鞋',800,'1','c002');
INSERT INTO products VALUES ('p005','李宁卫衣',200,'1','c002');
INSERT INTO products VALUES ('p006','鸿星尔克鞋',300,'1','c002');
INSERT INTO products VALUES ('p007','足球鞋',1300,'1','c002');
INSERT INTO products VALUES ('p008','神仙水',2000,'1','c003');
INSERT INTO products VALUES ('p009','大宝SOD蜜',100,'1','c003');

查询所有的商品和商品分类信息

SELECT 
*
FROM
products,category
WHERE category_id = cid

基于刚才的操作,创建一张视图

CREATE VIEW pc AS 
SELECT 
*
FROM
products,category
WHERE category_id = cid

各个分类下商品平均价格

SELECT
cname '商品分类',
AVG(price)
FROM
products,category
WHERE
category_id = cid
GROUP BY
cname

通过视图查询

SELECT
AVG(price)
FROM
pc
GROUP BY
cname

查询鞋服下最贵的鞋的全部信息

SELECT products.* from products join category ON products.category_id = category.cid WHERE cname='鞋服' and price=(SELECT MAX(price) from products join category ON products.category_id = category.cid GROUP BY category_id  HAVING category_id = (select cid from category where cname ='鞋服'));

利用视图

select products.* from pc  where cname='鞋服' and price=(select max(price) from category,products where category_id=cid and cname='鞋服');

查看视图

show table status like '视图名';
show create view 视图名;

修改视图

alter view view_name [(column_list)] as select_statement;

更新视图
insert 在基表中插入新的数据,
delete from 视图名 where 字段名=值

删除视图

drop view [if exists] view_name;

视图和表的区别:

  1. 视图是建立在表之上的,表存储的数据库中的数据,而视图存得是一个数据的展示(select查询语句)
  2. 通过视图不能改变表中的数据(一般情况下视图中的数据都是表中的列,经过计算得到的结果,不允许更新)
  3. 删除视图,表不受影响,而删除表,视图不在起作用
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-18 10:14:40  更:2021-09-18 10:15:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:59:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码