好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

2022年数据库语言SQL收集.pdf

14页
  • 卖家[上传人]:M****1
  • 文档编号:567385215
  • 上传时间:2024-07-20
  • 文档格式:PDF
  • 文档大小:515.36KB
  • / 14 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1第五讲关系数据库语言 —SQLⅠSQL概述SQL,即:结构化查询语言Structured Query Language一、SQL 的发展1974年由 Boyce和Chamberlin 提出SQL 1975年~1979年IBM 在System R上实现了 SQL 语言第一个 SQL 标准是 1986年10月由美国国家标准局(American National Standard Institute,简称 ANSI )公布,称 SQL-861987年国际标准化组织(International Standards Organization ,即 ISO )也通过了这一标准1989年, ANSI 公布 SQL-89 1992年, ANSI 公布 SQL-92 当前最新标准是 SQL995. 语言简洁,语法简单,易学易用二、 SQL特点1.综合统一:集DDL 、DML 和DCL 的功能于一体,语言风格统一2. 高度非过程化3. 面向集合的操作方法4. 一种语法结构,两种使用方式:语言既是自含式语言,又是嵌入式语言存储文件 1??????存储文件 k 存储模式基本表 1基本表 2基本表 n??????模式视图 1??????视图 m外模式SQL三、 SQL语言的基本概念SQL 语言使用三种 “ 表” :基本表、查询表、视图表(1)基本表:实际存在的表。

      一个基本表可以附带若干个索引表2)查询表:用于存放查询结果(包括中间结果)的表3)视图表:简称:视图由基本表或者其它视图表“ 导出” 的表临时表,包括结构)(虚表没有独立存在的数据)(实表保存数据、元数据)四、 SQL 语句的类型Data DefinitionLanguageStatementsz用于在数据库中生成对象Data ControlLanguageStatementsz用于设置谁能看到和更改数据Data ManipulationLanguageStatementsz用于查询或更改数据DDLzCREATE 创建zALTER 更改zDROP 删除名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 14 页 - - - - - - - - - 2DCLzGRANT 允许某用户访问数据后运行语句zDENY禁止某安全帐号访问许可并阻止某用户、用户组或角色继承权限zREVOKE删除一个以前授予或拒绝的许可DMLzSELECT 查询zINSERT 插入zUPDATE 更新zDELETE 删除Ⅱ 数据定义定义定义目的对象创建删除修改表CREATETABLE DROPTABLEALTER TABLE视图 CREATE VIEW DROP VIEW 索引 CREATE INDEX DROP INDEX一、 SQL Server数据库的数据存储结构Extent (8 contiguous 8-KB pages)Page (8 KB)Tables, IndexesDataDatabaseData (file).mdfor .ndfLog (file).ldfMax row size = 8092 bytesSQL Server的数据库由两种文件组成:z数据文件:用于存放数据库数据z日志文件:用于存放对数据库数据的操作记录。

      SQL Server的每个数据库都包括一个主数据文件与一个或多个日志文件,此外,还可以包括辅助数据文件每个文件都有两个名字:操作系统文件名和逻辑文件名(在 SQL Server中使用的、用在 Transact-SQL语句中的名字)数据文件和日志文件的默认存放位置为: C:\Program Files\Microsoft SQL Server\MSSQL\Data文件夹数据文件又包括:主数据文件和辅助数据文件主数据文件的扩展名是.mdf,每个数据库只能包含一个主数据文件辅助数据文件的扩展名是 .ndf 辅助数据文件可以同主数据文件存放在相同的位置,也可以存放在不同的地方日志文件记录数据存储页的分配和释放以及对数据库数据的修改操作日志文件的扩展名为.ldf ,它包含用于恢复数据库的日志信息每个数据库必须至少有一个日志文件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 14 页 - - - - - - - - - 3数据库文件的属性在定义数据库的数据文件和日志文件时,可以指定如下属性:?文件名及其位置。

      每个数据库的数据文件和日志文件都具有一个逻辑名称以及文件的物理存放位置文件大小可以指定每个数据文件和日志文件的大小,以 MB 为单位增长方式如果需要的话,可以指定文件是否自动增长,该选项的默认配置为自动增长?最大大小指定文件增长的最大大小默认是大小无限制二、创建数据库1.使用企业管理器创建数据库2.使用 Transact-SQL语句创建语句1.使用企业管理器创建数据库使用企业管理器创建数据库的步骤如下:(1) 如果SQL Server服务还没有启动,应先启动SQL Server服务,然后启动企业管理器2) 在控制台上依次单击“ Microsoft SQL Servers ”和“SQL Server组”左边的加号,然后单击要创建数据库的服务器左边的加号图标,展开树形目录3)右击“数据库”,然后单击“新建数据库”命令在“名称”文本框中输入数据库名单击“ 数据文件 ” 选项卡 (P126)在“文件名”列表框中输入主数据文件的名称和辅助数据文件的名称若要更改数据文件的存储位置,单击“位置”列表框上的按钮在“ 初始大小 ” 项上输入希望的大小如果希望数据库文件的容量能根据实际数据的需要自动增加,可选中“ 文件属性 ” 部分的 “ 文件自动增长 ” 复选框。

      事务日志 ” 选项卡( P128)对日志文件进行设置单击 “ 确定” 按钮,关闭数据库属性设置对话框数据库创建完毕名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 14 页 - - - - - - - - - 42.使用 Transact-SQL语句创建语句创建数据库z数据库的名字z数据库驻留在哪个文件中z数据库的大小z数据库的最大大小z增长的方式CREATE DATABASE 语句SQL 语句不区分大小写CREATE DATABASE MyTestONPRIMARY ( NAME = MyTestData,FILENAME = 'd:\Program Files\Microsoft SQL Server\Mssql\Data\MyTest.mdf',SIZE = 1MB,MAXSIZE = 3 MB,FILEGROWTH = 20% )LOG ON( NAME = MyTestLog,FILENAME = 'd:\Program Files\Microsoft SQL Server\Mssql\Data\MyTest.ldf',SIZE = 1MB,MAXSIZE = 3 MB,FILEGROWTH = 1 )三、删除数据库删除一个数据库,也就删除了该数据库的全部对象,从而将其所占的磁盘空间全部释放掉。

      1.使用企业管理器删除数据库2.使用Transact-SQL语句删除数据库1.使用企业管理器删除数据库在企业管理器中删除数据库的步骤如下:(1)启动企业管理器,并在“控制台”目录下单击“数据库”节点2)选中要删除的数据库,然后选择如下操作之一:从“操作”菜单中选择“删除”命令在工具栏上单击“删除”按钮右击待删除的数据库,在弹出式菜单中选择“删除”命令2.使用 Transact-SQL语句删除数据库DROP DATABASE语句的语法格式为:DROP DATABASE 数据库名[ , ⋯n ]注意被删除的数据库不能是当前正在使用的数据库被删除的数据库不能再恢复注意备份使用数据库删除语句可以一次删除多个数据库例:用DROP DATABASE语句删除 Test1和Test2数据库:DROP DATABASE Test1, Test2四、修改数据库修改数据库的结构如增加或删除数据库文件等1. 用“企业管理器”修改2. Transact-SQL语句:ALTER DATABASE名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 14 页 - - - - - - - - - 51.使用企业管理器扩大数据库空间的步骤为:(1)启动企业管理器,在“控制台”目录中展开“数据库”。

      2)选中要设置或要修改的数据库,选择下列操作之一:从“操作”菜单上选“属性”命令在工具栏上单击“属性”按钮在选中的数据库上单击鼠标右键,选“属性”3)在弹出的对话框中选择“数据文件”标签4)在对话框中可以实现扩大已有文件和添加新文件的操作5)全部完成后,单击“确定”关闭此对话框,保存所做的修改2. Transact-SQL语句:ALTER DATABASE学习查看帮助!1.创建基本表五、 创建、删除与修改基本表CREATE TABLE〈表名〉(〈列名〉〈数据类型〉 [ 列完整性约束]〈列名〉〈数据类型〉 [ 列完整性约束][ ,〈表完整性约束〉][ ,] ···)CREATE TABLEStudentPRIMARY KEY(Sno))Sdept CHAR (15),Sage INT DEFAULT18 ,Sname CHAR (20) NOT NULLUNIQUE ,SsexCHAR (2),( SnoCHAR (5),例 创建一个表名 Student 的基本表属性包括:Sno(学号;主码 ),Sname,Ssex,Sage,Sdept(学生所在系)DATETIME日期时间型,八个字节例 ‘ 6/15/2002 8:30:50:200’2. SQL 数据类型( Ms SQL Server 2000)?INTEGER (或 INT )四个字节整数?DECIMAL(p [ ,q] ) 或NUMERIC(p [ ,q])十进制数共 P位,小数点后占 q位。

      5 ~ 17字节q ≤ p, 1≤ P≤38当q =0时, q可省略 REAL / FLOAT 实数?VARCHAR (n)变长字符串?CHARACTER(n)或 CHAR (n)字符串3. 修改基本表 ----- 修改表结构(Ms SQL SERVER)例 在表 Student中增加一列 Scome(“ 入学时间 ”)ALTER TABLE〈表名〉ALTERTABLEStudent ADD COLUMNScomeDATETIME{ [ ALTER COLUMN〈列名〉 {〈新数据类型〉 } ]?[ ADD COLUMN{〈新列名〉〈数据类型〉[ 列完整性约束] }[ , ...n]?[ DROP COLUMN〈列名〉 [, ...n] ] }名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 14 页 - - - - - - - - - 64. 删除基本表语句格式: DROP TABLE 〈表名〉例DROP TABLE Student(2)增加数据更新操作的系统开销。

      六、创建和删除索引1. 关于数据库索引(1)能够加快给定属性值的查询响应2. 创建数据库索引CREATE[ UNIQUE ] [ CLUSTER ]INDEX 〈索引名〉 ON 〈表名〉( 〈列名〉[ ASC?DESC] [ ,〈列名〉[ ASC?DESC] ] ...)例1 CREATE CLUSTERINDEX IndSnameON Student (Sname)例2 CREATE UNIQUEINDEX StuSnoSnameON Student (SnameASC,Sno DESC )3. 删除索引DROP INDEX 〈索引名〉例 DROP INDEX IndSnameⅢ 查询FROM 〈表名或视图名〉[ ,〈表名或视图名〉]···一、查询语句格式SELECT[ ALL ?DISTINCT ]〈目标列表达式〉 [ ,〈目标列表达式〉]···[ WHERE 〈条件表达式〉][ GROUP BY 〈列名 1〉[ HAVING 〈条件表达式〉 ] ][ ORDER BY 〈列名 2〉[ ASC ? DESC][ ,〈列名 3〉[ ASC ? DESC] ]···]下面的例子经常涉及如下三个表:1. Student(Sno,Sname,Ssex,Sage ,Sdept)2. Course(Cno,Cname, Cdate,Cpno,Ccredit )3. SC(Sno,Cno,Grade )其中, Grade 是考试成绩 (INT 类型)。

      其中, Cdate是开课日期( DATETIME类型) ,Cpno是“ 先修课号 ” ;Ccredit 是“ 学分 ” 二、单表查询 ---查询操作只涉及一个表例 1 查所有学生的所有属性值SELECT *FROM Student例 2 查找学生姓名,出生年份,所在系 ---使用查询结果表达式!SELECT Sname, ’Year of Birth’, 2007 - Sage, SdeptFrom StudentSname(无列名 ) (无列名 )Sdept张三Year of Birth1976 cs李四Year of Birth1977 ma名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 14 页 - - - - - - - - - 7Sno 0001001 0001002 0001003······例3 查所有选过课的学生(每个学生只允许出现一次----- “自动”消去重复的元组!)。

      SELECT DISTINCTSnoFROM SC设:原始数据如下:Sno Cno Grade 0001001 1 90 0001001 2 840001002 1 910001003 2 86 ·········例4 查找计算机系、年龄不大于19岁的学生学号 ,姓名,出生年份SELECT Sno , Sname, 2007 - SageFROM StudentWHERE (Sage <=19)AND (Sdept =‘ CS ’ )例5 找出2001年8月31日以后开课的课程号(使用日期型数据类型)SELECT CnoFROM CourseWHERE Cdate> ‘8/31/2001 ’例6 找出年龄介于 19和22 的学生学号 ,姓名 ,出生年份SELECT Sno , Sname, 2007 - SageFROM StudentWHERE Sage BETWEEN19 AND 22SELECT Sno ,SnameFROM Student例8 找出姓名的第二个字是“ 庆” 的学生学号,姓名下划线。

      每个汉字对应一个“ _” 例7 (字符串匹配)找 010710班所有同学的学号,姓名SELECT Sno , SnameFROM StudentWHERE Sno LIKE ‘010710% ’WHERE SnameLIKE ‘_庆% ’名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 14 页 - - - - - - - - - 8例9 (“ 空” 值查询)找选了课,但至今没有考试成绩的学生学号,课号FROM SCSELECT Sno, CnoWHERE Grade IS NULL注:创建 SC表时,Grade定义了属性取值约束 : NULL使用聚集函数计算诸如平均值和总和的函数称为聚集函数执行聚集函数时,将对整个表或表里的某个组中的字段进行汇总、计算,然后为它生成相应字段的单个值例10(使用聚集函数)查 01071001同学的考试总分FROM SCWHERE Sno = ‘01071001’例11 查询并统计选过课的学生人数FROM SCSELECT DISTINCTSnoCOUNT ()SELECT Sno, SUM(Grade)注意:计算Sno的个数!SELECT Cno , COUNT (Sno)FROM SC例12 查询各门课程号与相应的选课人数。

      实例Cno Sno Grade1 0001001 ⋯1 0001002 ⋯2 0001001 ⋯2 0001003⋯4 0001002 ⋯Cno COUNT (Sno)4 1 2 21 2GROUP BY Cno ORDER BY Cno DESC对结果按 Cno排序按Cno值分组,有相同 Cno值的为一个组每组输出一行名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 14 页 - - - - - - - - - 9SELECT Sno FROM SC GROUP BY Sno例13 查选修了 3门以上课程的学生学号(使用HAVING 子句)HAVING COUNT( * ) > 3注:这里 HAVING作用于由 GROUP 划分了的那些组。

      SELECT MAX(Grade)FROM SCWHERE (Sno LIKE ‘01% ’)AND (Cno = ‘1’)例14 查学生 “01071002”的平均考分SELECT AVG(Grade)FROM SCWHERE Sno = ‘01071002’例15 查01级、 1号课程的考试最高分注:聚集函数不能用于WHERE 子句的条件表达式三、 多表查询与连接查询(以SQL2为背景)1. 多表查询的一般方法Student(SnoSnameSsexSage Sdept)99001 张三男20 CS99002 李四女19IS99003 王五女18 MA99004 赵六男19 IS例1 设: Student 表和 SC表有如下一些元组找出学生基本情况和考试成绩SC(SnoCnoGrade)99001 1 9299001 2 8599001 3 8799002 2 9099002 3 80WHEREStudent .Sno = SC.SnoStudent .Sno SnameSdept Grade 99001 张三CS 92 99001 张三CS 85 99001 张三CS 87 99002 李四IS 90 99002 李四IS 80 思考:语句执行过程?SELECT Student .Sno,Sname,Sdept,GradeFROM Student ,SC例 2 查找张三同学各科考试成绩(要求给出课程名)。

      FROM Course , SCSELECT Cname, GradeWHERE SC.Cno= Course.CnoAND Student.Sno= SC.Sno, StudentAND Sname = ‘张三’2. 连接表达式及其应用(以SQL2为背景)连接表达式的一般形式:FROM join_table1 join_typejoin_table2 [ON〈连接条件表达式〉]其中, join_type 可以是:(1)自然连接: NATURAL JOIN例3 找出学生基本情况和考试成绩(与例1相同)SELECT Student .Sno,Sname,Sdept,GradeFROM Student NATURAL JOINSC名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 14 页 - - - - - - - - - 10注:连接表达式经常用于SELECT 语句的 FROM 子句。

      3)笛卡尔积: CROSS JOIN (不能加 ON子句)(2)内连接: JOIN (应加上 ON子句)(4)外连接(略):全外连接: NATURAL FULLOUTER JOIN左外连接: NATURAL LEFTOUTER JOIN右外连接: NATURAL RIGHTOUTER JOIN例4 列出单科成绩不少于80分的学生学号、姓名、课程号、考试成绩SELECT Student .Sno,Sname,Cno,GradeFROM Student NATURAL JOINSC WHERE NOT ( Grade < 80 )例5 (左外连接 )找出学生基本情况和选课情况如果一个学生没有选课,就只输出学生基本情况SELECT Student .Sno,Sname,Sdept,Cno,GradeFROM Student NATURAL LEFT OUTER JOINSC ON Student.Sno =SC.SnoStudent .Sno SnameSdept Cno Grade 99001 张三CS 1 92 99001 张三CS 2 85 99001 张三CS 3 87 99002 李四IS 2 90 99002 李四IS 3 8099003 王五MA NULL NULL99004 赵六ISNULL NULL例 设:Course 表中数据如下:Cno CnameCdateCpnoCcredit1 数学2000/09/01 2 2 数据结构2000/09/01 1 33 数据库2000/09/01 2 33. 自身连接查询要求:找出每一门课的先修课的先修课。

      FIRST 表( Course)Cno CnameCpno1 数学2 数据结构1 3 数据库2Cno Cpno2 3 1SECOND 表( Course)CnoCnameCpno1 数学2 数据结构1 3 数据库2名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 14 页 - - - - - - - - - 11FROM Course ASFIRSTCourse ASSECOND其中: FIRST ,SECOND 称为表 Course 的别名 .SELECT FIRST .Cno , SECOND .CpnoJOINON FIRST .Cpno = SECOND .Cno如果有一个查询语句,它把一个查询块嵌套在另一个查询块的 WHERE 子句, 或嵌套在 GROUP BY子句的 HAVING 短语中,这样的查询语句称为嵌套查询语句。

      四、嵌套查询在SQL语言中,一个 SELECT-FROM-WHERE 语句称为一个查询块WHERESdept IN ()SELECT Sdept FROM StudentWHERE Sname= ‘ 李四 ’父查询例1 (带IN 谓词的子查询)查找与“ 李四 ” 在同一个系的学生学号、姓名、系SELECT Sno ,Sname,Sdept FROM Student子查询特别注意:不能随便用“=”代替“IN”否则可能会出现运行错误( RUN TIME ERROR)注意:子查询不能使用ORDER BY子句例2 查询选择了课程号为3的学生学号与姓名SELECT Sno , SnameFROM StudentSELECT Sno FROM SC WHERE Cno IN(‘3’)WHERE Sno IN ()注:本例可以用 “=”代替 “IN”WHERE Sage < ANY ()AND Sdept 〈〉‘IS’ORDER BYSage DESC例3(带 ANY 或ALL 谓词的子查询)找出比IS系至少一名学生年龄小的其他系学生名单。

      SELECT Sname ,Sage,SdeptFROM StudentSELECT distinct SageFROM StudentWHERE Sdept=‘IS’WHERE ( Sage < ALL ())AND ( Sdept〈〉‘IS’)ORDER BY Sage DESC例4 查询比 IS系所有学生年龄都小的其他各系学生姓名, 年龄,系名SELECT Sage FROM Student WHERE Sdept=‘IS’SELECT Sname ,Sage ,Sdept FROM Student名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 14 页 - - - - - - - - - 12SELECT SnameFROM Student例 5 (带 EXISTS 谓词的子查询 ——— 相关查询)找出选修了 1号课程的所有学生姓名WHERE EXISTS ( SELECT * FROM SCWHERE Cno =‘1’AND SC.Sno = Student .Sno )注: EXISTS 条件表达式根据子查询的执行结果,返回布尔值true 或false相关!相关!五、集合查询:集合查询就是对几个查询块的结果集进行并、交、差运算。

      例1 查找选修了课程 1或课程 2的学生学号和姓名 SELECT SC.Sno, SnameFROM SC, StudentWHERE (Cno= ‘2’) AND (SC.Sno =Student.Sno) )( SELECT SC.Sno, SnameFROM SC, StudentWHERE (Cno= ‘1’) AND (SC.Sno =Student.Sno) )UNIONAND Sno IN (SELECT SnoFROM SCWHERE Cno =‘2’)例2 查找既选修课程 1,又选修课程 2的学生集合这实际上是查找选修了课程1学生,与选修了课程 2 的学生的交集SELECT SnoFROM SCWHERE Cno =‘1’AND Sno NOT IN ()例3 查找选修了课程 1,但不选修课程 2的学生这实际上是查找选修课程1的学生,与选修课程2的学生的差集:SELECT SnoFROM SC WHERE Cno=‘1’SELECT SnoFROM SC WHERE Cno =‘2’Ⅳ 数据更新〈表名〉 [ (〈属性列 1〉[ ,〈属性列 2〉] ⋯) ]一、 插入数据 ---在表中增加元组数据INSERT INTOVALUES (〈常量 1〉[ ,〈常量 2〉] ⋯)例1 插入一个学生新记录INSERT INTOStudent(Sno,Sname,Ssex,Sage ,Sdept)VALUES (‘99005’,‘ 周全 ’ ,‘ 男 ’ ,19,‘IS’)[ WHERE 〈条件〉]UPDATE 〈表名〉SET〈列名〉 =〈表达式〉[ ,〈列名〉 =〈表达式〉 ] ⋯二、修改数据 ----更改属性取值例1 把学生 99001的年龄改为 21岁UPDATE StudentSET Sage = 21WHERE Sno = ‘99001’名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 14 页 - - - - - - - - - 13例2(修改多个元组)把所有学生的年龄增加1岁UPDATE StudentSET Sage = Sage + 1例3 把‘ IS’ 系学生原来选修的‘1’课程改为‘ 2’UPDATESCSET Cno = ‘2’WHERE Sno IN ( SELECT Sno FROM Student WHERE Sdept = ‘IS’)AND Cno = ‘1’例1 删去学号为 ‘99006’的学生记录注意:这是 SQL2的DELETE语句格式。

      三、删除数据 -----删去表的元组数据DELETE FROM〈表名〉[WHERE 〈条件〉]DELETE FROM StudentWHERE Sno = ‘99006’例2 删去多个元组DELETE FROM SCWHERE Grade IS NULL2.对重构数据库提供了一定程度的逻辑独立性Ⅴ 视图(重申:视图表是“虚表”)1.简化用户的操作,为用户聚焦了数据一、视图的作用二、创建视图3.对机密数据提供安全保护,简化用户权限管理CREATE VIEW〈视图名〉[ (〈列名〉 [ ,〈列名〉]⋯)]AS 〈查询子句〉4.隐蔽数据的复杂性例1 把计算机系学生数据建成一个视图CREATE VIEW CS-Student (Sno,Sname,Sage)ASSELECT Sno ,Sname, Sage FROM StudentWHERE Sdept=‘CS ’注:本例中,括号和属性名可省略查询子句AS SELECT Student . Sno, Sname,AVG(Grade)FROM Student , SC WHERE Sdept =‘CS ’AND Student . Sno = SC. SnoGROUP BY Student .Sno例2 创建计算机系学生选修课平均分的视图。

      CREATE VIEW CS-C1(Sno,Sname,AVGgrade )不能省略三、删除视图DROP VIEW〈 视图名〉例删去视图 CS-C1DROP VIEW CS-C1名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 14 页 - - - - - - - - - 14转换四、 查询视图例从CS-Student 查年龄不大于 20 的学生SELECT Sno, Sname, SageFROM CS-StudentWHERE Sage <= 20AND (Sdept = ‘CS ’)AS SELECT Sno ,Sname,SageFROM Student WHERE Sdept = ‘CS ’创建视图的子查询CREATE VIEW CS-Student(Sno,Sname,Sage)SELECT Sno ,Sname,SageFROM StudentWHERE (Sage <= 20)五、视图的更新视图可以更新,但往往受到一定限制。

      有些视图是不可以更新或不允许更新的例如,在子查询中引用库函数的视图就是不可更新的前面的例子定义的视图CS-C1,就不能使用UPDATE 、INSERT 语句,对它进行更新操作掌握:视图定义和查询,视图优点熟练掌握: SQL特点基本表、查询表和视图表的特点与区别; SQL中的数据类型;表创建、修改和删除;索引的创建和删除;SQL查询语句结构;空值概念;聚集函数(sum, count, avg, max, min );连接查询(外连接略去);嵌套查询;集合查询(并);数据更新(INSERT 、UPDATE 和 DELETE (标准格式));能够用 SQL语句表达基本表的创建、查询、更新,以及视图的创建与查询了解:建库企业管理器和查询分析器名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 14 页 - - - - - - - - - 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.