一、视图的概念
- 视图是由表导出来的,是一个虚拟表。
- 视图和表共用一份数据,所以修改表中的数据时,视图中的数据也会改变;修改视图中的数据时,表中的数据也会改变。
- 视图主要是让用户可以简化sql查询语句的,不建议用于更新数据。
二、创建视图
首先创建读者信息表,向表中插入数据。
– 读者信息表
create table reader(
card_id char(18) primary key,
name varchar(20) not null,
sex enum(‘男’,‘女’,‘保密’) default’保密’,
age tinyint not null,
phone_number char(11) not null,
balance decimal(6,2) default 200
);
– 插入读者记录
insert into reader values(‘330100199201231104’,‘小明’,‘男’,29,‘15787223423’,300);
insert into reader values(‘330100199201231105’,‘小红’,‘女’,21,‘15787223424’,220);
insert into reader values(‘330100199201231106’,‘王迷’,‘男’,19,‘15787223425’,310);
insert into reader values(‘330100199201231107’,‘李思’,‘女’,24,‘15787223426’,230);
insert into reader values(‘330100199201231108’,‘小王’,‘女’,32,‘15787223427’,240);
insert into reader values(‘330100199201231109’,‘王霞’,‘女’,26,‘15787223428’,300);
读者信息表如下:
创建一个视图,视图只显示读者的姓名和余额信息。
create view balance as select name,balance from reader;
查看该视图:
三、使用视图
1、查询余额最多的读者
select*from balance where balance=(select max(balance) from balance);
2、查询余额相同的读者有哪些
select balance,group_concat(name) from balance group by balance having count(name)>1;
四、删除视图
drop view balance;