内卷能让一个群体的内部变得异常的精致,但是本质上却完完全全没有任何的进步,并且会导致更多没必要的资源浪费以及带来更加激烈的竞争。它是zbzy社会下劳动力过剩的必然现象。
视图
虚拟表,能像普通的表一样使用,通过表动态生成数据,只保存SQL逻辑 重用SQL语句,简化操作,提高安全性
视图的创建:
语法:
create view 视图名 as 查询语句:
测试例:
查询姓’田所’的学生名和专业名
CREATE VIEW v1
AS
SELECT stuname,majorname
FROM stuinfo s
INNER JOIN major m ON s.’majorid’=m.’id’
SELECT * FROM v1 WHERE s.stuname LIKE ‘田所%’
SELECT v1.stuname FROM v1 WHERE s.stuname LIKE ‘田所%’
视图的修改:
CREATE OR REPLACE VIEW 视图名 AS 查询语句;
ALTER VIEW 视图名 AS 查询语句
视图的删除:
DROP VIEW 视图名,视图名......;
视图的查看:
SHOW CREATE VIEW 视图名;
视图无法进行更新的条件
1.包含以下关键词的sql字句:
分组函数,distinct,group by ,having,union,union all
2.常量视图:
测试例:
CREATE OR REPLACE VIEW myv2 AS SELECT ‘john’NAME;
UPDATE myv2 SET NAME =’lucy ’
3.SELECT中包含子查询:
测试例:
CREATE OR REPLACE VIEW view1
AS
SELECT (
SELECT MAX(salary) FROM employees;
)
4.JOIN:
测试例:
CREATE OR REPLACE VIEW view2
AS
SELECT * FROM employees e
JOIN deparments d
ON e.department_id = d.department_id
5.FROM一个不能更新的视图:
测试例:
CREATE OR REPLACE VIEW view4
AS
SELECT * FROM view3
UPDATE view 4 SET revolution=100 WHERE department_id = 60;
6.WHERE字句中的子查询引用了FROM字句中的表
测试例:
CREATE OR REPLACE VIEW view6
AS
SELECT * FROM employees
WHERE employee_id IN(
SELECT manager_id
FROM employees
WHERE manager_id IS NOT NULL
);
UPDATE view 6 SET revolution=130 WHERE manager_id = 15;
视图和表的区别
视图:在内存存储的是逻辑语句,能增删改查(增删改非常受限)
表:在内存存储的是数据,为所欲为的增删改查