当前位置: 首页 > news >正文

MySQL视图

文章目录

    • MySQL系列:
    • 1. 视图的核心概念
    • 2. 视图的用途
    • 3.创建视图
    • 4.修改数据
    • 5.删除视图
    • 6. 视图的优点

MySQL系列:

初识MySQL,MySQL常用数据类型和表的操作,增删改查(CRUD)操作(总),数据库约束数据库设计,SQL联合查询

1. 视图的核心概念

虚拟表:视图的结构和内容由SELECT语句定义,不独立存储数据。
动态数据:视图的数据在查询时实时生成,反映基表的最新状态。
逻辑抽象:隐藏底层表的复杂性,提供简化的数据访问接口。

2. 视图的用途

简化复杂查询:将多表连接、子查询等复杂操作封装成视图,用户直接查询视图即可。
数据安全:通过视图限制用户访问敏感字段(如隐藏薪资列)。
逻辑独立性:修改基表结构时,可调整视图定义以保持应用层兼容。
统一数据视角:为不同用户或应用提供定制化的数据子集。

create table student(
id bigint primary key auto_increment,
name varchar(20)not null,
sno varchar(10) not null,
age int default 18,
gender tinyint(1),
enroll_date date,
class_id bigint,
foreign key(class_id) references class(id)
);
insert into student (name, sno, age, gender, enroll_date, class_id) values 
('唐三藏', '100001', 18, 1, '1986-09-01', 1),
('孙悟空', '100002', 18, 1, '1986-09-01', 1),
('猪悟能', '100003', 18, 1, '1986-09-01', 1),
('沙悟净', '100004', 18, 1, '1986-09-01', 1),
('宋江', '200001', 18, 1, '2000-09-01', 2),
('武松', '200002', 18, 1, '2000-09-01', 2),
('李逹', '200003', 18, 1, '2000-09-01', 2),
('不想毕业', '200004', 18, 1, '2000-09-01', 2);

在这里插入图片描述

3.创建视图

语法:

CREATE VIEW view_name [(column_list)] AS select_statement
create view v_student as select * from student s where s.id<4;

在这里插入图片描述

4.修改数据

update student set student.name='李白' where student.id=1;

修改真实表的数据会影响视图
在这里插入图片描述
修改视图数据也会影响真实表
在这里插入图片描述

5.删除视图

语法:

drop view view_name;

在这里插入图片描述

6. 视图的优点

  1. 简单性:视图可以将复杂的查询封装成⼀个简单的查询。例如,针对⼀个复杂的多表连接查询,可
    以创建⼀个视图,⽤⼾只需查询视图⽽⽆需了解底层的复杂逻辑。
  2. 安全性:通过视图,可以隐藏表中的敏感数据。例如,⼀个系统的⽤⼾表中,可以创建⼀个不包含
    密码列视图,普通⽤⼾只能访问这个视图,⽽不能访问原始表。
  3. 逻辑数据独⽴性:视图提供了⼀种逻辑数据独⽴性,即使底层表结构发⽣变化,只需修改视图定
    义,⽽⽆需修改依赖视图的应⽤程序。使⽤到应⽤程序与数据库的解耦
  4. 重命名列:视图允许⽤⼾重命名列名,以增强数据可读性

相关文章:

  • DeepSeek与医院电子病历的深度融合路径:本地化和上云差异化分析
  • 2024年年终总结
  • Linux 目录结构与基础命令学习记录
  • 时序约束进阶八:时钟抖动Jitter与不确定性Uncertainty
  • 日常工作管理软件比较:6款工具的优缺点深度分析
  • BY组态:工业自动化的未来,触手可及
  • ROS2下编写orbbec相机C++ package并Rviz显示
  • Django后台新建管理员
  • Typescript class中的方法和函数类型的属性有何不同?
  • 当时只道是寻常
  • Postfix 主配置文件:只允许本机发送邮件,不接收任何外部邮件
  • 详细介绍 一下Tailwind CSS 在 Vite 项目中的配置和使用
  • 数据交互,请求拦截器,响应拦截器
  • 网络工程师 (42)IP地址
  • (学习总结24)Linux 基本命令2
  • android 自定义view时钟显示
  • 解锁机器学习核心算法 | 线性回归:机器学习的基石
  • 常用查找算法整理(顺序查找、二分查找、哈希查找、二叉排序树查找、平衡二叉树查找、红黑树查找、B树和B+树查找、分块查找)
  • 编程题-合并区间(中等-重点)
  • WEB安全--SQL注入--PDO与绕过
  • 丹麦外交大臣拉斯穆森将访华
  • 讲武谈兵|视距外的狙杀:从印巴空战谈谈超视距空战
  • 中哥两国元首共同见证签署《中华人民共和国政府与哥伦比亚共和国政府关于共同推进丝绸之路经济带和21世纪海上丝绸之路建设的合作规划》
  • 阿尔巴尼亚执政党连续第四次赢得议会选举,反对党此前雇用特朗普竞选经理
  • SIFF动画单元公布首批片单:《燃比娃》《凡尔赛玫瑰》等
  • 男子退机票被收票价90%的手续费,律师:虽然合规,但显失公平