首页 > 试题广场 >

针对actor表创建视图actor_name_view

[编程题]针对actor表创建视图actor_name_view
  • 热度指数:96505 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
针对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');
然后打印视图名字和插入的数据
示例1

输入

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
本题可用以下两种方法求解,区别在于命名VIEW中字段名的方法差异。另外,本题OJ系统有Bug,由错误提示可以看到,VIEW中本应有字段first_name_v,而OJ系统误设为了fist_name_v
方法一:注意 CREATE VIEW ... AS ... 的 AS 是创建视图语法中的一部分,而后面的两个 AS 只是为字段创建别名
CREATE VIEW actor_name_view AS
SELECT first_name AS fist_name_v, last_name AS last_name_v
FROM actor 
方法二:直接在视图名的后面用小括号创建视图中的字段名
CREATE VIEW actor_name_view (fist_name_v, last_name_v) AS
SELECT first_name, last_name FROM actor 
编辑于 2017-09-09 19:47:41 回复(23)
更多回答
CREATE TABLE actor_name_view (
    first_name_v varchar(45) NOT NULL,
    last_name_v varchar(45) NOT NULL
);
INSERT INTO 
    actor_name_view
SELECT 
    first_name, 
    last_name
FROM 
    actor;

发表于 2021-10-18 23:46:40 回复(1)
-- create view view_name as select语句
CREATE VIEW actor_name_view as
SELECT first_name as first_name_v,last_name as last_name_v
FROM actor;

发表于 2019-09-28 20:28:45 回复(0)
CREATE VIEW actor_name_view AS SELECT first_name AS fist_name_v, last_name AS last_name_v FROM actor;
CREATE VIEW actor_name_view(fist_name_v, last_name_v) AS SELECT first_name, last_name FROM actor;

发表于 2017-09-04 17:03:40 回复(0)
create view actor_name_view as 
select first_name as fist_name_v ,last_name as last_name_v from  actor
创建视图:create view view_name (字段名1,字段名2) as select .... 

发表于 2017-08-30 16:29:09 回复(0)
create view actor_name_view as 
select first_name first_name_v,last_name last_name_v
from actor;
发表于 2021-05-07 15:11:19 回复(0)
CREATE VIEW actor_name_view (first_name_v, last_name_v) AS
SELECT first_name, last_name FROM actor 
或者:
create view actor_name_view as

select first_name as first_name_v, last_name as last_name_v from actor
创建视图 用AS:
CREATE [TEMP | TEMPORARY] VIEW view_name AS
SELECT column1, column2..... FROM table_name
WHERE [condition];

视图(View)只不过是通过相关的名称存储在数据库中的一个 SQLite 语句。视图(View)实际上是一个以预定义的 SQLite 查询形式存在的表的组合。

视图(View)可以包含一个表的所有行或从一个或多个表选定行。视图(View)可以从一个或多个表创建,这取决于要创建视图的 SQLite 查询。、

视图(View)是一种虚表,允许用户实现以下几点:

  • 用户或用户组查找结构数据的方式更自然或直观。

  • 限制数据访问,用户只能看到有限的数据,而不是完整的表。

  • 汇总各种表中的数据,用于生成报告。

SQLite 视图是只读的,因此可能无法在视图上执行 DELETE、INSERT 或 UPDATE 语句。但是可以在视图上创建一个触发器,当尝试 DELETE、INSERT 或 UPDATE 视图时触发,需要做的动作在触发器内容中定义。


发表于 2019-06-11 10:56:12 回复(1)
oj错误已经被纠正了,看答案做题的同学注意了哈
发表于 2019-01-16 08:53:12 回复(0)
发表于 2021-12-10 16:42:19 回复(0)
看答案学习。考点:创建视图语句。 create view [viewname] as [查询语句]
两种方法:
    1. 查询语句中命名别名
create view actor_name_view as
select first_name first_name_v, last_name last_name_v from actor
    2. 在创建视图中起别名
create view actor_name_view(first_name_v, last_name_v) as
select first_name, last_name from actor



发表于 2021-03-27 11:38:08 回复(0)
create view actor_name_view as(
    select first_name as first_name_v,last_name as last_name_v from actor  
)
发表于 2022-09-07 10:57:50 回复(0)
create  view actor_name_view
as
select first_name as first_name_v, last_name as last_name_v
from actor 
发表于 2022-04-16 15:22:29 回复(0)

1、创建视图

create [or replace]
[algorithm = {undefined | merge | temptable}]
[definer=user]
[sql security{definer | invoker}]
view view_name[column_list]
as select_statement 
[with [casaded | local] check option]
 # 简化  create [or replace] view view_name[column_list] as select_statement
  • create :创建; replace :删除同名的视图再新建视图

  • algorithm :视图算法

  • definer :定义视图的用户,默认为当前用户

  • sql security : 视图的安全控制

  • view_name : 视图名

  • as : 创建视图的关键字

  • select_statement : 查询语句,将结果导入视图

  • with check option : 视图检查条件

多表视图

        select_statement语句多表查询,生成的视图就是多表视图

视图自定义列名

create view view_name(column_alias_list)as select column_list from [where 查询条件];

发表于 2021-10-19 13:45:56 回复(0)
create view actor_name_view as
select first_name as first_name_v, last_name as last_name_v
from actor
发表于 2019-07-27 22:41:08 回复(0)
fist
🤣
发表于 2017-10-14 21:58:34 回复(1)
坑爹,first,fist傻傻分不清楚
发表于 2017-07-24 23:26:12 回复(0)
CREATE TABLE  actor_name_view  (
   first_name_v  varchar(45) NOT NULL,
   last_name_v  varchar(45) NOT NULL);
   replace INTO actor_name_view
   SELECT first_name,last_name
   FROM actor

分析写错原因:
建表语法里应是first_name_v,而不是first_name

 
发表于 2024-03-21 20:01:13 回复(0)
create view actor_name_view as
select first_name as first_name_v,
        last_name as last_name_v
from actor
编辑于 2024-03-14 10:22:04 回复(0)
create view actor_name_view as 
select first_name first_name_v,last_name last_name_v from actor;

发表于 2024-02-24 16:32:11 回复(0)
CREATE VIEW actor_name_view
AS
SELECT
    first_name AS first_name_v,last_name AS last_name_v
FROM
    actor

发表于 2023-11-24 13:33:47 回复(0)