第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语句所指定的限制条件,这样可以确保数据修改后,仍可通过视图看到修改的数据。
- 可更新视图
要通过视图更新基本表数据,必须保证视图是可更新视图,即可以在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] ...