数据库应用(mysql)视图

第1关:创建查询视图1

任务描述

本关任务:创建一个名为“userIn8”的视图,显示account表中电话号码尾数是8的用户姓名fullname和电话phone。
并查询userin8视图中的所有数据。

USE petstore;               #切换数据库
create view userln8         #创建一个视图
as
select fullname,phone
from account;
select *
from userln8
where phone like "%8";     #显示account表中电话号码尾数是8的用户姓名fullname和电话phone
#######Begin######
#######End########
 

相关知识

为了完成本关任务,你需要掌握:视图创建语句

语法

使用CREATE VIEW语句创建视图
语法格式:
CREATE [OR REPLACE] VIEW 视图名 [(列名列表)]
AS select语句
[WITH [CASCADED | LOCAL] CHECK OPTION]

列名列表:要想为视图的列定义明确的名称,可使用可选的列名列表子句,列出由逗号隔开的列名。列名列表中的名称数目必须等于SELECT语句检索的列数。若使用与源表或视图中相同的列名时可以省略列名列表。
WITH CHECK OPTION:指出在可更新视图上所进行的修改都要符合select语句所指定的限制条件,这样可以确保数据修改后,仍可通过视图看到修改的数据。

第2关:创建查询视图2

任务描述

本关任务:创建一个名为“userorders”的视图,显示每位用户的姓名,性别,所购买的所有订单总额(sum(totalprice) as st)。并查询userorders视图中所有订单总额中的最大值。

USE petstore;
create view userorders
as
select fullname,sex,sum(totalprice)as st
from account join orders
on account.userid=orders.userid
group by fullname;
select fullname,sex,st
from userorders
where st in 
(select max(st) from userorders);
##########Begin#########
##########End##########

相关知识

为了完成本关任务,你需要掌握:视图创建语句

语法

使用CREATE VIEW语句创建视图
语法格式:
CREATE [OR REPLACE] VIEW 视图名 [(列名列表)]
AS select语句
[WITH [CASCADED | LOCAL] CHECK OPTION]

列名列表:要想为视图的列定义明确的名称,可使用可选的列名列表子句,列出由逗号隔开的列名。列名列表中的名称数目必须等于SELECT语句检索的列数。若使用与源表或视图中相同的列名时可以省略列名列表。
WITH CHECK OPTION:指出在可更新视图上所进行的修改都要符合select语句所指定的限制条件,这样可以确保数据修改后,仍可通过视图看到修改的数据。

第3关:在视图中插入、修改、删除数据

任务描述

本关任务:
1.创建视图tmp内容与目录表category一致
2.插入catid=‘10’,catname='仓鼠',cades为null的记录
3.将刚刚插入记录的catid修改为11
4.查询category中所有数据
5.查询tmp中所有数据
6.删除这条记录

USE petstore;
create view tmp     #创建视图
as 
select *
from category;
insert into tmp     #插入数据
set catid='10',catname='仓鼠',cades='null';
update tmp          #修改数据
set catid='11'
where catname='仓鼠';
select * from category;    #查询表数据
select * from tmp;         #查询视图数据
delete from tmp            #删除记录
where catname='仓鼠'; 
##########Begin#########
##########End###########

相关知识

为了完成本关任务,你需要掌握:
1.创建视图
2.插入数据
3.更新数据
4.删除数据

语法

1.使用CREATE VIEW语句创建视图
语法格式:
CREATE [OR REPLACE] VIEW 视图名 [(列名列表)]
AS select语句
[WITH [CASCADED | LOCAL] CHECK OPTION]

列名列表:要想为视图的列定义明确的名称,可使用可选的列名列表子句,列出由逗号隔开的列名。列名列表中的名称数目必须等于SELECT语句检索的列数。若使用与源表或视图中相同的列名时可以省略列名列表。
WITH CHECK OPTION:指出在可更新视图上所进行的修改都要符合select语句所指定的限制条件,这样可以确保数据修改后,仍可通过视图看到修改的数据。

  1. 可更新视图
    要通过视图更新基本表数据,必须保证视图是可更新视图,即可以在INSET、UPDATE或DELETE等语句当中使用它们。对于可更新的视图,在视图中的行和基表中的行之间必须具有一对一的关系。还有一些特定的其他结构,这类结构会使得视图不可更新。如果视图包含下述结构中的任何一种,那么它就是不可更新的:
    (1)聚合函数;
    (2)DISTINCT关键字;
    (3)GROUP BY子句;
    (4)ORDER BY子句;
    (5)HAVING子句;
    (6)UNION运算符;
    (7)位于选择列表中的子查询;
    (8)FROM子句中包含多个表;
    (9)SELECT语句中引用了不可更新视图;

3.insert 插入
4.update更新
5.delete删除

第4关:修改、删除视图

任务描述

本关任务:
1.创建视图tmp,tmp内容与用户表account一致。
2.修改tmp,使tmp只有account表中的用户名fullname和电话phone两个列。
3.查看tmp中数据。
4.删除tmp。

USE petstore;
create view tmp          #创建视图
as
select *
from account;
alter view tmp           #修改视图
as
select fullname,phone
from account;
select * from tmp;       #查看数据
drop view tmp;           #删除视图
#########Begin########
#########End##########

相关知识

为了完成本关任务,你需要掌握:
1.使用ALERT语句可以对已有视图的定义进行修改。
2.使用SQL语句删除视图

语法

1.使用ALERT语句可以对已有视图的定义进行修改。
语法格式:
ALTER VIEW 视图名 [(列名列表)]
AS select语句
[WITH [CASCADED | LOCAL] CHECK OPTION]

2.使用SQL语句删除视图
语法格式:
DROP VIEW [IF EXISTS]
视图名1 [,视图名2] ...

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值