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> 
  • 相关阅读:
    Python-Basis-9th
    Python-Basis-8th
    Python-Basis-7th
    Ubuntu-Basis-4th
    Ubuntu-Basis-3rd
    Ubuntu-Basis-2nd
    Ubuntu-Basis-1st
    疯狂java第五章&&第六章-面向对象
    疯狂java第四章-流程控制与数组
    疯狂java第三章-数据类型和运算符
  • 原文地址:https://www.cnblogs.com/shamao/p/11596590.html
Copyright © 2011-2022 走看看