欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    Oracle数据库讲义(第二章).ppt

    • 资源ID:6513585       资源大小:326.99KB        全文页数:73页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Oracle数据库讲义(第二章).ppt

    讲 义,Oracle数据库,2009.3,李明俊,第二章 SQL语言基础,本章内容,2.1 SQL概述2.2 SQL*Plus概述2.3 数据操纵SQL2.4 查询2.5 小结事务处理,2.1 SQL概述SQL(Structure Query Language)语言是数据库的核心语。一、SQL语言的特点 在Oracle数据库中创建、存储、更新、检索和维护数据;SQL语句由关键字、表名、字段名、变量名及表达式等构成;SQL语言是面向集合的描述性非过程化的4GL。二、SQL语言共分为五大类:数据查询语言DQL(SELECT)数据操纵语言DML(INSERT、UPDATE、DELETE)数据定义语言DDL(CREATE、ALTER、DROP)事务控制语言(COMMIT、ROLLBACK)数据控制语言DCL(GRANT、REVOKE)。,三、SQL语言的基本语法 SQL语言的语法比较简单,类似于英文语法,说明如下:SQL语句一般由主句和从句组成,主句表示主要功能;从句表示条件和限定;在关键字、变量名、字段名、表名等之间用一个以上 的空格或逗号分隔;语句不分大小写(查询的数据内容除外);一条语句可写在一行或多行上;每条语句已分号(;)结束。例:Select spbm,spmc,xsje from T_SPML where xsjg=100;-主句 从句,四、SQL基本数据类型 常量 数值常量、字符常量 数值型Number 整数型、浮点数 字符型Char、Varchar2 固定长、可变长 日期型Date DD-MM月-YY(MM=112)长字符型Long 长字符串(32767)布尔型Boolean 真(TRUE)、假(FALSE)描述格式:number(m,n)char(n)varchar2(n)Date long(n)Boolean例:number(6,2)char(8)varchar2(20)long(1000),五、SQL基本运算符,2.2 SQL*Plus概述,Oracle的SQL*Plus是标准SQL的一个扩展集,除了符合SQL标准的语句外,它还提供了一些Oracle 的特定的外加语句。SQL*Plus是用户和数据库服务器之间的友好字符接口。用户可以在SQL*Plus窗口中编写程序,实现数据的处理和控制等多种功能。SQL*Plus可以用来生成报表、控制屏幕显示和打印输出格式。,菜单方式SQL*Plus的启动 在【开始】菜单的【程序】中运行Oracle for NT/Windows 98组的SQL*Plus程序。弹出登录窗口,要求输入用户名、口令和主机字符串。主机字符串是数据库的别名。SQL*Plus连接到主机字符串所对应的数据库。,2.2.1 SQL*Plus的启动和关闭,命令行方式启动(DOS方式启动SQL*Plus。)(1)单击运行菜单命令,打开运行对话框。(2)在“打开”文本框中输入sqlplus,或输入sqlplus 用户名/密码。c:sqlplus scott/tiger主机字符串(3)输入SQL命令,在命令的结尾处输入一个“;”号,然后按回车。,SQL*Plus的关闭在使用完SQL*Plus后,一定要正确关闭会话。正确关闭会话可以确保会话使用的数据库资源释放,以便数据库的其他用户访问。(1)直接关闭窗口。(2)在SQL提示符后键入并执行EXIT命令,窗口自动关闭。,SAVE该命令将当前的命令行保存到操作系统的文件中。格式:SAVE filename.ext其中:filename:你将把缓冲区中的内容存入到操作系统目录的文件名。ext:若使用文件后缀,缺省的文件后缀为SQL。,2.2.2 SQL*Plus常用编辑命令,GET 该命令将操作系统的目录下的命令文件读到缓冲区(但不执行)。格式:GET filename.ext其中:filename:希望加载到SQL缓冲区的文件名。ext:文件的扩展名,缺省为 SQL.,EDIT该命令为调用操作系统的编辑指定文件或缓冲区的内容。格式:EDIT filename.ext 其中:如果EDIT后面没有跟文件名,则编辑SQL缓冲区中的内容,编辑中所做的改变均存入缓冲区。,RUN 或/该命令运行指定的文件。LIST 可以用 LIST 命令来列出当前SQL缓冲区中的一行或多行命令语句 格式:LIST n|n m|n*|n LAST|*|*n|*LAST|LAST其中:n 列出第n行,n m 列出n到m行,n*列出第n行到当前行,n LAST 列出第n行到最末行,*列出所有行,*n 列出当前行到第n行,*LAST列出当前行到最末行,LAST 列出最末行,SPOOLSPOOL 命令可以实现将屏幕所出现的一切信息记录到操作系统的文件中直到SPOOL OFF为止。格式:SPOOL filename.ext|OFF其中:filename:输出(spool)的文件名.ext文件的后缀。缺省的后缀是LST(或LIS)。SPOOL test 以下的屏幕显示内容存储到test.lst文件中。SPOOL off 结束屏幕显示内容输出到文件中。,配置会话环境 一般在SQL下进行SQLPLUS 操作,都需要进行必要的环境设置才能完成我们所需要的输出。所有环境的设置由 SET命令加相应的环境变量来完成。下面是常用的环境设置:ARRAYSIZE(读取的行数)格式:SET ARRAYSIZEintegerAUTOCOMMIT(自动提交)格式:SET AUTO COMMIT OFF|ON LINESIZE(行显示宽度)格式:SET Linesize80|integerPAGESIZE(页行数)格式:SET pagesize 24|integer,2.3 数据库对象创建和操纵 2.3.1 创建表 表是关系数据库中最重要的数据库对象,其他数据库对象的创建以及各种操作都是围绕表进行。本章所有例子以下列学生选课系统为例。学生(学号,姓名,年龄,性别,专业名)课程(课程号、课程名,任课教师)选课(学号,课程号,成绩),定义语句格式,一、CREATE TABLE(,),例1:Create Table TT_spml(spbm char(6),spmc varchar2(20),spgg varchar2(15),spcd varchar2(10),jldw char(2),ghdw char(6),xsjg number(8,2),zfrq char(8);,二、描述语句,Oracle 对SQL最重要的改进之就是增加了描述(describe)命令,使用describe命令,用户可以快速掌握表及其中所有表列的概要。describe命令可以列出存储的PL/SQL包中所有的过程和这些过程所使用的输入/输出参数。【例3】显示表商品目录及供货单位的结构:DESCribe T_spml DESCribe T_ghdwml,三、复制表 Create Table 表名1 as select 列名1,列名2 from 表名2;例:Create Table TT_spml as select*from t_spml;修改表的列名 Create Table TT_ghdwml(ghdw,dwmc)as select dwbm,dwmc from t_ghdwml;四、删除表 Drop Table 语句 格式:Drop table 表名 Cascade Constraint 语句;Cascade Constraint当要删除的表与与其他表有 约束条件时同时删除约束条件。例:Drop Table TT_spml;Create Table TT_ghdwml as Select dwbm,dwmc from t_ghdwml;Drop Table TT_ghdwml;,五、表的重命名 Rename 语句 格式:Rename 原表名 To 现表名;例:Rename TT_ghdwml to ghdwml;六、数据完整性与约束条件 列级格式:Create table 表名(列名1 类型 约束条件,列名2 类型 约束条件,);表级格式:Create table 表名(列名1 类型,列名2 类型,)约束条件;约束条件:Check 检验取值的正确性;Not Null 不允许取空值;Unique 值不允许重复;Primary 设定为主键,值不允许重复和空;References设定为外键,建立表的主从关系,外键的值必须存在于主表的主键中;,主键 Primary Key 主键有两个功能:能够唯一地标示每一行;主键不能是空值。主键有两个规则:每个表只能有一个主键;主键可以是一列或多列组合。例1:Create Table T_xsml-学生目录表 xsbh char(8)Primary Key,xsxm varchar2(8),sfzh char(18),xsxb char(1);,Create Table T_xscjb(-学生成绩表 kcbm char(4),-课程编码 xsbh char(8),-学生编号 pscj varchar2(6),-平时成绩 kscj varchar2(6),-考试成绩 Constraint pk Primary Key(kcbm,xsbh);Constraint pk 可以省略。Insert into T_xscjb Values(1101,20031101,85,90);Insert into T_xscjb Values(1101,85,90)Insert into T_xscjb Values(1101,20031102,85,90);,非空 Not Null 非空功能:列不能是空值。例1:Create Table T_xsml(xsbh char(8)Primary Key,xsxm varchar2(8),xsxb char(1)Not Null);Insert Into T_xsml values(20031101,王强,M);,唯一 Unique 唯一功能:表中所有的行限定唯一的列(列组)不能重复。例:Create Table T_xsml(xsbh char(8)Primary Key,xsxm varchar2(8)Not null,sfzh char(18)Unique);Insert Into T_xsml values(20031101,王强,230102198401010001);,Create Table T_xscjb(kcbm char(4),-课程编码 xsbh char(8),-学生编号 pscj varchar2(6),-平时成绩 kscj varchar2(6),-考试成绩 Constraint uq Unique(kcbm,xsbh);Constraint uq 可以省略。,检查 Check 检查功能:列只能取指定范围的值,可以有多个限定。例1:Create Table T_xsml(xsbh char(8)Primary Key,xsxm varchar2(8)Not null,xsxb char(1),Constraint ck Check(xsxb in(M,W);Constraint ck 可以省略。Insert Into T_xsml values(20031101,王强,M);,外键 Foreign Key 外键功能:限定两个表之间的数据关系。外键可以一列或多列。例:Create Table T_xscjb(xsbh char(8),kcbm char(4)References T_kcml,-T_kcml 课程目录的主键 pscj varchar2(6),kscj varchar2(6);Create Table T_kcml(kcbm char(4)Primary key,kcmc varchar2(20);,Create Table T_xscjb(xsbh char(8),zybm char(3),-专业编码 kcbm char(4),pscj varchar2(6),kscj varchar2(6),Foreign Key(zybm,kcbm)References T_kcml(zybm,kcbm);-课程目录Create Table T_kcml(zybm char(3),zymc varchar(20),kcbm char(4),primary key(zybm,kcbm);注意:在有多列外键时,所要关联表的主键必须是 相对应多列。,【例1】在SAM用户下建立表Student,Course,SCSQL create table Student(Stu_no char(8),Stu_name varchar2(10)not null,Stu_age number(3),Stu_sex char(2),Stu_dept varchar2(20),CONSTRAINT pk_sno PRIMARY KEY(Stu_no);,SQL create table Course(Cou_no char(3),Cou_name varchar2(16)not null,Cou_pno char(3),Cou_teacher varchar2(10),CONSTRAINT pk_cno PRIMARY KEY(Cou_no);,create table SC(-成绩表 Stu_no char(8),Cou_no char(3),Grade number(3),CONSTRAINT pk_sc PRIMARY KEY(Stu_no,Cou_no),FOREIGN KEY(Stu_no)REFERENCES Student(Stu_no),FOREIGN KEY(Cou_no)REFERENCES Course(Cou_no),CHECK(grade is null)or(grade between 0 and 100);,2.3.2 修改表结构,语法ALTER TABLE user.tableADD(colum_element|table_constraint,column_element|table_constraint.)MODIFY(column_element,column_element.)DROP CONSTRAINT constraint.PCTFREE integerPCTUSED integerINITRANS integerMAXTRANS integerSTORAGE storageBACKUP,格式:Alter Table 表名 Add|Modify|Drop Column 修改内容;例:增加新列 Alter Table T_ghdwml add swdm char(15);修改列 Alter Table T_ghdwml modify swdm number(15);删除列 Alter Table T_ghdwml Drop Column swdm;,例:对已经存在的学生表增加一新的列(入学成绩)alter table student add stu_score number(3);例:删除学生表中的入学成绩 alter table student drop column stu_score;,2.3.3 插入语句,INSERT 语句可以完成对表、视图进行数据插入。INSERT INTO user.tabledb_link(column1,column2.)VALUES(express1,express2.);Insert into 表名1()Select From 表名2;例:插入1条记录于student表中。INSERT into Student VALUES(20026101,李勇,20,男,计算机);,2.3.4 修改数据语句,使用UPDATE语句修改表中的数据 格式:UPDATE table SET column=value,column=value WHERE condition;使用UPDATE语句应注意以下事项:如果要更新数值列,则可以直接提供数值;如果要更新字符列或日期列,则数据必须用单引号。当更新数据时,数据必须要与列的数据类型匹配。当更新数据时,数据必须要满足约束规则,,例:将student表中学号为20026101的学生年龄修改为18。update student set stu_age=18 where stu_no=20026101;将所有选修课程号为a01的成绩加2分,所有选修课程号为a03的成绩加3分。其余加1 分。update sc set grade=case cou_no when a01 then grade+2 when a03 then grade+3 else grade+1 end;,2.3.5 删除数据,使用DELETE语句可从表中删除现有的数据。用户确定要删除表的所有数据,使用TRUNCATE TABLE 语句速度更快。DELETE语句的操作可以回退,但TRUNCATE TABLE语句的操作不能回退。DELETE FROM 表名 WHERE 条件;如果不用where子句,则会删除表中所有的行,使用where子句只删除满足条件的行。例:删除选修课程号为a01学生的成绩记录 delete from sc where cou_no=a01;,2.3.6 索引,索引主要目的是加快数据的读取速度和完整性检查。一般在数据库设计阶段的与数据库结构一道考虑。应用系统的性能直接与索引的合理直接有关。Oracle 9i采用了多种新颖的索引算法以显著地提高Oracle查询数据库的速度。,索引按功能分类唯一索引主关键字索引一般索引。索引按索引对象分类:单列索引(表单个字段的索引)多列索引(表多个字段的索引)函数索引(对字段进行函数运算的索引),创建索引的语法形式:CREATE UNIQUE INDEX index_nameON table_name(column_name,column_name);其中:UNIQUE:指定索引所基于的列(或多列)值必须唯一;缺省索引是非唯一索引。index_name:表示创建的索引名字;table_name:指要创建索引的表;,删除索引 当不需要时可以将索引删除以释放出硬盘空间。DROP INDEX indexname例:删除Student表的Stusname索引。DROP INDEX Stusname;注意:删除索引时,系统会从数据字典中删去有关该索引的描述。当表结构被删除时,有其相关的所有索引也随之被删除。,2.3.7 视图,视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式。可以将视图看成是一个移动的窗口,通过它可以看到感兴趣的数据。视图是从一个或多个实际表中获得数据的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的基表。一个视图也可从另一个视图产生。视图是数据库对象,它的定义存放在数据库数据字典中。,建立视图语法:create replace view 视图名column_name1,column_name2 as查询子句 with read only;例:对用户经常要用到的商品目录、供货单位等数据建立视图。例1:Create View v_spml as Select spbm,spmc,xsjg from T_spml;例2:Create View v_spxx as Select x.ghdw,y.dwmc,spbm,spmc from T_spml x,T_ghdwml y where x.ghdw=y.dwbm;,视图的撤消 DROP VIEW 视图查询对视图的查询与表的查询相同。例:查询供货单位编码是G90008的商品信息。select*from v_spxx where grade85;视图更新对视图的更新最终要转换为对基本表更新。如果视图从单个基表中选择,投影操作导出且包含关系的主码或某个候选码,则可执行更新操作,但不提倡更新视图,容易破坏数据完整性。,2.3.8 同义词(SYNONYM),同义词是数据对象的别名。在本地数据库中同义词可以表示表、视图、序列、程序、函数或包等数据对象,也可以通过链路表示另一个数据库的对象。同义词可以使多个用户使用同一个对象而不用将模式(Schema)作为前缀加在对象的前面,从而简化授权方面的操作。同义词有公有和私有两种。,同义词创建语法:create public synonym 同义词 for 用户名.表名database_link;不同用户拥有的对象创建的同义词,首先要进行授权。例:创建私有的同义词:grant all on emp to lll;授权。connect lll/lllw;改变登入用户。create synonym emp for scott.emp;同义词已创建。select*from emp;例:Grant Select On T_ghdwml To Public;(需要Public Synonym 权限)Create Public Synonym S_ghdwml For T_ghdwml;Select*from s_ghdwml;,2.3.9 事务控制,一个事务可以是一组DML语句,也可以是一条DDL或DCL命令。事务从第一个可执行语句开始。事务遇到以下情况结束:commit或rollback语句、DDL或DCL语句自动提交事务(连同在它之前的DML命令一起提交)、用户退出(系统自动发出commit命令)、系统崩溃。Oracle中事务处理提供以下好处:事务可以保证Oracle数据库所有用户的读一致性。事务可以预先预览改变,然后再永久保存到Oracle数据库中。事务控制命令Commit 事务提交。永久改变数据库内容。Rollback 事务回滚。取消本次执行的一组DML语句。,2.4 查询,查询语句的基本语法如下:SELECT ALL|DISTINCT,FROM,WHERE HAVING GROUP BY,ORDER BY,ASC|DESC;,2.4.1 简单查询,简单查询仅涉及一个表或视图,是一种最简单的查询操作,可以分为如下几种:查询指定的列无条件查询条件查询对查询结果排序对查询结果分组 使用函数,查询所有列或指定列【例】查询在商品目录中所有的供货单位编码(消除取值重复的行)。SQL SELECT DISTINCT ghdw FROM T_spml;无条件查询 Select*from t_spml;条件查询【例】查询销售价格=100元以上的商品编码、商品名称,销售价格。Select spbm,spmc,xsje from T_spml where xsjg=100;例:Select*from t_spml where spbm=941001;Select*from t_spml where spbm like 95%;Select*from t_spml where spbm in(931001,961001);,对查询结果排序 Select*from t_spml where spbm=941001 order by ghdw,spbm desc;分组查询 Select count(spbm)from t_spml;Select ghdw,count(spbm)from t_spml Group by ghdw;Select ghdw,sum(yysl)from t_spkcmx Group by ghdw;Select ghdw from t_spkcmx Having Count(ghdw)1 Group by ghdw;Select max(xsjg)from t_spml;Select ghdw,max(xsjg)from t_spml Group by ghdw;,2.4.2常用函数函数是一种有零个或多个参数并且有一个返回值的程序。在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类:单行函数和组函数。单行字符函数 单行数字函数 单行日期函数 单行转换函数组函数(集合函数),一、单行函数数值函数 MOD语法:MOD(m,n)返回m/n的余数;ROUND语法:ROUND(n,m)返回n四舍五入后取小数点后m位数;字符函数 SUBSTR语法:SUBSTR(char,m,n)返回char中第m位开始取n个字符值;例:SUBSTR(12字符,1,4)返回12字符 SUBSTR(12345,1,4)返回1234 SUBSTRB语法:SUBSTRB(char,m,n)返回char中第m位开始取n个字节值。例:SUBSTRB(12字符,1,4)返回12字 SUBSTRB(12345,1,4)返回1234 LENGTH语法:LENGTH(char)返回字符长度,日期函数 SYSDATE语法:SYSDATE 返回系统当前日期 例:To_Char(SYSDATE,YYYYMMDD HH24:MI:SS)LAST_DAY语法:LAST_DAY(日期)返回该月份的最后一天;例:LAST_DAY(SYSDATE)-SYSDATE 转换函数 TO_CHAR语法:TO_CHAR(日期,格式)把日期转换为字符串;TO_CHAR(数值)把数值转换为字符串;TO_DATE语法:TO_DATE(char,格式)把字符串转换为日期;TO_NUMBER语法:TO_NUMBER(char)把字符串转换为数值。例:求某一天的星期 TO_CHAR(SYSDATE,D),其他函数 NVL语法:NVL(表达式1,表达式2)如果表达式1为空,则返回表达式2,否则返回表达式1;USER语法:USER 返回当前Oracle用户名。组函数 取值选项 ALL在组函数取所有的值,包括重复的值;DISTINCT重复值只取一个。函数 COUNT语法:COUNT(ALL|DISTINCT 表达式)返回查询行数;MAX语法:MAX(表达式)返回最大值;MIN语法:MIN(表达式)返回最小值;SUM语法:SUM(表达式)返回表达式值的和。,2.4.3 高级查询,多表连接oracle允许使用表连接来实现在一个查询中显示多个表的数据,连接两个或多个表中的数据所需的条件是:两个表中有相同列(列名可以相同或不同)。连接查询中用来连接两个表的条件称为连接条件或连接谓词,连接可以分类为等值连接、非等值连接、自然连接、外连接、自身连接。格式:.,等值连接:当比较运算符是“=”时,称为等值连接。【例】查询商品的编码、名称、产地及库存数量。Select x.spbm,spmc,spdj,yysl from t_spkcmx x,t_spml y where ghdw=G90007 and x.spbm=y.spbm;复合条件连接【例】查询商品的编码、名称、产地、库存数量及供 货单位。Select x.ghdw,dwmc,x.spbm,spmc,spdj,yys from t_spkcmx x,t_spml y,t_ghdwml z where ghdw=G90007 and x.spbm=y.spbm and x.ghdw=z.dwbm;,自然连接自然连接是两个表之间根据同名列使用 natural join 进行连接。【例】查询商品的编码、名称、产地及库存数量。Select spbm,spmc,spdj,yysl from t_spkcmx natural join t_spml where ghdw=G90007;,外连接外连接与普通连接的区别在于:普通连接操作只输出满足连接条件的元组,外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出。可以使用外连接查看不满足连接条件的那些记录,外连接的运算符是符号+,+被放置在缺失记录的那一边,但不能两边都放。它可以是以下两种形式:左外连接(LEFT JOIN)和 右外连接(RIGHT JOIN),例】查询每个供货单位的商品情况。Select x.dwbm,x.dwmc,y.spbm,y.spmc from t_ghdwml x,t_spml y where x.dwbm=y.ghdw(+);自身连接 在特殊情况下,可能需要只用一个表进行连接。用表的两个副本连接表中的数据,这种连接称为自身连接。因为自连接查询仅涉及某张表与其自身的连接,所以在FROM子句中该表名出现两次,分别用两个不同的别名表示。Select x.spbm,x.spmc,y.xsjg from t_spml x,t_spml y where x.xsjg=y.xsjg;,2.4.3 子查询,子查询是嵌入在select、update或delete命令中的标准select语句,它提供父语句的from、where或having部分的数据,限制父查询的所选输出,产生某种中间结果集。SELECT表达式 FROM table|查询子句WHERE表达式 operator 表达式|(查询子句);其中 表达式为列名、变量、常数运算符等组成的式子;operator为比较运算符。比较运算符分为两种:单行运算符(、=、)多行运算符(IN、ANY、ALL)。,单行子查询单行子查询是只返回一个值的子查询,在主查询执行以前,它先被执行,且只执行一次,返回的结果值用于限定主查询。【例】查询与商品编码9650005的商品供货单位相同的所有商品信息。Select*from T_spml where ghdw=(select distinct ghdw from T_spml where spbm=9650005);【例】查询供货单位G90028的商品最高价格更低的所有商品信息。Select*from T_spml where xsje(select max(xsjg)from T_spml where ghdw=G90028);,多行子查询查询结果返回多行记录的子查询称为多行子查询。在多行子查询中应该使用多行运算符:in、any、all,而不能使用关系运算符(=、=、)。谓词语义:ANY:任意一个值。ALL:所有值 ANY 大于子查询结果中的某个值 ALL 大于子查询结果中的所有值 ANY 小于子查询结果中的某个值ALL 小于子查询结果中的所有值【例】查询产地为上海的所有供货单位的商品信息。Select*from T_spml where ghdw in(select ghdw from T_spml where spcd=上海);,相关子查询在where子句中使用exists测试子句。如果子查询返回数据,则exists运算符返回true,并返回查询记录,否则exists运算符返回false,不返回查询记录。【例】查询所有销售价格为1000的供货单位信息。select*from t_ghdwml Where Exists(Select*From t_spml Where ghdw=t_ghdwml.dwbm And xsjg=1000);子查询作为数据源 格式:Select 表达式 From 查询子句 Where【例】查询扣款比率为20的所有供货单位品种个数。select ghdw,Count(spbm)from(Select ghdw,spbm From t_spml Where ghdw In(Select ghdw From t_ghdwml Where kkbl=20)Group By ghdw,2.4.4 集合查询,关系数据库的优点是用户编写的SQL查询语句处理的是数据集合,而非单行数据,这使其具有非常强大的功能。集合操作注意点:参加集合运算的两个子查询都不能包含order by子句;两个子查询的列数和列的类型应相同。,Union 完成将两个以上的表的相类似的查询结果合并在一起,并且相同的行只取其一。union all 表示返回所有行(不管是否重复)。Intersect 返回在两个表中都有相同内容的信息。Minus 返回只在一个表中出现的信息。【例】构造两个相类似的表,集合查询中使用。Create table tt_spml as select*from t_spml;,UNION运算集合并(union)操作将返回在两个子查询中无重复的所有行。其语法如下:语法:select 子句1 union select 子句2 order by 子句【例】查询T_spml 和 TT_spml的并集。Select*from T_spml union select*from TT_spml order by 7;Select*from T_spml union all select*from TT_spml;,Intersect(交)运算集合交操作(intersect),返回在两个子查询中都有的所有行。其语法如下:select 子句1 intersect select 子句2 order by子句【例】查询T_spml 和 TT_spml的交集。Select*from T_spml intersect select*from TT_spml;,Minus(差)运算集合差(MINUS)操作,将返回第一个子查询减去第二个子查询相同行的剩余行。其语法如下:SELECT 子句1 MINUS SELECT 子句2;【例】查询T_spml 和 TT_spml的差集。Select*from T_spml minus select*from TT_spml;,2.5 小结,SQL*Plus可以用菜单启动或命令行的方式启动。SQL命令分为检索、DML、DCL、DDL和事务处理命令。事务处理包括COMMIT、ROLLBACK等;数据控制(DCL)包括GRANT、REVOKE;数据定义(DDL)包括CREATE、ALTER、DROP、RENAME;数据操作(DML)包括INSERT、UPDATE、DELETE、TRUNCATE;数据检索只有SELECT命令。Oracle数据库的对象主要分为表、视图、索引、同义词等。对这些数据库对象可以进行建立、更改、删除操作。查询可以分为简单查询、分组查询(group by)、连接查询(等值连接、非等值连接、自然连接、外连接、自身连接)、子查询(单行子查询和多行子查询、多列子查询)、相关子查询以及集合查询等。可以用where限制查询的条件。,

    注意事项

    本文(Oracle数据库讲义(第二章).ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开