文章目录
1. 题目
-
题目来源:SQL38 针对actor表创建视图actor_name_view
-
题目描述
针对actor表创建视图actor_name_view,只包含first_name以及last_name两列,并对这两列重新命名,first_name为first_name_v,last_name修改为last_name_v: -
表格
CREATE TABLE actor ( actor_id smallint(5) NOT NULL PRIMARY KEY, first_name varchar(45) NOT NULL, last_name varchar(45) NOT NULL, last_update datetime NOT NULL);
后台会插入2条数据:
insert into actor values (‘1’, ‘PENELOPE’, ‘GUINESS’, ‘2006-02-15 12:34:33’), (‘2’, ‘NICK’, ‘WAHLBERG’, ‘2006-02-15 12:34:33’);
然后打印视图名字和插入的数据 -
所需结果
示例:输入: drop table if exists actor; CREATE TABLE actor ( actor_id smallint(5) NOT NULL PRIMARY KEY, first_name varchar(45) NOT NULL, last_name varchar(45) NOT NULL, last_update datetime NOT NULL); insert into actor values ('1', 'PENELOPE', 'GUINESS', '2006-02-15 12:34:33'), ('2', 'NICK', 'WAHLBERG', '2006-02-15 12:34:33'); 输出: ['first_name_v', 'last_name_v'] PENELOPE|GUINESS NICK|WAHLBERG
2. 题解
题解:
CREATE VIEW actor_name_view (first_name, last_name) AS
SELECT first_name first_name_v,
last_name last_name_v
FROM actor;
3. 反思:创建视图
1、创建视图:
sql CREATE VIEW v
AS SELECT clause;
注:若部分字段,则使用 v(c1, c2, ...)
,相应SELECT c1, c2,..
2、视图作用:
- 隐藏了底层的表结构(假加强了安全性)
- 简化了数据访问操作(简化用户操作)