zoukankan      html  css  js  c++  java
  • 数据库之高级操作(视图、触发器、事务、存储过程、索引)

    一 视图

    什么是视图?

      视图是由一张表或多张表的查询结果构成的一张虚拟表。

    为什么要有视图?

      将复杂常用的查询结果保留下来重复使用。(将一张大表拆分成很多小表)

    语法:create view 视图名[(查询字段的名字们)] as (查询语句)

    eg1:建立一张emp表的视图表(数据与emp一致)

    create view new_emp as (select * from emp);

    注意:1.查询的字段们要与查询语句的查询字段对应

       2.create or replace :视图没有则被创建,有则被替换

    eg2:利用替换修改是视图表,要求为new_emp中只有id、name字段

    create or replace view new_emp(id,name)as (select id,name from emp);
    +----+----------+
    | id | name     |
    +----+----------+
    |  1 | egon     |
    |  2 | yanghuhu |
    |  3 | sanjiang |
    |  4 | owen     |
    |  5 | liujie   |
    |  6 | yingjie  |
    +----+----------+

    视图的修改

    alter 等价于 create or replace,这两个语句语法一致

    eg3:利用alter修改是视图表,要求为new_emp中有id、name、salary字段

    alter view new_emp(id,name,salary) as (select id,name,salary from emp);
    +----+----------+--------+
    | id | name     | salary |
    +----+----------+--------+
    |  1 | egon     |      3 |
    |  2 | yanghuhu |      2 |
    |  3 | sanjiang |     10 |
    |  4 | owen     |  88888 |
    |  5 | liujie   |      8 |
    |  6 | yingjie  |    1.2 |
    +----+----------+--------+

    视图中的字段操作(注意:不允许alter操作字段)

    alter table new_emp rename new_emp1;
    alter view new_emp modify id tinyint;
    两个都会报错,因此视图中的字段无法操作。

    视图中记录的操作:等价于普通表,完成增删改查,操作的是实体表即改是视图表的数据不会随着表(数据库表)的更新而变化,除非重新创建。

    视图的删除:

    drop view 视图名;

    视图表(虚拟表)的作用:用于数据库中表的查询。

     二 触发器

  • 相关阅读:
    读《阿里云是如何失控的》有感
    LeetCode Search in Rotated Sorted Array 在旋转了的数组中查找
    界面编程模仿篇(QQ登录界面逼真篇)
    最牛B的编码套路
    QinQ封装及终结详解
    seaJs学习笔记之javascript的依赖问题
    Deploy maven on Linux OS
    c++——inline内联函数
    c++——引用
    c++——const关键字
  • 原文地址:https://www.cnblogs.com/846617819qq/p/10268607.html
Copyright © 2011-2022 走看看