zoukankan      html  css  js  c++  java
  • MySQL学习——操作视图

    MySQL学习——操作视图

    摘要:本文主要学习了使用DDL语句操作视图的方法。

    了解视图

    是什么

    视图是从一个、多个表或者视图中导出的表,包含一系列带有名称的数据列和若干条数据行。

    特点

    视图不是数据库中真实的表,而是一张虚拟表,其结构和数据是建立在对数据中真实表的查询基础上的。

    视图是查看数据表的一种方法,可以查询数据表中某些列构成的数据,只是一些SQL语句的集合。从安全的角度来看,视图的数据安全性更高,使用视图的用户不接触数据表,不知道表结构。

    视图的建立和删除只影响视图本身,不影响对应的基本表。

    使用视图

    查询视图数据的语句和查询表的语句是一样的。

    修改视图数据的语句实际上是通过修改表的数据实现的,对于可修改的视图,视图中的行和基本表的行之间必须具有一对一的关系。

    使用注意

    视图不包含数据,所以每次使用视图时,都必须执行查询中所需的任何一个检索操作。如果用多个连接和过滤条件创建了复杂的视图或嵌套了视图,可能会发现系统运行性能下降得十分严重。因此,在部署大量视图应用时,应该进行系统测试。

    创建视图

    语法

    1 create view 视图名 (列1, 列2, ..., 列n) as 查询语句;

    列名可以任意取名,但数量必须和查询的列名相等,如果不指明视图的列名,默认使用查询语句的列名。

    实例

    创建一个简单的视图:

    1 mysql> create view score_view as select * from score;
    2 Query OK, 0 rows affected (0.01 sec)
    3 
    4 mysql> 

    创建视图并指定列:

    1 mysql> create view score_view (编号, 学生, 科目, 成绩) as select id, student, course, grade from score;
    2 Query OK, 0 rows affected (0.00 sec)
    3 
    4 mysql> 

    查看视图结构

    语法

    1 desc 视图名;

    实例

     1 mysql> desc score_view;
     2 +--------+-------------+------+-----+---------+-------+
     3 | Field  | Type        | Null | Key | Default | Extra |
     4 +--------+-------------+------+-----+---------+-------+
     5 | 编号   | int(10)     | NO   |     | 0       |       |
     6 | 学生   | varchar(20) | NO   |     | NULL    |       |
     7 | 科目   | varchar(20) | NO   |     | NULL    |       |
     8 | 成绩   | int(10)     | YES  |     | NULL    |       |
     9 +--------+-------------+------+-----+---------+-------+
    10 4 rows in set (0.00 sec)
    11 
    12 mysql> 

    说明

    Field:列名。

    Type:类型。

    Null:表示该列是否可以存储NULL值。

    Key:表示该列是否已编制索引。PRI表示该列是主键的一部分,UNI表示该列是UNIQUE索引的一部分,MUL表示在列中某个给定值允许出现多次。

    Default:表示该列是否有默认值,如果有,值是多少。

    Extra:表示可以获取的与给定列有关的附加信息,如:AUTO_INCREMENT等。

    修改视图

    语法

    1 alter view 视图名 (列1, 列2, ..., 列n) as 查询语句;

    实例

    1 mysql> alter view score_view (学生, 课程, 成绩) as select student, course, grade from score;
    2 Query OK, 0 rows affected (0.01 sec)
    3 
    4 mysql> 

    删除视图

    语法

    1 drop view 视图名;

    实例

    1 mysql> drop view score_view;
    2 Query OK, 0 rows affected (0.00 sec)
    3 
    4 mysql> 
  • 相关阅读:
    73. Set Matrix Zeroes
    289. Game of Live
    212. Word Search II
    79. Word Search
    142. Linked List Cycle II
    141. Linked List Cycle
    287. Find the Duplicate Number
    260. Single Number III
    137. Single Number II
    Oracle EBS中有关Form的触发器的执行顺序
  • 原文地址:https://www.cnblogs.com/shamao/p/11596590.html
Copyright © 2011-2022 走看看