收藏 分销(赏)

第五章 sql语言.ppt

上传人:pc****0 文档编号:13361774 上传时间:2026-03-07 格式:PPT 页数:45 大小:210.50KB 下载积分:10 金币
下载 相关 举报
第五章 sql语言.ppt_第1页
第1页 / 共45页
第五章 sql语言.ppt_第2页
第2页 / 共45页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第五章,SQL,语言,学习目的与要求:,SQL,语言是关系数据库的标准语言,是本课程的一个重点。本章总的要求是:全面掌握,深刻理解。熟练应用。,要求掌握的技能是:,SQL,定义语句、嵌入式,SQL,语句的应用。,要求熟练掌握的技能是,:SQL,查询语句、视图、,SQL,更新语句的应用。,方法:多做题,多上机实践。,考核知识点与考试要求,5.1SQL,简介,(识记),5.2SQL,的数据定义,(综合应用),5.3SQL,的数据查询,5.3.1SELECT,查询语句的基本结构,连接、嵌套、存在量词 的三种查询方式,(综合应用),5.3.2SELECT,语句完整的结构,分组子句、排序子句的用法,(,综合应用,),5.3.3,数据查询中的限制和规定,(,简单应用,),5.3.4,条件表达式中的比较操作,(,简单应用,),5.3.5,嵌套查询的改进写法,(,领会,),5.3.6,基本表的连接操作,(,综合应用,),5.4,SQL,的数据更新,(综合应用,),5.5,视图,(简单应用),5.6嵌入式,SQL,(,领会),5.7存储过程,SQL/PSM,(,识记),5.1,SQL,简介,1.SQL,发展历程,SQL,从,1970,年美国,IBM,研究中心的,E.F.Codd,发表论文到,1974,年,Boyce,和,Chamberlin,把,SQUARE,语言改为,SEQUEL,语言,到现在还在不断完善和发展之中,,SQL(,结构式查询语言,),虽然名为查询,但实际上具有定义、查询、更新和控制等多种功能。,2.SQL,数据库的体系结构,SQL,数据库的体系结构也是三级结构,但术语与传统关系模型术语不同,在,SQL,中,关系模式称为,基本表,,存储模式称为,存储文件,,子模式称为,视图,,元组称,行,,属性称,列,。,SQL,数据库体系的结构要点如下:,(1),一个,SQL,数据库是表的汇集。,(2),一个,SQL,表由行集构成,行是列的序列,每列对应一个数据项。,(3),表或者是基本表,或者是视图。基本表是实际存储在数据库中的表,视图由是由若干基本表或其他视图构成的表的定义。,(4),一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。存储文件与物理文件对应。,(5),用户可以用,SQL,语句对表进行操作,包括视图和基本表。,(6)SQL,的用户可以是应用程序,也可以是终端用户。,3.SQL,的组成,SQL,由四部分组成:,(1),数据定义:,SQL DDL,。定义,SQL,模式,基本表、视图和索引。,(2),数据操纵:,SQL DML,。包括数据查询和数据更新,(,增、删、改,),。,(3),数据控制:包括对基本表和视图的授权、完整性规则的描述,事务控制等。,(4),嵌入式,SQL,的使用规定。,4.SQL,的特点,(,1,),SQL,具有十分灵活和强大的查询功能。,(,2,),SQL,不是一个应用开发语言,它只提供对数据库的操作功能,不能完成屏幕控制、菜单管理、报表生成等功能。,(,3,),SQL,是国际性标准语言,有利于各种数据库之间交换数据,有利于程序的移植,有利于实现高度的数据独立性,有利于实现标准化。,(,4,),SQL,的词汇不多,完成核心功能只用了,9,个英语动词,它的语法结构接近英语,因此容易学习和使用。,5.2,SQL,的数据定义,1.SQL,模式的创建和撤消:,SQL,模式的创建可简单理解为建立一个数据库,定义一个存储空间,其句法是:,CREATE SCHEMA AUTHORIZATION,撤消,SQL,模式的句法为:,DROP SCHEMA CASCADE|RESTRICT,方括号中的选项参数,CASCADE,表示连锁方式,执行时将模式下所有基本表、视图、索引等元素全部撤消。,RESTRICT,表示约束式,执行时必须在,SQL,模式中没有任何下属元素时方可撤消模式。,2.SQL,提供的基本数据类型,数值型:包括,integer,、,smallint,、,real,、,double precision,、,float(n),numeric(p,,,d),字符串型:,char(n,),、,varchar(n,),,前者是定长,后者为变长串,位串型:,bit(n),bit,varying(n,),,同上。,时间型:,date,、,time,。,3.,基本表的创建、修改和撤消,基本表的创建:,(,可理解为建立表结构,),CREAT TABLE SQL,模式名,.,基本表名,(,列名,类型,,完整性约束,.),完整性约束包括主键子句,(PRIMARY KEY),、检查子句,(CHECK),和外键子句,(FOREIGN KEY),。,基本表结构的修改,ALTER TABLE,基本表名,ADD/DROP(,增加,/,删除,),列名 类型名,(,增加时写出,),删除时有子句,CASCADE|RESTRICT,,前者为连锁删除,后者为约束删除,即没有对本列的任何引用时才能删除。,基本表的撤消,DROP TABLE,基本表名,CASCADE|RESTRICT,4.,索引的创建和撤消,创建:,CREATE UNIQUE INDEX,索引名,ON,基本表名,(,列名表,ASC|DESC),撤消:,DROP INDEX,索引名,总结:凡创建都用,CREATE,删除都用,DROP,改变用,ALTER,再跟类型和名字,附加子句很容易了。,5.3,SQL,的数据查询,1.SELECT-FROM-WHERE,句型,SELECT,列名表,(,逗号隔开,)FROM,基本表或视图序列,WHERE,条件表达式,在这里,重点要掌握条件表达式中各种运算符的应用,如,=,,,等算术比较运算符、逻辑运算符,AND,、,OR,、,NOT,、集合成员资格运算符:,IN,,,NOT IN,,以及嵌套的,SELECT,语句的用法要特别注意理解。,针对课本的例题和课后习题进行掌握。,在查询时,,SELECT,语句可以有多种写法,如联接查询、嵌套查询和使用存在量词的嵌套查询等。最好都掌握,但是起码应能写出一种正确的查询语句。,2.SELECT,语句完整的句法:,SELECT,列名表,(,逗号隔开,),FROM,基本表或视图序列,WHERE,条件表达式,(,此为和条件子句,),GROUP BY,列名序列,(,分组子句,),HAVING,组条件表达式,(,组条件子句,),ORDER BY,列名,ASC|DESC.(,排序子句,),这段关于完整句法的内容能够理解也就问题不大了。,3.SELECT,语句中的限定,这一段内容主要是对,SELECT,语句进一步使用进行的深入学习,领会下列各种限定的使用目的和方法。,要求输出表格中不出现重复元组,则在,SELECT,后加一,DISTINCT,SELECT,子句中允许出现加减乘除及列名,常数的算术表达式,WHERE,子句中可以用,BETWEEN.AND.,来限定一个值的范围,同一个基本表在,SELECT,语句中多次引用时可用,AS,来增加别名,WHERE,子句中字符串匹配用,LIKE,和两个通配符,,%,和下划线,_.,查询结果的结构完全一致时可将两个查询进行并,(UNION),交,(INTERSECT),差,(EXCPT),操作,查询空值操作不是用,=null,而是用,IS NULL,来测试。,集合成员资格比较用,IN/NOT IN,,集合成员算术比较用元组,SOME,/ALL,可以用子查询结果取名,(,表名,(,列名序列,),来作为导出表使用,基本表的自然联接操作是用,NATURAL INNER JOIN,来实现的。,5.4,SQL,的数据更新,1.,数据插入:,INSERT INTO,基本表名,(,列名表,),VALUES(,元组值,),或,INSERT INTO,基本表名,(,列名表,),SELECT,查询语句,其中元组值可以连续插入。用查询语句可以按要求插入所需数据。,2,.,数据删除:,DELETE FROM,基本表名,WHERE,条件表达式,3,.,数据修改,:,UPDATE,基本表名,SET,列名,=,值表达式,列名,=,值表达式,.,WHERE,条件表达式,5.5,视图,1.,视图的创建和撤消,创建:,CREATE VIEW,视图名,(,列名表,)AS SELECT,查询语句,撤消:,DROP VIEW,视图名,2.,视图的操作,查询与关系中一致,更新与关系不同,如果视图是从多个使用联接操作导出的,不允许对此视图更新,如果在导出视图的过程中,使用了分组和聚合函数,不允许对此视图更新。,如果视图是从单个关系使用选择、投影操作导出的,并且包含了关系的主健或某个候选健,称此视图为,“,行列子集视图,”,,允许对此视图更新。,CREATE VIEW S_MAIL,AS SELECT S#,SNAME,AGE,FROM S,WHERE SEX=,M,INSERT INTO S_MALE,VALUES(,S28,WU,18),与,INSERT INTO S,VALUES(,S28,WU,18,M,),相同,3.,视图的优点,使用视图的优点:,视图提供了逻辑数据的独立性,简化了用户观点,用户只需关心视图的内容,而不必关心构成视图的若干关系的联结、投影操作。,能够将对数据库的访问限制在一定范围内,有利于数据安全保护功能。,可针对不同的用户定义不同的视图,在视图种只出现用户需要的数据,系统提供视图让用户使用。,5.6,嵌入式,SQL,1.SQL,语言提供了两种不同的使用方式:,交互式,嵌入式,为什么要引入嵌入式,SQL,SQL,语言是非过程性语言,事务处理应用需要高级语言,这两种方式细节上有差别,在程序设计的环境下,,SQL,语句要做某些必要的扩充。,2.,嵌入式,SQL,的一般形式,为了区分,SQL,语句与主语言语句,需要,:,前缀:,EXEC SQL,结束标志:随主语言的不同而不同,以,C,为主语言的嵌入式,SQL,语句的一般形式,EXEC SQL,;,例:,EXEC SQL DROP TABLE Student,;,以,COBOL,作为主语言的嵌入式,SQL,语句的一般形式,EXEC SQL,END-EXEC,例:,EXEC SQL DROP TABLE Student END-EXEC,3.DBMS,处理宿主型数据库语言,SQL,的方法,预编译,修改和扩充主语言使之能处理,SQL,语句。,4.,嵌入式,SQL,语句与主语言之间的通信,将,SQL,嵌入到高级语言中混合编程,程序中会含,有两种不同计算模型的语句,SQL,语句,描述性的面向集合的语句,负责操纵数据库,高级语言语句,过程性的面向记录的语句,负责控制程序流程,5.,工作单元之间的通信方式,),SQL,通信区,向主语言传递,SQL,语句的执行状态信息,主语言能够据此控制程序流程,)共享变量,主语言向,SQL,语句提供参数,将,SQL,语句查询数据库的结果交主语言进一步处理,)游标,解决集合性操作语言与过程性操作语言的不匹配,6.共享变量,什么是共享变量,嵌入式,SQL,语句中可以使用主语言的程序变量来输入或输出数据,在,SQL,语句中使用的主语言程序变量简称为共享变量(,Host Variable,),在,SQL,语句中使用共享变量和指示变量的方法,1,)说明共享变量和指示变量,BEGIN DECLARE SECTION,.,.(,说明共享变量和指示变量,),.,END DECLARE SECTION,7.,游标(,cursor,),为什么要使用游标,SQL,语言与主语言具有不同数据处理方式,SQL,语言是面向集合的,一条,SQL,语句原则上可以产生或处理多条记录。,什么是游标,游标是系统为用户开设的一个数据缓冲区,存放,SQL,语句的执行结果。,每个游标区都有一个名字。,用户可以用,SQL,语句逐一从游标中获取记录,并赋给共享变量,交由主语言进一步处理。,1),说明游标,使用,DECLARE,语句,语句格式,EXEC SQL DECLARE CURSOR,FOR;,功能,是一条说明性语句,这时,DBMS,并不执行,SELECT,指定的查询操作。,2),打开游标,使用,OPEN,语句,语句格式,EXEC SQL OPEN;,功能,打开游标实际上是执行相应的,SELECT,语句,把所有满足查询条件的记录从指定表取到缓冲区中。,这时游标处于活动状态,指针指向查询结果集中第一条记录之前。,3),移动游标指针,然后取当前记录,使用,FETCH,语句,语句格式,EXEC SQL FETCH NEXT|PRIOR|,FIRST|LAST FROM,INTO,.;,功能,指定方向推动游标指针,然后将缓冲区中的当前记录取出来送至共享变量供主语言进一步处理。,NEXT|PRIOR|FIRST|LAST,:指定推动游标指针的方式。,NEXT,:向前推进一条记录,PRIOR,:向回退一条记录,FIRST,:推向第一条记录,LAST,:推向最后一条记录,缺省值为,NEXT,说明:,(1),共享变量必须与,SELECT,语句中的目标列表达式具有一一对应关系。,(2)FETCH,语句通常用在一个循环结构中,通过循环执行,FETCH,语句逐条取出结果集中的行进行处理。,(3),为进一步方便用户处理数据,现在一些关系数据库管理系统对,FETCH,语句做了扩充,允许用户向任意方向以任意步长移动游标指针。,4),关闭游标,使用,CLOSE,语句,语句格式,EXEC SQL CLOSE;,功能,关闭游标,释放结果集占用的缓冲区及其他资源。,说明,游标被关闭后,就不再和原来的查询结果集相联系。,被关闭的游标可以再次被打开,与新的查询结果相联系。,9,.,动态,SQL,1),什么是动态嵌入式,SQL,动态,SQL,方法允许在程序运行过程中临时,“,组装,”,SQL,语句。,2),应用范围,在,预编译,时下列信息不能确定时,SQL,语句正文,共享变量个数,共享变量的数据类型,SQL,语句中引用的数据库对象(列、索引、基本表、视图等),3),动态,SQL,的形式,语句可变,临时构造完整的,SQL,语句,条件可变,WHERE,子句中的条件,HAVING,短语中的条件,数据库对象、查询条件均可变,SELECT,子句中的列名,FROM,子句中的表名或视图名,WHERE,子句中的条件,HAVING,短语中的条件,4),常用动态,SQL,语句,EXECUTE IMMEDIATE,PREPARE(,动态预备语句),EXECUTE,DESCRIBE,使用动态,SQL,技术更多的是涉及程序设计方面的知识,而不是,SQL,语言本身。,5.7,存储过程与,SQL/PSM,问题,要把完成某功能的,SQL,做成类似,C,语言的函数,供需要时调用,如何做?,什么是存储过程?,是一组被编译在一起的,T-SQL,语句的集合,它们被集合在一起以完成一个特定的任务。,存储过程的分类,系统存储过程。,扩展存储过程(提供从,SQL Server,到外部程序的接口,以便进行各种维护活动)。,用户自定义的存储过程。,1.,存储过程的创建,简单语法:,CREATE PROCEDURE,存储过程的名字,AS SQL,语句,创建存储过程的步骤:,1、编写符合要求的,SQL,语句;,2、测试,SQL,语句是否正确;,3、按照存储过程的语法,创建该存储过程;,4、执行存储过程,验证其正确性。,2.,带参数的存储过程的创建,语法:,CREATE PROCEDURE,存储过程名字,参数名 数据类型=默认值,n,AS SQL,语句,作用:,可以返回用户输入的查询条件的信息。,本章结束,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服