mysql视图中设置数据区间_mysql 区间修饰条件 与视图

[TOC]

all与any:区间修饰条件

all any作用

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);

视图:view

# 数据依赖:单表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;

视图的增删改

前提:视图的增删改操作可以直接映射给真实表(本质就是对真实表进行操作)

# 视图可以完成增删改,增删改本质是直接对创建视图的真实表进行操作,不能对聚合函数的结果进行操作

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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值