`
xm0ff255
  • 浏览: 15447 次
  • 性别: 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时,则表示如果该视图涉及到了其他视图,则拒绝执行删除。

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

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

相关推荐

    SQL_Server视图和索引

    这里使用了`WITH ENCRYPTION`选项来加密视图定义,确保视图的定义只能通过系统管理员查看。 ##### 1.3 查询视图 查询视图与查询普通表相似,只需使用视图的名称作为数据源即可。例如: ```sql SELECT 产品编号, ...

    达梦数据库sql语句DM7_SQL语言使用手册.pdf

    达梦数据库DM7_SQL语言使用手册 达梦数据库DM7_SQL语言使用手册是达梦数据库管理系统的SQL语言使用指南,旨在帮助用户快速掌握DM_SQL语言的使用和应用。下面是从该手册中提取的重要知识点: 结构化查询语言DM_SQL...

    关系数据库标准语言—SQL

    2. 支持三级模式结构:SQL语言支持三级模式结构,包括全体基本表构成了数据库的模式、视图和部分基本表构成了数据库的外模式、数据库的存储文件和它们的索引文件构成了关系数据库的内模式。 3. 具有自含式和嵌入式两...

    SQL语言(超全).ppt

    数据定义是SQL语言的核心功能之一,包括创建、删除和修改基本表、视图和索引等。数据定义的操作对象包括基本表、视图和索引等,操作方式包括创建、删除和修改等。数据定义的语句格式包括CREATE TABLE、DROP TABLE、...

    SQL语言共分为四大类

    SQL语言主要分为四大类:数据查询语言(DQL)、数据操纵语言(DML)、数据定义语言(DDL)和数据控制语言(DCL)。下面将对这四大类进行详细解释。 1. 数据查询语言(DQL): DQL主要用于从数据库中检索数据。它的...

    KingbaseES-SQL语言参考手册.pdf

    KingbaseES SQL语言参考手册是针对人大金仓数据库管理系统KingbaseES的一款详细指南,适用于对数据库管理和SQL语言感兴趣的读者。该手册旨在帮助用户理解和掌握如何使用SQL在KingbaseES中执行数据操作。 SQL...

    实验3SQL数据定义语言

    SQL数据定义语言(DDL)主要用于创建和修改数据库结构,包括表、视图、索引和其他数据库对象。以下是对SQL DDL的详细说明: 1. **创建数据库**:在SQL中,使用`CREATE DATABASE`语句来创建一个新的数据库。例如,`...

    达梦SQL语言手册

    保留字是SQL语言中已经定义好特殊意义的字,用户不能用它们作为对象名或者列名等标识符。而标识符则是用户自己定义的数据库对象的名字,用于在SQL语句中引用。 DM7支持的数据类型分为常规数据类型、位串数据类型、...

    SQL语言总结(适用于初学者)

    一、SQL语言的基本概念与特点 SQL语言的发展历史悠久,起始于1974年,由IBM的研究人员首次提出,当时被称为SEQUEL。随后,为了适应不同的数据库系统,SQL语言经历了一系列的标准化过程。1986年,美国国家标准化局...

    MICROSOFT SQL SERVER 2008技术内幕:T-SQL语言基础.pdf

    DDL用于定义和管理数据库对象,包括创建、修改和删除数据库表、视图、索引、存储过程等。典型的DDL语句包括CREATE、ALTER和DROP。 三、数据操作语言(DML) DML用于对数据库中的数据执行操作,如查询、添加、更新和...

    SQL语言在VF查询与视图中的应用.pdf

    本文将探讨SQL语言在Visual FoxPro(简称VF)查询与视图中的应用,这对于SQL初学者和自学人员具有重要的指导意义。 首先,SQL语言的基本概念包括数据定义语言(DDL)、数据操纵语言(DML)和数据控制语言(DCL)。...

    sql 语言 命令 所有数据库通用

    SQL语言的主要功能包括数据查询、数据更新、数据插入、数据删除以及数据库结构的创建和修改等。 1. 数据查询:SQL的SELECT语句是最基础也是最常用的,它用于从数据库中检索数据。你可以通过指定表名、字段名以及...

    sql建立视图的过程

    - **WITH CHECK OPTION**:此选项限制了通过视图进行的更新、插入或删除操作,使其只能返回与原始视图定义相匹配的行。 ### 使用工具辅助视图创建 在实际开发中,除了手动编写SQL语句外,还可以使用各种数据库管理...

    SQL 语言参考大全

    SQL语言的主要组成部分包括数据查询、数据更新、数据插入和数据删除等。以下将对这些关键知识点进行详细讲解: 1. 数据查询:SQL中的SELECT语句是数据查询的基础,可以用于从表中检索特定信息。你可以通过指定字段...

    数据库 SQL语言编程基础

    1. 数据定义语言(DDL):负责创建和管理数据库对象,如CREATE、ALTER和DROP语句用于创建、修改和删除数据库、表、视图、索引和触发器等。 2. 数据操纵语言(DML):用于数据的增删改查,包括SELECT、INSERT、UPDATE和...

    SQL语言基础学习笔记

    SQL语言基础学习笔记 SQL,全称为“结构化查询语言”(Structured Query Language),是数据库管理系统的核心语言,用于管理和操作关系型数据库。SQL的特点包括: 1. **大小写不敏感**:SQL语句在实际执行时,对大...

    SQL语言参考大全

    SQL语言主要包括数据查询、数据插入、数据更新、数据删除四大操作,以及数据创建、数据修改和数据删除等数据库管理功能。例如,`SELECT`语句用于查询数据,`INSERT INTO`用于插入数据,`UPDATE`用于更新数据,而`...

Global site tag (gtag.js) - Google Analytics