`
xm0ff255
  • 浏览: 15017 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

视图的定义与删除SQL语言

阅读更多
视图的定义与删除SQL语言 2008-11-05 19:23:42 阅读90 评论0   字号:大中小 订阅 .

         

           视图是从一个或者几个基本表(或视图)导出的表。它与基本表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍然存放在原来的基本表中。所以基本表中的数据发生变化,从视图中查询出来的数据也就随之变化。从这个意义上讲,视图就像是一个窗口,透过它能看到数据库中自己感兴趣的数据及其变化。

            视图一经定义,就可以和基本表一样被查询、被删除。也可以在一个视图上再定义新的视图,但是对视图的变更(增、删、改)操作有一定的限制。

一、建立视图(create view)

     使用SQL语言,格式如下:

                        create  view    视图名   【(列名,列名,。。。。)】

                         as   子查询

                        【 with    check    option】  ;

        备注:1、子查询(即select。。。from。。。where。。。)可以是任意复杂的select语句,但是通常不允许

                        含有order by 子句和distinct短语。

                   2、“with check option”表示对视图进行update、insert、delete操作时要保证更新、插入或者删除的

                         行满足视图定义中的谓词条件(即子查询中的条件表达式)。若没有此项要求时,可以不能写、

                        “with check option”语句。

                    3、组成视图的属性列名或者全部省略或者全部指定,不能对其进行部分指定。

                    4、有时可以不写出各列名,但是在下面三种情况下必须明确指定组成视图的所有列名:

                           (1)某个目标列不是单纯的的属性名,而是聚集函数或者列表达式;

                           (2)多表连接时选出了几个同名列作为视图的字段;

                           (3)需要在视图中为某个列启用新的更合适的名字。

                      5、格式中带有“【】”的内容,不是格式的必要组成部分,只要在需要的时候写出即可。

              【例一】建立信息系学生的视图,并要求在修改和插入操作时仍需保证该视图只有信息系的学生。

                 create  view  is-student

                 as

                 select  sno,sname,sage

                 from student

                where sdept='IS'

                whth check option;                      实现在对视图进行修改、插入、删除操作时仍然满足子查询中

                                                                           的条件表达式



概念定义: 行列子集视图:若一个是从单个表导出的,并且只是去掉了基本表的某些行和某些列,但是保留了主码,称这类视图为~

虚拟列:视图中的某些列并不是从基本表中直接查询到数据,而是基本表的数据计算出来的,这些数据并不真实存在在表中。

带表达式的视图:带有虚拟列的视图又称为~

【例二】建立信息系选修了1号课程的学生的视图。

create  view IS-SI (sno ,sname, grade)

as

select student.sno,sname,grade

From student , sc

where sdept='IS'   and  student.sno=cs.sno    and sc.cno=’1’;

备注:由于在这两个表中都涉及到学号sno,所以在select时要明确指出来取的是哪一个sno,所以在sno前面要加上表名student.sno ,以免混淆。

在where条件子句中,要把这个条件加上student.Sno=cs.Sno ,将两个表连接起来。

满足必须要写出视图各列名的第二种情况:多表连接时选出了几个同名列作为视图的字段。

【例三】反应学生出生年份的视图

create   view  BT-S (sno , sname  , sbirth)

as

select  sno, sname , 2008-sage        

from student  ;

备注:视图中的列可以是从基本表中得到的数据经过计算得来的,select语句中可以是一个表达式。

  同时这个情况也满足了视图定义的基本格式中一定要给出视图列名的第一种情况:目标列(即指的是select语句中的列)不是单纯的属性名,而是列表达式。

【例四】将学生的学号以及他的平均成绩定义为一个视图。

create view  S-G (sno , gavg)           满足格式中必须写出视图列名的第一种情况:目标列是一个聚集函数

as

select  sno, AVG(grade)                     目标列是一个聚集函数

from sc

group by sno ;                                  得到的结果按照学号分组,即学号相同的在一起,实现将一个学生的不

                                                             同课程成绩放在一起,然后再写下一个学生的成绩

【例五】将student表中所有女生记录定义为一个视图。

create   view   F-student (F-sno,name,sex,age,dept)

as

select  *                                                                 *表示要建立的视图F-student的属性列与studet表的属性列

                                                                                一一对应,所以可以不必一一列出,*代表全部。

from   student

where ssex='女' ;

 

二、删除视图(drop view)

格式如下:drop  view   视图名  【cascade】

备注:cascade(级联),表示要将该视图和由它导出的所有视图一起删除。如果不加cascade时,则表示如果该视图涉及到了其他视图,则拒绝执行删除。

加了“【】”表示:不是格式的必要组成部分,需要的时候写。

三、对视图进行更新和查询和对基本表的操作相同
分享到:
评论

相关推荐

    Access中的SQL语言.doc

    众多的RDBMS中实现了SQL语言,当然各数据库厂家在各自的RDBMS中的SQL语言与ISO颁布的标准SQL语言都或多或少有些差别。 SQL语言包括了对数据库的所有操作,主要可分为三个部分①数据定义语言(DDL Data Definition ...

    达梦数据库_SQL语言手册

    达梦数据库_SQL语言手册.pdf 数据库快照定义语句 数据库快照删除语句 第章数据查询语句和全文检索语句 单表查询 简单查询 带条件查询 集函数 情况表达式 连接查询 子查询 标量子查询 表子查询 派生表子...

    (第二卷)Microsoft SQL Server 2008技术内幕:T-SQL语言基础

     《Microsoft SQL Server 2008技术内幕:T-SQL语言基础》是Microsoft SQL Server 2008系列中的一本。书中全面深入地介绍了T-SQL的基本元素,以及SQL Server 2008中新增加的一些特性。主要包括SQL的基础理论、逻辑...

    数据库系统原理sql与关系数据库的基本操作.pptx

    SQL与关系数据库基本操作 SQL概述 MySQL预备知识 数据定义 数据更新 数据查询 视图 4.1.3.1 数据定义语言 数据库系统原理sql与关系数据库的基本操作全文共102页,当前为第9页。 4.1 SQL概述 知识点3:SQL的组成...

    达梦数据库_SQL语言手册.xdf

    相当全面的数据库语言:数据定义、查询语句和检索语句、插入修改和删除、视图、嵌入sql、函数、一致性和并发性、存储模块、触发器、DM管理、还原备份等。

    数据库系统概论5版第三章关系数据库标准语言SQL【上】——数据定义(create、drop。。。.pdf

    5、语⾔简洁、易学易⽤,完成核⼼功能只需要9个动词 ⼆、数据定义( ⼆、数据定义(create、 、drop、 、alter) ) SQL 的数据定义功能:模式定义、表定义、视图定义、索引定义 SQL的数据定义语句: SQL标准不提供...

    精通SQL 结构化查询语言详解

    《精通SQ:结构化查询语言详解》全面讲解SQL语言,提供317个典型应用,读者可以随查随用,针对SQL Server和Oracle进行讲解,很有代表性。 全书共包括大小实例317个,突出了速学速查的特色。《精通SQ:结构化查询语言...

    关系数据库标准语言SQL

    SQL的特点 面向集合的操作方式 SQL支持关系数据库三级模式结构 学生-课程 数据库 数据库的定义与删除  基本表的定义、删除与修改 索引的建立与删除 数据类型 修改基本表

    (第一卷)Microsoft.SQL.Server.2008技术内幕:T-SQL语言基础

     《Microsoft SQL Server 2008技术内幕:T-SQL语言基础》是Microsoft SQL Server 2008系列中的一本。书中全面深入地介绍了T-SQL的基本元素,以及SQL Server 2008中新增加的一些特性。主要包括SQL的基础理论、逻辑...

    精通SQL--结构化查询语言详解

    1.5 sql语言基础 11 1.5.1 sql的历史 11 1.5.2 sql语言的组成 12 1.5.3 sql语句的结构 13 .1.5.4 sql的优点 13 1.5.5 sql的执行 14 1.6 sql环境 15 1.6.1 环境 15 1.6.2 sql的层次结构 15 1.6.3 客户程序...

    Oracle实验指导书

    本次实验要了解SQL语言中DDL语言的CREATE、DROP、ALTER对表、索引、视图的操作,掌握在Oracle SQL Developer中用DDL语言对表、索引、视图的增加、删除和改动。掌握使用SQL语句增加或删除约束,加深对完整性概念的...

    数据库系统概论-第三章-关系数据库标准语言SQL.pdf

    3.2 学生 - 课程数据库 3.3 数据定义 3.4 数据查询 3.5 数据更新 3.6 视图 3.7 小结 An Introduction to Database Sy 3.1 SQL 概述 SQL ( Structured Query Language ) 结构化查询语言,是关系数据库的标准语言 ...

    数据库实验(1-4)SQL Server 2012数据库系统

    掌握使用SQL语言创建数据库、表、索引和修改表结构。 2、掌握SQL语言对数据库完整性的支持。 掌握约束、规则、默认的使用方法 掌握参照完整性设置的方法 掌握用企业管理器创建和SQL创建、修改的方法 实验二...

    SQLSserver2008 上

    5、SQL视频-T-SQL语言与SQL语言的区别 ? 6、SQL 2008视频教程-T-SQL语句1 ? 7、SQL 2008视频教程-T-SQL语句2 ? 8、SQL 2008视频教程-T-SQL语句3 ? 9、SQL 2008视频教程-T-SQL语句4 ? 10、T-SQL...

    SQL Server 2000简明培训教程

    第2章 Transact-SQL语言 2.1 数据定义语言(DDL) 2.2 数据操纵语言(DML) 2.3 数据控制语言(DCL) 2.4 系统存储过程 2.5 其它语言元素 第3章 服务器管理 3.1 创建服务器组 3.2 服务器注册 3.3 服务器启动、...

    T-SQL语言指令大全

    T-SQL 的所有指令集结. ALTER TABLE --修改数据库表结构 CREATE VIEW --创建一个视图 DROP VIEW --从数据库中删除视图 CREATE INDEX --为数据库表创建一个索引 DROP INDEX --从数据库中删除索引 CREATE ...

    DM8_SQL语言使用手册.pdf

    第 1 章 结构化查询语言 DM_SQL 简介 ....................................................................1 1.1 DM_SQL 语言的特点 ............................................................................

    SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系型数据库的编程语言 它允许用

    通过DDL(Data Definition Language)语言,SQL可以创建、修改和删除数据库对象,如表、索引、视图等。DML(Data Manipulation Language)则用于执行数据的插入、更新和删除操作。同时,SQL还提供了强大的查询功能,...

    电话计费管理系统【SQLServer数据库+课程设计文档】

    四、数据库操作(SQL语言) 4.1创建电话计费管理系统 4.2创建收费信息表 4.3建立存储过程向表中插入、修改、删除数据 4.4单表查询: 4.5多表查询: 4.6嵌套查询 4.7视图 五、小结 六、参考文献

    数据库 – SQL语言(二)

    文章目录一,SQL语言(一)二,视图(View)1,视图的定义2,SQL查询中使用视图3,视图的更新4,物化视图三,索引(Index)1,索引的定义2,创建唯一索引3,删除索引四,总结 一,SQL语言(一) 传送门:SQL 语言...

Global site tag (gtag.js) - Google Analytics