mysql数据库视图备份_数据库篇-mysql详解( 六 )之视图与数据备份

data.png

一 : 视图

视图: view, 是一种有结构(有行有列)但是没结果(结构中不真实存放数据)的虚拟表, 虚拟表的结构来源不是自己定义, 而是从对应的基表中产生(视图的数据来源).

( 1 ) : 创建视图

基本语法

Create view 视图名字 as select语句; -- select语句可以是普通查询;可以是连接查询; 可以是联合查询; 可以是子查询.

创建单表视图

create view my_v1 as

select * from my_student;

创建多表视图

视图表中有多表的情况下,字段不能重复

create view my_v3 as

select * from my_student as s left join my_class c on s.c_id = c.id; -- id重复

ERROR 1060 (42S21): Duplicate column name 'id'

正确创建多表

create view my_v3 as

select s.*,c.c_name,c.room from my_student as s

left join my_class c

on s.c_id = c.id;

( 2 ) : 查看视图

查看表结构

show create view my_v3\G

show create table my_v3\G

*************************** 1. row ***************************

View: my_v3

Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `my_v3` AS select `s`.`id` AS `id`,`s`.`number` AS `number`,`s`.`name` AS `name`,`s`.`sex` AS `sex`,`s`.`height` AS `height`,`s`.`c_id` AS `c_id`,`s`.`age` AS `age`,`c`.`c_name` AS `c_name`,`c`.`room` AS `room` from (`my_student` `s` left join `my_class` `c` on((`s`.`c_id` = `c`.`id`)))

character_set_client: utf8

collation_connection: utf8_general_ci

1 row in set (0.00 sec)

视图是一张虚拟表: 表, 表的所有查看方式都适用于视图: show tables [like]/desc 视图名字/show create table 视图名;

( 3 ) : 使用视图

使用视图主要是为了查询: 将视图当做表一样查询即可.

视图的执行: 其实本质就是执行封装的select语句.

( 5 ) : 修改视图

视图本身不可修改, 但是视图的来源是可以修改的.

修改视图: 修改视图本身的来源语句(select语句)

desc my_v1

+--------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+--------+-------------+------+-----+---------+-------+

| id | int(11) | NO | | 0 | |

| number | char(10) | YES | | NULL | |

| name | varchar(20) | YES | | NULL | |

| sex | char(1) | YES | | NULL | |

| height | i

你可能感兴趣的:(mysql数据库视图备份)