• MySQL数据库的SQL语言与视图


    SQL语言

    SQL是strcture query language 的缩写,是关系型数据库的标准语言结构化 查询 语言包括三个大的内容:

    A、 DDL数据定义语言:create database table •••••••

    B、 DML数据操纵语言:insert update delete

    C、 DCL数据控制语言:grant••••••

    创建视图(视图也叫虚拟表;表:基本表)使用create view 语句创建试图,格式如下:

    Create [ or replace(将现有的覆盖) ] view view_nameAs select_statement[ with [cascaded | local ]check option ]

    Replace:替换

    Check:检查

    option:选项

    Cascaded:级联(默认)

    local:本地简化

    创建视图命令:Create view view_name As select_statementCreate view 视图名 as 查询语句

    注意:

    视图分为可更新视图和不可更新视图。

    1、 查看视图的定义命令:Show create view view_name

    例:show create view 计算机专业_xsshow create view lssxcj_cjb;

    2、 删除已创建好的视图命令:Drop view view_name例:drop view 离散数学

    例题1:在学生管理数据库中为计算机专业的同学创建一个视图

    Create view 计算机专业_xs as select from xs where 专业=’计算机’ with check option;

    使用show tables查看使用select from 视图名_xs查看视图中的数据

    3、 创建学生成绩视图

    Create view 学生成绩_xs_kc_cj asSelect 姓名,课程名,成绩 from xsl,kb,cjb where xsl.学号=cjb.学号 andkb.课程号=cj.课程号;

    【说明】

    1. 若指定了【or replace】参数,则表示如果存在同名的视图,则覆盖原来的视图。

    2. With check option:为可选项,不指定该项不进行相关检查。而如果指定该选项,则可指出在可更新视图上所进行的修改都要符合select_statement 所指定的限制条件,这样可以确保数据修改后,仍可通过视图看到修改的数据,当视图是根据另一个视图定义时,with check option 给出两个参数:local(本视图)和 cascaded(级联到所有下一级视图)。它们决定了检查测试的范围。

    可更新视图要通过视图更新基本表的数据,必须保证视图是可更新的,既可以在insert update等语句中当中使用它们。对于可更新的视图,在视图中的行为和基本表中的行之间具有一对一的关系。还有一些特定的其他结构,这类结构会使得视图不可更新。

    如果视图含下述结构中的任何一种,那么它就是不可更新的。

    聚合函数:max() sum() count() avg()等;

    Distinct 关键字;

    Group by 子句;

    Order by 子句;

    Having 字句;

    From 子句中包含多个表;

    Select 语句中引用了不可更新的视图Where子句中的子查询,引用from子句中的表;视图与表的区别视图是从一个或多个表(或视图)导出的虚拟表。而表有时也称为基本表——base table。即视图所对应的数据不进行实际存储,数据库中只存储视图的的定义,对视图的数据进行操作时,系统根据视图的定义去操作与视图相关的基本表。在information_schema数据库的tables表中有记录。

    Select table_schema,table_name,table_type from tables where table_schema=’xsgl2’; 视图一经定义后,就可以像表一样被查询、修改、删除、更新。

    使用视图有以下优点:

    1、 为用户集中数据,简化用户的数据查询、修改、删除和更新;

    2、 屏蔽数据库的复杂性;

    3、 简化用户的权限管理;

    4、 便于数据共享;

    5、 可以重新组织数据以便输出到其他应用程序中;

    只为更好的服务;服务工作者。
  • 相关阅读:
    【Log】【Log4j】【1】log4j日志的输出级别
    【Word&Excel】【1】更新Word的目录
    【服务器】【Windows】【5】让bat执行完后不关闭
    【Mybatis】【5】Oralce in 语句中当in(1,2,3...) 条件数量大于1000将会报错
    【JS插件】【1】移动端(微信等)使用 vConsole调试console
    【Oracle】【10】去除数据中的html标签
    【其他】【前端安全】【1】XSS攻击
    hdu 4433
    hdu 4435
    hdu 4752
  • 原文地址:https://www.cnblogs.com/pony-mamba/p/13570769.html
Copyright © 2020-2023  润新知