数据视图笔记

一、创建
(1)普通数据表创建
创建数据表需要一步步规划字段名、数据类型,还要配置主键、非空、外键等各类约束,建好之后表会占用物理磁盘空间存储真实数据,后续改动表结构比较繁琐。
代码示例:
CREATE TABLE student(
sid INT PRIMARY KEY,
sname VARCHAR(20) NOT NULL,
age INT
);
(2)视图创建
视图不会物理存放数据,本质只是保存封装后的SELECT查询语句,相当于给常用查询起了别名。
实操技巧:
1. 命名习惯加上 v_ 前缀,例如 v_stu_score ,浏览代码的时候可以快速区分视图和普通数据表;
2. 平时经常复用的多表JOIN联查,封装成视图,后续查询不用重复写一大段连接代码;
3. 视图内部避免嵌套多层子查询,后续排查问题难度会大幅上升。
代码示例:
CREATE VIEW v_stu_score AS
SELECT s.sname,c.cname,sc.score
FROM student s
JOIN sc ON s.sid=sc.sid
JOIN course c ON c.cid=sc.cid;

二、更新
(1)普通数据表更新
通过UPDATE语句就可以直接修改底层原生的数据,改动会永久保存到数据库当中。
实操技巧:
每次更新必须加上WHERE筛选条件,不然整张表的数据会被批量改动;正式更新前先用SELECT查看将要修改的数据,提前规避误改的问题。
(2)视图更新
视图的更新门槛较高:一旦视图用到聚合函数、DISTINCT去重、GROUP BY分组、复杂多表拼接,就不能够执行增删改;只有简单单表生成的视图才支持更新,对视图完成改动之后,底层原数据表的数据也会同步发生变化。
实操技巧:
1. 如果仅仅想要更改页面展示出来的数据样式,推荐用 CREATE OR REPLACE VIEW 重写视图定义,相比用ALTER调整原生数据表的字段结构,操作省事很多;
2. 若是大批量的数据修正,最好直接操作底层数据表,不要借助视图进行更新,稳定性更佳。

三、删除
(1)普通数据表删除
DELETE:只清除表中的数据行,数据表本身的结构会保留;
DROP TABLE:直接移除整张表,表结构、内部存储的数据都会消失,误操作很难复原。
实操技巧:
存在外键关联的场景,得先处理子表的数据,才可以删除主表;正式执行DROP删除数据表之前,记得做好数据备份。
(2)视图删除
使用 DROP VIEW 视图名 就可以完成删除操作。
实操技巧:
删除视图仅仅清除了封装的查询规则,底层数据表和原本存储的数据不会受到任何影响,容错性很强,不用担心不小心弄丢真实业务数据。