数据库语言SQLppt课件.ppt

上传人:本田雅阁 文档编号:3185271 上传时间:2019-07-22 格式:PPT 页数:95 大小:263.51KB
返回 下载 相关 举报
数据库语言SQLppt课件.ppt_第1页
第1页 / 共95页
数据库语言SQLppt课件.ppt_第2页
第2页 / 共95页
数据库语言SQLppt课件.ppt_第3页
第3页 / 共95页
数据库语言SQLppt课件.ppt_第4页
第4页 / 共95页
数据库语言SQLppt课件.ppt_第5页
第5页 / 共95页
点击查看更多>>
资源描述

《数据库语言SQLppt课件.ppt》由会员分享,可在线阅读,更多相关《数据库语言SQLppt课件.ppt(95页珍藏版)》请在三一文库上搜索。

1、3 数据库语言SQL,Elelen Enmi胶原蛋白口服液买四赠一 品牌正品情侣装 亲子装全场包邮 淘宝:http:/ 或者拍拍:http:/ 概述,SQL的发展 1974年,由Boyce和Chamberlin提出 19751979,IBM San Jose Research Lab的关系数据库管理系统原型System R实施了这种语言 SQL-86是第一个SQL标准 SQL-89、SQL-92(SQL2)、SQL-99(SQL3) 现状 大部分DBMS产品都支持SQL,成为操作数据库的标准语言 有特殊性,支持程度不同,数据定义(DDL) 定义、删除、修改关系模式(基本表) 定义、删除视图(V

2、iew) 定义、删除索引(Index) 数据操纵(DML) 数据查询 数据增、删、改 数据控制(DCL) 用户访问权限的授予、收回,3.1.1 SQL的功能,交互式SQL 一般DBMS都提供联机交互工具 用户可直接键入SQL命令对数据库进行操作 由DBMS来进行解释 嵌入式SQL 能将SQL语句嵌入到高级语言(宿主语言) 使应用程序充分利用SQL访问数据库的能力、宿主语言的过程处理能力 一般需要预编译,将嵌入的SQL语句转化为宿主语言编译器能处理的语句,3.1.2 SQL的形式,数据定义 Create、Drop、Alter 数据操纵 数据查询:Select 数据修改:Insert、Update

3、、Delete 数据控制 Grant、Revoke,3.1.3 SQL的动词,数据查询是数据库应用的核心功能。 基本结构: Select A1, A2, ., An From r1, r2, ., rm Where P,3.2 数据查询,A1, A2, ., An(p(r1r1.rm),3.2.1 Select语句的含义,对 From 子句中的各关系,作笛卡儿积() 对 Where 子句中的逻辑表达式进行选择()运算,找出符合条件的元组。 根据 Select 子句中的属性列表,对上述结果作投影( )操作。 查询操作的对象是关系,结果还是一个关系,是一个结果集,是一个动态数据集。,3.2.2 S

4、elect子句 对应于关系代数的投影()运算,用以列出查询结果集中的期望属性。,重复元组 SQL 具有包的特性 Select子句的缺省情况是保留重复元组(ALL),可用 Distinct去除重复元组 Select Distinct sdept From Student Select All sdept From Student 去除重复元组:费时 需要临时表的支持,*与属性列表 星号 * 表示所有属性 星号 * :按关系模式中属性的顺序排列,并具有一定的逻辑数据独立性 显式列出属性名:按用户顺序排列 Select * From Student Select Student.*,cno,grad

5、e From Student,SC Where Student.sno = SC.sno,更名 为结果集中的某个属性改名 使结果集更具可读性 Select sno as stu_no,cno as course_no, grade From SC Select sno,sname,2001 - sage as birthday From Student,3.2.3 where子句,where子句对应与关系代数中的选择()。 查询满足指定条件的元组可以通过Where子句来实现。 使where子句中的逻辑表达式返回True值的元组,是符合要求的元组,将被选择出来。,运算符 比较:、=、=、not

6、+ 确定范围: Between A and B、Not Between A and B 确定集合:IN、NOT IN 字符匹配:LIKE,NOT LIKE 空值:IS NULL、IS NOT NULL 多重条件:AND、OR、NOT,like 字符匹配:Like、Not Like 通配符: % 匹配任意字符串 _ 匹配任意一个字符 大小写敏感,列出姓张的学生的学号、姓名。 Select sno,sname From Student Where sname LIKE 张% 列出张姓且单名的学生的学号、姓名。 Select sno,sname From Student Where sname LI

7、KE 张_ _,转义符 escape 例:列出课程名称中带有_的课号及课名。 Select cno,cname From Course Where cname LIKE %_% escape ,3.2.4 from子句,From子句对应与关系代数中的笛卡儿积() 列出将被扫描的关系(表) 例:列出所有学生的学号、姓名、课号、成绩。 Select Sudent.sno,sname,SC.cno,grade From Student,SC Where Student.sno = SC.sno,元组变量 为 From 子句中的关系定义元组变量 方便关系名的引用 在同一关系的笛卡儿积中进行辨别 例:列

8、出与95001同岁的同学的学号,姓名,年龄。 Select T.sno,T.sname,T.sage From Student as T,Student as S Where S.sno = 95001 AND T.sage = S.sage,3.2.5 Order By子句,指定结果集中元组的排列次序 耗时 ASC(缺省)、DESC、未选中的属性 例:列出CS系中的男生的学号、姓名、年龄,并按年龄进行排列(升序)。 Select sno,sname, sage From Student Where sdept = CS Order By sage ASC,3.3 数据定义语言,数据定义语言(

9、Data Definition Language) Create、Drop、Alter 定义一组关系(基本表)、说明各关系的信息 各关系的模式 各属性的值域 完整性约束 索引 安全性和权限,3.3.1 SQL中的域类型,字符型 char(n) 、varchar(n) 数值型 integer、smallint numeric(p,d) real、double、float(n) 日期/时间型 date time,3.3.2 SQL中的域定义,域定义语句(SQL-92支持) 需重复使用的 Create Domain stu_name varchar(20) Create Domain zip_cod

10、e char(6) 域的删除 Drop Domain datelog 各DBMS的方法是不同的Restrict/Cascade 使用该域的属性的处理,3.3.3 SQL中的模式定义,Create Table r (A1D1, A2D2, AnDn, , ) 其中: r 关系名(表名)、 Ai 关系 r 的一个属性名 Dn 属性Ai域值的域类型 主键声明: primary key (Aj1 ,Aj2 ,Ajvm ),Create Domain stu_name varchar(20) Create Table Student ( sno char(10) primary key(sno) , s

11、name stu_name , sage smallint, ssex char(1), sdept char(2),Create Table Course ( cno char(10) primary key (cno) , cname varchar(20) , credit smallint ) Create Table SC ( sno char(10) not null , cno char(10) not null , grade smallint, primary key (sno, cno),Elelen Enmi胶原蛋白口服液买四赠一 品牌正品情侣 装 亲子装全场包邮 淘宝:

12、http:/li370286038.taoba 或者拍拍:http:/ 删除表结构,用SQL删除关系(表) 将整个关系模式(表结构)彻底删除 表中的数据也将被删除 Drop Table r Drop Table student,3.3.5 修改表结构,删除表中的某属性 去除属性及相应的数据 Alter Table r Drop A 增加表中的属性 向已经存在的表中添加属性 allow null 已有的元组中该属性的值被置为Null Alter Table r Add A D Alter Table student phone char(16),3.3.6 Default Value,属性的默

13、认值 用户不提供某属性的值时,默认值被使用 初始值 DDL中: ModifyDate char(30) Default TimeStamp Alter Table student Add ID integer Default 1001,3.3.7 索引Index,索引是一种数据结构,是对照表、指针表 索引是为了加速对表中元组的检索而创建的一种分散存储结构(B树) 索引是对表而建立的,由除存放表的数据页面以外的索引页面组成 索引是把双刃剑,减慢更新的速度 索引不是SQL标准的要求 索引的种类 聚簇索引(Clustered Index) 非聚簇索引(Non-Clustered Index),聚簇索

14、引(Clustered Index) 表中的元组按聚簇索引的顺序物理地存放 根级页面-中间层页面-叶级页面(数据页面) 一个表中只能有一个聚簇索引 更新的复杂性,需要大量的临时空间 非聚簇索引(Non-Clustered Index) 表中的元组按聚簇索引的顺序物理地存放 根级页面-中间层页面-叶级页面(数据页面) 一个表中只能有一个聚簇索引 更新的复杂性,需要大量的临时空间,CREATE UNIQUE CLUSTERED | NONCLUSTERED INDEX index-name On TableName(Column,Column,) Create Index YearIndex On

15、 Movie(year) Create Clustered Index SnoIndex On student(sno) Drop Index YearIndex,3.4 数据添加,用SQL的插入语句,向数据库表中添加数据 按关系模式的属性顺序 Insert Into Student Values ( 0095001, 张三,27, M, CS ) 按指定的属性顺序,也可以只添加部分属性(非Null属性为必需) Insert Into Student ( sno, sname, sage) Values ( 0095002, 李四, 26 ),3.5 聚合函数,把一列中的值进行聚合运算,返回单

16、值的函数。 五个预定义的聚合函数: 平均值:Avg 总和: Sum 最小值:Min 最大值:Max 计数:Count Count(*)、Count(Distinct),3.5.1 Group By,将查询结果集按某一列或多列的值分组,值相等的为一组,一个分组以一个元组的形式出现。 只有出现在Group By子句中的属性,才可出现在Select子句中。 例:统计各系学生的人数。 Select sdept,count(*) as stu_count From Student Group By sdept,3.5.2 Having,针对聚合函数的结果值进行筛选(选择),它作用于分组计算结果集。 跟在

17、Group By子句的后面,没有Group By则针对全表。 例:列出具有两门(含)以上不及格的学生的学号、不及格的课目数。 Select sno,count(sno) From SC Where grade = 2,3.5.3 Having与Where的区别,Where 决定哪些元组被选择参加运算,作用于关系中的元组。 Having 决定哪些分组符合要求,作用于分组。 聚合函数的条件关系必须用Having,Where中不应出现聚合函数。,3.5.4 聚合函数忽略Null,Count:不计 Sum:不将其计入 Avg:具有 Null 的元组不参与 Max / Min:不参与 例:Select

18、count(sdept) From Student Select Avg(sage) From Student,3.6 子查询,子查询是嵌套在另一查询中的 Select-From-Where 表达式(Where/Having)。 SQL允许多层嵌套,由内而外地进行分析,子查询的结果作为父查询的查找条件。 可以用多个简单查询来构成复杂查询,以增强SQL的查询能力。 子查询中不使用 Order By 子句,Order By子句只能对最终查询结果进行排序。,3.6.1 单值比较,返回单值的子查询,只返回一行一列 父查询与单值子查询之间用比较运算符进行连接 运算符:、=、=、 例:找出与95001同龄

19、的学生 Select * From Student Where sage = ( Select sage From Student Where sno = 95001 ),3.6.2 多值,子查询返回多行一列 运算符:In、All、Some(Any)、Exists,in 标量值与子查询返回集中的某一个相等,true in 被用来测试多值中的成员。 例:查询选修C01课程的学生的学号、姓名。 Select sno,sname From Student Where sno IN (Select sno From SC Where cno = C01 ),例:查询选修了 数据库的学生的学号和姓名 S

20、elect sno,sname From Student Where sno IN ( Select sno From SC Where cno IN ( Select cno From Course Where cname = 数据库),all 多值比较:多行一列 父查询与多值子查询之间的比较需用All来连接 标量值s比子查询返回集R中的每个都大时,sAll R 为 True All 表示所有 all、=all、 all all 等价于 not in 例:找出年龄最小的学生 Select * From Student Where sage all ( Select sage From Stu

21、dent ),some、any 多值比较:多行一列 父查询与多值子查询之间的比较需用Some/Any来连接 标量值s比子查询返回集R中的某一个都大时,s Some R为True 或 s Any R为True Some(早期用Any)表示某一个,只要有一个即返回真 some、=some、 some = some 等价于 in、 some 不等价于 not in,例:找出不是最小年龄的学生 Select * From student Where sage some ( Select sage From Student ) 例:找出具有最高平均成绩的学号及平均成绩 Select sno ,avg(g

22、rade) From SC Group By sno Having avg(grade) = all ( Select avg(grade) From SC Group By sno ),exists Exists + 子查询用来判断该子查询是否返回元组 当子查询的结果集非空时,Exists为True 当子查询的结果集为空时,Exists为False 不关心子查询的具体内容,因此用 Select *,例:列出选修了C01课程的学生的学号、姓名 Select sno,sname From Student Where Exists ( Select * From SC Where SC.sno =

23、 Student.sno And cno = C01),例:列出得过100分的学生的学号、姓名 Select sno,sname From Student Where Exists ( Select * From SC Where SC.sno = Student.sno And grade = 100 ),例:查询选修了C01课程的学生的系主任 Select manager From department Where Exists ( Select * From student Where sdept = department.depid And Exists ( Select * From

24、 SC Where SC.sno = student.sno And cno = C01),例:列出没有选C01课程的学生的学号、姓名 Select sno,sname From Student Where Not Exists ( Select * From SC Where SC.sno = Student.sno And cno = C01),Elelen Enmi胶原蛋白口服液买四赠一 品牌正品情侣装 亲子装全场包邮 淘宝:http:/li370286038.taobao.co m/ 或者拍拍:http:/ ForAll ) Select sname From Student Wher

25、e Not Exists ( Select * From Course Where Not Exists ( Select * From SC Where Student.sno = SC.sno And SC.cno = Co),SQL-92支持多列的成员资格测试(ASA7.0不支持) 例:找出同系、同年龄、同性别的学生 Select * from Student as T Where(T.sdept,T.sage,T.ssex) IN ( Select sdept,sage,ssex From student as S Where S.sno T.sno ),3.6.3 多列元组的比较,3

26、.6.4 派生关系,SQL-92允许在 From中使用查询表达式 必须为其取名 例:查询平均成绩大于75分的学号、姓名、平均成绩 Select stu_no,sname,avg_grade From Student, (Select sno,avg(grade) From SC Group By sno ) as S (stu_no,avg_grade) Where Student.sno = S.stu_no And avg_grade 75,3.7 空值与连接,3.7.1 NULL 表示数据的缺失 一个确实存在,但我们不知道的值 对本实体此数值无意义,可能是设计上的失误 是SQL的关键字,

27、用于任何类型描述缺失的值,3.7.3 NULL的运算法则,对NULL值和其他任何值作算术运算时,结果为NULL 对NULL值和其他任何值作比较时,结果为UNKOWN Is Null / Is Not Null,3.7.4 Unkown的运算规则,视True为1,False为0,Unkown为1/2 AND:取小 OR:取大 NOT:取1的补 真值表不必死记硬背,3.8 数据库的修改,数据库修改包括插入数据、修改数据、删除数据。,3.8.1 数据删除,只能对整个元组操作,不能只删除某些属性上的值。 只能对一个关系起作用,若要从多个关系中删除元组,则必须对每个关系分别执行删除命令。 Delete

28、From r Where P 从关系 r 中删除满足P的元组,只是删除数据,而不是定义。,删除单个元组 例:删除学号为95001的学生的选课信息 Delete From SC Where sno = 95001 删除多个元组 例:删除选课而未参加考试的学生的选课信息 Delete From SC Where grade is null 删除整个关系中的所有数据 例:删除所有学生的选课信息 Delete From SC,3.8.2 数据插入,单行插入:一次只插入一个元组 例:新增一个学生信息 Insert Into Student Values ( 98001, Gloria,25, F, CS

29、),多行插入:插入一个集合 例:给CS系的学生开设必修课C05,建立选课信息 Insert Into SC Select sno,cno,null From Student,Course Where sdept = CS and cno = C05,3.8.3 数据更新,改变符合条件的某个(某些)元组的属性值 例:将95001学生转入MA系 Update Student Set sdept = MA Where sno = 95001 例:所有学生年龄加1 Update Student Set sage = sage + 1,例:将选修C05课程的学生的成绩改为该课的平均成绩 Update S

30、C Set grade = ( Select avg(grade ) From SC Where cno = C05) Where cno = C05,3.9 视图,是从一个或几个基本表(或视图)中导出的虚表 数据库中只保存它的定义 是RDBMS提供给用户以多种角度观察数据库中数据的重要机制 创建视图、删除 Create View v as Drop View v,例:计算机系的花名册 Create View CS_Stu as Select sno, sname, ssex From Student Where sdept = CS,3.9.1 视图(View),视图名可以出现在任何关系名可

31、以出现的地方 例:列出计算机系的男生 Select sno,sname From CS_Stu Where ssex = M,例:建立学生平均成绩视图 Create View avg_grade(sno,avg) as Select sno,avg(grade) From SC Group By sno 例:找出平均成绩大于等75的学生 Select * From avg_grade Where avg = 75 注意:此例的使用方法是非标准的。,视图的更新:单表、原始属性构成的视图可以更新(像基本表那样更新) 由多表构成的视图由很大的限制 视图中的非原始属性也不能更新 例:Update av

32、g_grade Set avg = 100 Where sno = 95001,3.9.2 视图的作用,简化用户的操作 不同的用户可从不同的角度看待同一数据 支持一定的逻辑数据独立性 数据的安全性,3.9.3 综合示例,Create Domain stu_name varchar(20) Create Table Student (sno char(10) not null, sname stu_name , sage smallint, ssex char(1), sdept char(2), primary key (sno), check(ssex in (M, F),Create Ta

33、ble Course ( cno char(10) not null , cname varchar(20) , credit smallint, primary key (cno) Create Table SC ( sno char(10) not null , cno char(10) not null , grade smallint, primary key (sno, cno), check(grade =0 and grade =100),3.10 嵌入式SQL,前面所介绍的SQL语言作为一种独立的自含式语言,是联机终端用户在交互环境下使用的,称为交互式SQL(INTERACTI

34、VE SQL),简称ISQL。,在实际应用当中,常常还需要解决这样两个问题: 有许多应用是过程化的,要求根据不同的条件来完成不同的任务; 有许多应用不仅需要读出数据,还必须读查询得到的数据进行处理。,对于上述问题,单独使用SQL语言是很难满足实际需求的。为了解决这些问题,SQL还提出了另外一种使用方式,即可以作为一种数据子语言嵌入某些主语言中,利用高级语言的过程性结构来弥补SQL语言实现复杂应用方面的不足。这种将SQL嵌入COBOL, C, C+, FORTRAN,中使用,称为嵌入式SQL(EMBEDDED SQL),简称ESQL;而接受SQL嵌入的高级语言,称为主语言或者宿主语言。,对于宿主

35、语言中的嵌入式SQl,DBMS通常采用两种方法处理。 一是预编译方法; 一是修改和扩充主语言方法,使之能够处理SQL。 当前主要采用第一种方法。其过程是,有DBMS的预处理程序对源程序进行扫描,识别出SQL语句,然后将它们转换为主语言调用语句,从而使得主语言能过识别它们,最后由主语言的编译程序将整个源程序编译成目标代码。,所有在终端交互方式下使用的SQL均能在嵌入方式下使用。由于使用方式的差异,存在着具体操作方式上的不同。但无论是怎样的使用方式,都需要解决下面三个主要问题: 应用程序中主语言的语句和SQL的语句,这两种语句; 应用程序中既有主语言变量又有SQL列变量,如何区分这两种变量; 主语

36、言变量一般均为标量,而SQL中的列变量一般均为集合量,如何建立由集合量到标量的转换。,3.10.1 主语言语句和SQL语句的区分,在嵌入方式下,所有SQL语句在嵌入主语句的程序时几乎都必须在其前缀加EXEC SQL,而结束标志可以因主语言不同而不同,一般是在语句结束处用END-EXEC 或用分号“;”。 在程序中所使用的SQL中的表,包括基表和视图都要用EXEC SQL DECLEAR语句加以说明。 SQL语句执行后,系统要反馈给程序以信息,这些信息均送入SQL通讯区(SQL Communication Area)SQLCA。 SQLCA是一个数据结构,在应用程序中用EXEC SQL INCL

37、UDE SQLCA 语句加以定义。,SQLCA中有一个存放每次执行SQL语句后返回代码的变量SQLCODE,这是一个整型变量,反映SQL语句执行后的结果状态。 应用程序每执行一条SQl语句之后都应测试一次SQLCODE的值。 当它为0时表示正常结束,即SQL语句成功; 非0时为非正常结束,SQL语句不成功。 即使说,SQLCODE的基本功用是DBMS向宿主程序报告执行SQL语句的情况。,Elelen Enmi胶原蛋白口服液买四赠一 品牌正品情侣装 亲子装全场包邮 淘宝:http:/ 或者拍拍:http:/ 在C中使用SQL语言使以EXEC SQL开始,以分号“;”结束,其格式为: EXEC S

38、QL; 删除关系S的命令为: EXEC SQL DROP TABLE S;,在COBLE 中以EXEC SQL开始,以END_EXEC结束,格式为: EXEC SQLEND_EXEC 删除S的语句为: EXEC SQL DROP TABLE S END_EXEC 在Power Builder中使用SQL与通常SQL没有任何区别,语句前不需要加任何EXEC SQL,只需用分号作为语句结束标记,即删除S的语句为: DROP TABLE S,嵌入式SQL语句根据其作用的不同,可以分为可执行语句和说明性语句两类。可执行语句又分为数据定义、数据控制和数据操作三种。在宿主语言编写的程序(宿主程序)中任何允

39、许出现执行高级语言语句的地方,都可以嵌入可执行SQL语句;任何允许出现说明性高级语句的地方,都可以写说明性SQL语句。,3.10.2 主语言变量与SQL变量的区别,主变量与指示变量 主变量 在嵌入方式下,程序中的SQL语句段内可使用主语言的程序变量来输入和输出数据。SQL中使用主语言程序定义的变量称为主变量。,主变量根据其作用的不同,分为输入主变量和输出主变量。 输入主变量由应用程序对其赋值,SQL加以引用; 输出主变量由SQL语句对其赋值或设置状态信息,返回给应用程序。 一个主变量可以既是输入主变量,又是输出主变量。,利用输入主变量,我们可以完成以下功能: 指定向数据库中插入的数据; 把数据

40、库中的数据修改为指定值; 指定WHERE子句或HAVING子句中的条件。 利用输出主变量,我们可以得到SQL语句的执行结果和状态信息。,指示变量 一个主变量可以附带一个任选的指示变量(indicator variable)。 指示变量是一个整型变量,用来“指示”所述主变量的值或者条件。 指示变量可以指示输入主变量是否为空值,可以检测输出主变量是否为空值,值是否被截断等。,主变量与指示变量的说明 所有SQL语句中用到的主变量和指示变量都必须加以说明。 说明的开头行与结尾行分别为: EXEC SQL BEGIN DECLEAR SECTION EXEC SQL END DECLEAR SECTIO

41、N。 说明了之后的主变量和指示变量,可以在SQL语句中任何一个能够使用表达式的地方调用。,SQL语句中的主变量名称前必须添加冒号()作为标志,这是为了与数据库中的对象名(表名,视图名,属性名等)向区别。同样,SQL语句中的指示变量之前也必须加有冒号,同时紧跟在所指的主变量之后。 在SQL语句之外的其它地方,说明之后的主变量和指示变量可以直接引用,不必添加冒号。 在主程序内,一般不出现SQL变量。能够使用表达式的地方调用。,3.10.3游标语句的使用,1. 概念 SQL语言与主语言在数据处理有着不同方式。SQL是面向集合的,一条SQL语句原则上可以产生或处理多条记录。主语言使面向记录的,一组主变

42、量一次只能存放一条记录,仅仅使用主变量并不能够完全满足SQL语句向应用程序输出数据的要求。这里基本的问题是,在嵌入方式下,SQL的变量是集合型的,主变量为标量型的, SQL变量不能够直接提供给主程序使用。为了解决这个问题,就需要有一种机制,将SQL变量中的集合量逐个取出送入主变量内,进而提供给主程序使用。解决问题的基本思路是在嵌入式SQL中引入“游标”的概念,用游标来协调SQL和主语言的两种不同数据处理方式。,游标本质上是系统为用户开设的一个数据缓冲区,用以存放SQL语句的结果数据集。 每个游标区都有一个名字。用户可以通过游标逐一读取数据记录,然后赋值给主变量 ,再交由主语言程序作进一步的处理

43、。 利用游标概念提供上述协调机制的基本方法是在嵌入式SQL中增加一组游标(cursor)语句。,游标语句 游标定义语句 有为某一种语句的结果定义一个命名的游标。其语句为: EXEC SQL DECLARE CURSOR 映像语句,游标打开语句 游标定义后再使用时需要打开游标,此时游标处于活动状态并指向集合的第一个记录。其一般形式为: EXEC SQL OPEN 游标关闭语句 游标使用完后需要关闭。其一般形式为: EXEC SQL CLOSE ,游标推进语句 该语句读出当前记录,并将游标推向集合中的下一个记录,此语句常用于循环,其一般形式为: EXEC SQL FETCH ,例:查询DEPT变量

44、中给出的某个系的全体学生的信息。 EXEC SQL DECLARE SX CURSOR FOR SELECT S#,Sn,Sa FROM S WHERE Sd=:DEPT; EXEC SQL OPEN SX; DO WHILE EXEC SQL FETCH SX; INTO S# ,SNAME,AGE END; EXEC SQL CLOSE SX;,作业: 课本习题3的:2,13,Elelen Enmi胶原蛋白口服液买四赠一 品牌正品情侣装 亲子装全场包邮 淘宝:http:/ 或者拍拍:http:/ 连接查询:查询的并、交、差;连接与笛卡尔积;元组变量。 嵌套查询:产生单值的子查询;涉及到关系的选择条件;涉及到元组的选择条件;相关子查询。 数据库更新:插入、删除、修改。 定义关系模式:定义表、撤消表;更改关系模式;建立和撤消索引。 视图:定义视图、查询视图、更新视图、撤消视图。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1