ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL视图,show命令大全

2021-12-21 10:31:48  阅读:165  来源: 互联网

标签:查看 show -- 数据库 视图 CHN MySQL


1.什么是MySQL视图呢?

视图是虚拟表,是从数据库中一个或多个表中导出来的表,其内容由查询定义;同真实表(基表)一样,视图包含一系列带有名称的字段和记录,在使用视图时动态生成。视图的数据变化会影响到基表,基表的数据变化也会影响到视图(insert、update、delete)。

另外,创建视图需要有create view权限,并且查询的列有select权限,使用create or update or alter修改视图,还需要有相应的drop权限。

视图可以查询、修改和删除,但不允许通过视图向基表插入数据。

视图的做用

对其中所引用的基础表来说,视图的做用类似于筛选,定义视图的筛选可以来自当前或者其他数据库的一个或多个表,也可以是其他视图;通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。

使用视图的优点

  • 安全性,视图的安全性可以防止未授权用户查看特定的行或列,使有权限用户只能看到表中特定行的方法,如下:

    1. 在表中增加一个标志用户名的列。

    2. 建立视图,使用户只能看到标有自己用户名的行。

    3. 把视图授权给其他用户。

  • 简单性,看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。

  • 逻辑数据独立性,视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,程序一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。视图可以在以下几个方面使程序与数据独立。

 

如果应用建立在数据库表上,当数据库表发生变化时,可以在表上建立视图,通过视图屏蔽表的变化,从而使应用程序可以不动。

 

 

如果应用建立在数据库表上,当应用发生变化时,可以在表上建立视图,通过视图屏蔽应用的变化,从而使数据库表不动。

 

 

如果应用建立在视图上,当数据库表发生变化时,可以在表上修改视图,通过视图屏蔽表的变化,从而使应用程序可以不动。

 

如果应用建立在视图上,当应用发生变化时,可以在表上修改视图,通过视图屏蔽应用的变化,从而使数据库可以不动。

2. 创建视图

mysql> CREATE VIEW v1 AS
    -> SELECT * FROM city WHERE countrycode='CHN' LIMIT 10;
Query OK, 0 rows affected (0.01 sec)

查看视图

mysql> select * from v1;
+------+--------------------+-------------+--------------+------------+
| ID   | Name               | CountryCode | District     | Population |
+------+--------------------+-------------+--------------+------------+
| 1890 | Shanghai           | CHN         | Shanghai     |    9696300 |
| 1891 | Peking             | CHN         | Peking       |    7472000 |
| 1892 | Chongqing          | CHN         | Chongqing    |    6351600 |
| 1893 | Tianjin            | CHN         | Tianjin      |    5286800 |
| 1894 | Wuhan              | CHN         | Hubei        |    4344600 |
| 1895 | Harbin             | CHN         | Heilongjiang |    4289800 |
| 1896 | Shenyang           | CHN         | Liaoning     |    4265200 |
| 1897 | Kanton [Guangzhou] | CHN         | Guangdong    |    4256300 |
| 1898 | Chengdu            | CHN         | Sichuan      |    3361500 |
| 1899 | Nanking [Nanjing]  | CHN         | Jiangsu      |    2870300 |
+------+--------------------+-------------+--------------+------------+

修改视图

ALTER VIEW 视图名称 as SQL语句;

删除视图

DROP VIEW 视图名称;
information_schema是视图库(虚拟库):

USE information_schema;
SHOW TABLES;    -- 返回了一堆视图

# 查看数据库中的所有视图

-- information_schema.TABLES中常用的字段
DESC infoRmation_schema.TABLES;
TABLE_SCHEMA    -- 库名
TABLE_NAME        -- 表名
ENGINE            -- 引擎
TABLE_ROWS        -- 表行数
AVG_ROW_LENGTH    -- 表中行平均长度(字节)
INDEX_LENGTH    -- 索引的占用空间大小(字节)

# show 命令大全

show  databases;                    -- 查看所有数据库
show tables;                        -- 查看当前库的所有表
show TABLES FROM                    -- 查看某个指定库下的表
show create database world            -- 查看建库语句
show create table world.city        -- 查看建表语句
show grants for root@'localhost'    -- 查看用户的权限信息
show charset;                        -- 查看字符集
show collation                        -- 查看校对规则
show processlist;                    -- 查看数据库连接情况
show index from                        -- 表的索引情况
show status                         -- 数据库状态查看
show STATUS LIKE '%lock%';        -- 模糊查询数据库某些状态
show VARIABLES                    -- 查看所有配置信息
show variables LIKE '%lock%';     -- 查看部分配置信息
show engines                    -- 查看支持的所有的存储引擎
show engine innodb status\G        -- 查看InnoDB引擎相关的状态信息
show binary logs                -- 列举所有的二进制日志
show master status                -- 查看数据库的日志位置信息
show binlog evnets in            -- 查看二进制日志事件
show slave status \G            -- 查看从库状态
show RELAYLOG EVENTS             -- 查看从库relaylog事件信息
desc (show colums from city)     -- 查看表的列定义信息
-- 不知道更多,请使用help
help show

 

标签:查看,show,--,数据库,视图,CHN,MySQL
来源: https://www.cnblogs.com/xo1990/p/15714160.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有