mysql数据库查询和视图_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、 创建学⽣成绩视图
mysql视图和存储过程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、 可以重新组织数据以便输出到其他应⽤程序中;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。