MySQL视图的基本操作

使用DESC查看视图

mysql> desc view_user;

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

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

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

| name | varchar(10) | YES  |     | NULL   |       |

| age  | int(11)     | YES  |     |NULL    |       |

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

2 rows in set (0.01 sec)

使用show table atstus查看视图

mysql> show table status like‘view_userinfo‘\G;

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

Name: view_userinfo

Engine: NULL

Version: NULL

Row_format: NULL

Rows: NULL

Avg_row_length: NULL

Data_length: NULL

Max_data_length: NULL

Index_length: NULL

Data_free: NULL

Auto_increment: NULL

Create_time: NULL

Update_time: NULL

Check_time: NULL

Collation: NULL

Checksum: NULL

Create_options: NULL

Comment:VIEW

1 row in set (0.01 sec)

ERROR:

No query specified

物理表

mysql> show table status like ‘user‘\G;

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

Name: user

Engine: InnoDB

Version: 10

Row_format: Dynamic

Rows: 4

Avg_row_length: 4096

Data_length: 16384

Max_data_length: 0

Index_length: 0

Data_free: 0

Auto_increment: NULL

Create_time: 2016-01-20 14:45:41

Update_time: NULL

Check_time: NULL

Collation: latin1_swedish_ci

Checksum: NULL

Create_options:

Comment:

1 row in set (0.00 sec)

ERROR:

No query specified

使用Show create view查看视图

mysql> show create view view_userinfo\G;

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

View: view_userinfo

Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQLSECURITY DEFINER VIEW `view_userinfo` AS select `user`.`name` AS `name1`,`userinfo`.`phone`AS `phone1` from (`user` join `userinfo`) where (`user`.`id` =`userinfo`.`fid`)

character_set_client: utf8

collation_connection: utf8_general_ci

1 row in set (0.00 sec)

ERROR:

No query specified

在VIEW表中查看视图

mysql> select * frominformation_schema.views\G;

修改和删除视图

语法

CREATE [OR REPLACE] [ALGORITHM] ={undefined|MERGE|TEMPTABLE}]

VIEW view_name [(column_list)]

AS SELECT_statement

[WITH[CASCADED|LOCAL] CHECK OPTION]

mysql> select * from view_user;

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

| name   | age  |

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

| TubeLiu |   20 |

| Kevin  |   20 |

| Mark   |   30 |

| July   |   40 |

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

4 rows in set (0.00 sec)

mysql> create or replace view view_user

-> as

-> select id,name from user;

Query OK, 0 rows affected (0.01 sec)

mysql> select * from view_user;

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

| id | name    |

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

|  1| TubeLiu |

|  2| Kevin   |

|  3| Mark    |

|  4| July    |

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

4 rows in set (0.00 sec)

使用alter语句修改视图

语法

ALTER [ALGORITHM] ={undefined|MERGE|TEMPTABLE}]

VIEW view_name [(column_list)]

AS SELECT_statement

[WITH[CASCADED|LOCAL] CHECK OPTION]

mysql> alter view view_user

-> as

-> select name from user;

Query OK, 0 rows affected (0.01 sec)

mysql> select * from view_user;

+---------+

| name   |

+---------+

| TubeLiu |

| Kevin  |

| Mark   |

| July   |

+---------+

4 rows in set (0.00 sec)

更新视图

更新视图是指通过视图来插入、更新、删除表中的数据,因为视图是一个虚拟表,其中没有数据。通过视图更新的时候都是转到基本表进行更新的,如果对视图增加或者删除记录,实际上是对其基本表增加或者删除记录。

mysql> select * from view_userinfo;

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

| name1  | phone1 |

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

| TubeLiu | 12345 |

| Kevin   | 54321 |

| Mark   |  32145 |

| July   |  34521 |

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

4 rows in set (0.09 sec)

mysql> select * from userinfo;

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

| fid | phone | location |

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

|   1| 12345 | Shanghai |

|   2| 54321 | Beijing  |

|   3| 32145 | Shenzhen |

|   4| 34521 | Dalian   |

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

4 rows in set (0.00 sec)

mysql> select * from user;

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

| id | name    | age | sex  |

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

|  1| TubeLiu |   20 | F    |

|  2| Kevin   |   20 | F   |

|  3| Mark    |   30 | F   |

|  4| July    |   40 | M   |

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

4 rows in set (0.00 sec)

mysql> update view_userinfo setphone1=43521 where name1=‘July‘;

Query OK, 1 row affected (0.02 sec)

Rows matched: 1  Changed: 1 Warnings: 0

mysql> select * from userinfo;

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

| fid | phone | location |

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

|   1| 12345 | Shanghai |

|   2| 54321 | Beijing  |

|   3| 32145 | Shenzhen |

|   4| 43521 | Dalian   |

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

4 rows in set (0.00 sec)

使用drop语句删除视图

mysql> drop view if exists view_user;

Query OK, 0 rows affected (0.00 sec)

[[email protected] viewdb]# pwd

/var/lib/mysql/viewdb

[[email protected] viewdb]# ls

db.opt user.frm  user.ibd  userinfo.frm userinfo.ibd  view_userinfo.frm

[[email protected] viewdb]#

表的数据放在IBD文件里,表的信息放在FRM文件里。

View_user只有FRM文件,数据不是放在硬盘上。放在内存中。所以查的快。

时间: 2024-08-23 16:59:37

MySQL视图的基本操作的相关文章

7Python全站之路系列之MySQL视图

Python全栈之路系列之MySQL视图 视图是一个虚拟表(非真实存在),其本质是根据SQL语句获取动态的数据集,并为其命名,用户使用时只需使用名称即可获取结果集,并可以将其当作表来使用. 创建视图 创建一个名称为v1的视图,其功能就是查询color表中的所有数据 CREATE VIEW v1 AS SELECT * FROM color; 查看视图 使用视图时,将其当作表进行操作即可,由于视图是虚拟表,所以无法使用其对真实表进行创建.更新和删除操作,仅能做查询用. select * from 

Mysql命令行基本操作

本文记录的是windows7系统下Mysql的命令行基本操作. 一.Mysql启动与登录 1. Mysql启动: 通过运行mysql安装目录下的/bin/mysqld.exe文件来启动Mysql服务.在命令行中进入mysql安装目录下的bin目录,执行命令: mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server X.Y\my.ini"(指定配置文件,配置文件的位置根据具体情况而定) 即可启动mysql服务.为了以后开启m

第11章 mysql 视图

2015-10-24 目录 参考资料 [1] 唐汉明.深入浅出MySQL 数据库开发.优化与管理维护(第2版)[M].北京:人民邮电出版社,2014 [2] Schwartz.高性能MySQL(第3版)[M].北京:电子工业出版社,2013 [3] 范德兰斯.MySQL开发者SQL权威指南 [M].北京:机械工业出版社,2008 [4] Forta.MySQL必知必会 [M].北京:人民邮电出版社,2009 [5] mysql视图学习总结 [6] mysql之视图 [7] mysql之视图详解

八、mysql视图、存储过程、函数以及时间调度器

1.create or replace view emp_view as select * from t4 ;给t4表创建一个名为emp_view的视图 2.drop view emp_view 删除视图 ======================================= 1.创建一个存储过程(查询所有数据) create procedure p1 () READS SQL DATA BEGIN select * from t4; END 2.创建一个存储过程(查询传参数据) cre

MySQL的一些基本操作

最近开始学习MySQL,主要是通过书籍,和看燕十八老师的视频,然后通过博客记录自己的学习过程. 登入数据库 [email protected]:~$ mysql -uroot -p Enter password: 查看当前所有数据库 mysql> show databases;#查看当前所有数据库 +--------------------+ | Database | +--------------------+ | information_schema | | ceshi | | mysql

Linux下MYSQL数据库的基本操作

建立数据库: mysql> create database test; //建立一个名为"test"的数据库 建立数据库表: mysql> create table test -> (name char(16) not null, -> passwd char(16) ->); //建立一个名为"test"的表,里面有两个字段,一个字段名为"name",类型为char,大小为16,非空:另一个字段名为"pa

MySQL视图view/存储过程和函数的使用

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px ".PingFang SC Semibold"; color: #454545 } p.p3 { margin: 0.0px 0.0px 2.0px 0.0px; font: 14.0px

深入解析MySQL视图view

阅读目录---深入解析MySQL视图 创建视图 查看视图 视图的更改 create or replace view alter DML drop 使用with check option约束 嵌套视图 定义视图时的其他选项:algorithm.definer.SQL security 视图查询语句的处理 替代方法 具体化方法 Q:什么是视图?视图是干什么用的? A: 视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据.作为一个select语句保存在数据字典中的. 通过视图,可以展现

MySQL视图概述

1.介绍 在传统关系型数据库里,视图有时也被称作虚表,是基于特定SQL结果集的虚拟数据表.在有些场合会变得很方便,例如:原有系统重构,旧的数据表A和B已经被拆分和合并到数据表C.D.F里面,为了实现平滑迁移不影响对外数据业务,可以分别创建和原有数据表A和B一致的视图G和H,再实现数据层升级,不影响现有业务. 2.创建 创建MySQL视图语法如下 CREATE [ALGORITHM=[UNDEFINED | MERGE | TEMPTABLE] ] [DEFINER=用户名] [SQL SECUR