Ŀ¼
salary < all(3, 6, 9) 代表salary 筛选出必须小于区间中全部数据的最小的数据, 反之则是大于最大:大于最大,小于最小
0salary < any(3, 6, 9) 代表salary 筛选出只要小于区间中任意一种情况 ,
# 语法规则 # where id in (1, 2, 3) => id是1或2或3 # where id not in (1, 2, 3) => id不是1,2,3 # where salary < all(3, 6, 9) => salary必须小于所有情况(小于最小) # where salary > all(3, 6, 9) => salary必须大于所有情况(大于最大) # where salary < any(3, 6, 9) => salary只要小于一种情况(小于最大) # where salary > any(3, 6, 9) => salary只要大于一种情况(大于最小) in < > () # 案例 select * from emp where salary < all(select salary from emp where id>11);
# 数据依赖:单表emp """ 1)视图是存在内存中的临时表 2)视图的创建依赖select语句,所有就是select语句操作的结果形参的表 3)视图支持对数据的增删查改 4)视图不仅支持创建,也支持更新与删除 """ # 作用 ''' 1.提高了重用性,就像一个函数 2.对数据库重构,却不影响程序的运行。 3.提高了安全性能.可以对不同的用户,设定不同的视图。例如:某用户只能获取user表的name和age数据,不能获取sex数据 4.让数据更加清晰,想要什么样的数据,就创建什么样的视图. ''' # 语法 # 创建视图 mysql>: create view 视图名[(别名们)] as select 语句; eg>: create view v1 as select dep, max(salary) from emp group by dep; # 创建或替换视图 mysql>: create or replace view 视图名[(别名们)] as select 语句; mysql>: alter 视图名[(别名们)] as select 语句; eg>: create or replace view v1(dep_name, max_salary) as select dep, max(salary) from emp group by dep; eg>: alter view v1(name, salary) as select dep, max(salary) from emp group by dep; # 删除视图 mysql>: drop view 视图名 eg>: drop view v1; # 视图可以作为正常表完成连表查询 select name, dep_name, salary from emp join v1 on emp.dep=v1.dep_name and emp.salary=v1.max_salary;
前提:视图的增删改操作可以直接映射给真实表(本质就是对真实表进行操作)
```mysql
create or replace view v2 as select id,name,age,salary from emp;
update v2 set salary=salary+1 where id=1;
delete from v2 where id=1;
create or replace view v3 as select * from emp;
insert into v3 values(1, 'yangsir', '男', 66, 1.11, '上海', '那噶的', '教职部');
update emp set salary=salary+1 where id=1;
来源:博客园
作者:Huise.J
链接:https://www.cnblogs.com/jhpy/p/11599197.html