文档库 最新最全的文档下载
当前位置:文档库 › oraclePLSQL的基本构成,块结构和基本语法要求,(精)

oraclePLSQL的基本构成,块结构和基本语法要求,(精)

oraclePLSQL的基本构成,块结构和基本语法要求,(精)
oraclePLSQL的基本构成,块结构和基本语法要求,(精)

oracle PL/SQL的基本构成,块结构和基本语法要求,数据类型,变量定义,运算符和函数

关键字: oracle pl/sql 基本构成块结构基本语法要求数据类型变量定义运算符函数

特点

PL/SQL语言是SQL语言的扩展,具有为程序开发而设计的特性,如数据封装、异常处理、面向对象等特性。PL/SQL是嵌入到Oracle服务器和开发工具中的,所以具有很高的执行效率和同Oracle数据库的完美结合。在PL/SQL模块中可以使用查询语句和数据操纵语句(即进行DML操作),这样就可以编写具有数据库事务处理功能的模块。

至于数据定义(DDL)和数据控制(DCL)命令的处理,需要通过Oracle提供的特殊的DMBS_SQL包来进行。PL/SQL还可以用来编写过程、函数、包及数据库触发器。过程和函数也称为子程序,在定义时要给出相应的过程名和函数名。它们可以存储在数据库中成为存储过程和存储函数,并可以由程序来调用,它们在结构上同程序模块类似。

PL/SQL过程化结构的特点是:可将逻辑上相关的语句组织在一个程序块内;通过嵌入或调用子块,构造功能强大的程序;可将一个复杂的问题分解成为一组便于管理、定义和实现的小块。

块结构和基本语法要求

PL/SQL程序的基本单元是块(BLOCK),块就是实现一定功能的逻辑模块。一个PL/SQL程序由一个或多个块组成。块有固定的结构,也可以嵌套。一个块可以包括三个部分,每个部分由一个关键字标识。

块中各部分的作用解释如下:

(1) DECLARE:声明部分标志。

(2) BEGIN:可执行部分标志。

(3) EXCEPTION:异常处理部分标志。

(4) END;:程序结束标志。

在以下的训练中,将使用函数DBMS_OUTPUT.PUT_LINE显示输出结果。DBMS_OUTPUT是Oracle提供的包,该包有如下三个用于输出的函数,用于显示PL/SQL程序模块的输出信息。

第一种形式:

DBMS_OUTPUT.PUT(字符串表达式);

用于输出字符串,但不换行,括号中的参数是要输出的字符串表达式。

第二种形式:

DBMS_OUTPUT.PUT_LINE(字符串表达式);

用于输出一行字符串信息,并换行,括号中的参数是要输出的字符串表达式。第三种形式:

DBMS_OUTPUT.NEW_LINE;

用来输出一个换行,没有参数。

调用函数时,在包名后面用一个点“.”和函数名分隔,表示隶属关系。

要使用该方法显示输出数据,在SQL*Plus环境下要先执行一次如下的环境设置命令:

SET SERVEROUTPUT ON [SIZE n]

用来打开DBMS_OUTPUT.PUT_LINE函数的屏幕输出功能,系统默认状态是

OFF。其中,n表示输出缓冲区的大小。n的范围在2000~1 000 000之间,默认为2000。如果输出内容较多,需要使用SIZE n来设置较大的输出缓冲区。在PL/SQL模块中可以使用查询语句和数据操纵语句(即进行DML操作),所以PL/SQL程序是同SQL语言紧密结合在一起的。在PL/SQL程序中,最常见的是使用SELECT语句从数据库中获取信息,同直接执行SELECT语句不同,在程序中的SELECT语句总是和INTO相配合,INTO后跟用于接收查询结果的变量,形式如下:

SELECT 列名1,列名2... INTO 变量1,变量2... FROM 表名WHERE 条件;注意:接收查询结果的变量类型、顺序和个数同SELECT语句的字段的类型、顺序和个数应该完全一致。并且SELECT语句返回的数据必须是一行,否则将引发系统错误。当程序要接收返回的多行结果时,可以采用后面介绍的游标的方法。

使用INSERT、DELETE和UPDATE的语法没有变化,但在程序中要注意判断语句执行的状态,并使用COMMIT或ROLLBACK进行事务处理。

以下训练包含了按照标准结构书写的一个包含SELECT语句的PL/SQL程序示例。

【训练1】查询雇员编号为7788的雇员姓名和工资。

步骤1:用SCOTT账户登录SQL*Plus。

步骤2:在输入区输入以下程序:

步骤3:按执行按钮或F5快捷键执行程序。

输出的结果是:

以上程序的作用是,查询雇员编号为7788的雇员姓名和工资,然后显示输出。

这种方法同直接在SQL环境下执行SELECT语句显示雇员的姓名和工资比较,程序变得更复杂。那么两者究竟有什么区别呢?SQL查询的方法,只限于SQL 环境,并且输出的格式基本上是固定的。而程序通过把数据取到变量中,可以进行复杂的处理,完成SQL语句不能实现的功能,并通过多种方式输出。

“--”是注释符号,后边是程序的注释部分。该部分不编译执行,所以在输入程序时可以省略。/*......*/中间也是注释部分,同“--”注释方法不同,它可以跨越多行进行注释。

PL/SQL程序的可执行语句、SQL语句和END结束标识都要以分号结束。

数据类型

变量的基本数据类型同SQL部分的字段数据类型相一致,但是也有不同,具体看附件里的图片。

NUMBER和VARCHAR2是最常用的数据类型。

VARCHAR2是可变长度的字符串,定义时指明最大长度,存储数据的长度是在最大长度的范围自动调节的,数据前后的空格,Oracle 9i会自动将其删去。NUMBER型可以定义数值的总长度和小数位,如NUMBER(10,3)表示定义一个宽度为10、小数位为3的数值。整个宽度减去小数部分的宽度为整数部分的宽度,所以整数部分的宽度为7。

CHAR数据类型为固定长度的字符串,定义时要指明宽度,如不指明,默认宽度为1。定长字符串在显示输出时,有对齐的效果。

DATE类型用于存储日期数据,内部使用7个字节。其中包括年、月、日、小时、分钟和秒数。默认的格式为DD-MON-YY,如:07-8月-03表示2003年8月7日。

BOOLEAN为布尔型,用于存储逻辑值,可用于PL/SQL的控制结构。

LOB数据类型可以存储视频、音频或图片,支持随机访问,存储的数据可以位于数据库内或数据库外,具体有四种类型:BFILE、BLOB、CLOB、NCLOB。但是操纵大对象需要使用Oracle提供的DBMS_LOB包。

变量定义

1.变量定义

变量的作用是用来存储数据,可以在过程语句中使用。变量在声明部分可以进行初始化,即赋予初值。变量在定义的同时也可以将其说明成常量并赋予固定的值。变量的命名规则是:以字母开头,后跟其他的字符序列,字符序列中可以包含字母、数值、下划线等符号,最大长度为30个字符,不区分大小写。不能使用Oracle的保留字作为变量名。变量名不要和在程序中引用的字段名相重,如果相重,变量名会被当作列名来使用。

变量的作用范围是在定义此变量的程序范围内,如果程序中包含子块,则变量在子块中也有效。但在子块中定义的变量,仅在定义变量的子块中有效,在主程序中无效。

变量定义的方法是:

变量名[CONSTANT] 类型标识符[NOT NULL][:=值|DEFAULT 值];

关键字CONSTANT用来说明定义的变量是常量,如果是常量,必须有赋值部分进行赋值。

关键值NOT NULL用来说明变量不能为空。

∶=或DEFAULT用来为变量赋初值。

变量可以在程序中使用赋值语句重新赋值。通过输出语句可以查看变量的值。

在程序中为变量赋值的方法是:

变量名:=值或PL/SQL 表达式;

以下是有关变量定义和赋值的练习。

【训练1】变量的定义和初始化。

输入和运行以下程序:

执行结果:

说明:本训练共定义了6个变量,分别用“:=”赋值运算符或DEFAULT 关键字对变量进行了初始化或赋值。其中:c_tax_rate为常量,在数据类型前加了“CONSTANT” 关键字;v_valid变量在赋值运算符前面加了关键字“NOT NULL”,强制不能为空。如果变量是布尔型,它的值只能是“TRUE”、“FALSE”或“NULL”。本练习中的变量v_valid布尔变量的值只能取“TRUE”或“FALSE”。

2.根据表的字段定义变量

变量的声明还可以根据数据库表的字段进行定义或根据已经定义的变量进行定义。方法是在表的字段名或已经定义的变量名后加%TYPE,将其当作数据类型。定义字段变量的方法如下:

变量名表名.字段名%TYPE;

【训练2】根据表的字段定义变量。

输入并执行以下程序:

执行结果:

说明:变量v_ename是根据表emp的ename字段定义的,两者的数据类型总是一致的。

如果我们根据数据库的字段定义了某一变量,后来数据库的字段数据类型又进行了修改,那么程序中的该变量的定义也自动使用新的数据类型。使用该种变量定义方法,变量的数据类型和大小是在编译执行时决定的,这为书写和维护程序提供了很大的便利。

3.结合变量的定义和使用

我们还可以定义SQL*Plus环境下使用的变量,称为结合变量。结合变量也可以在程序中使用,该变量是在整个SQL*Plus环境下有效的变量,在退出SQL*Plus 之前始终有效,所以可以使用该变量在不同的程序之间传递信息。结合变量不是由程序定义的,而是使用系统命令VARIABLE定义的。在SQL*Plus环境下显示该变量要用系统的PRINT命令。

在SQL*Plus环境下定义结合变量的方法如下:

VARIABLE 变量名数据类型

【训练3】定义并使用结合变量。

步骤1:输入和执行下列命令,定义结合变量g_ename:

步骤2:删掉刚才输入的语句,输入和执行下列程序:

输出结果:

步骤3:重新执行程序。

输出结果:

步骤4:程序结束后用命令显示结合变量的内容:

输出结果:

说明:g_ename为结合变量,可以在程序中引用或赋值,引用时在结合变量前面要加上“∶”。在程序结束后该变量的值仍然存在,其他程序可以继续引用。4.记录变量的定义

还可以根据表或视图的一个记录中的所有字段定义变量,称为记录变量。记录变量包含若干个字段,在结构上同表的一个记录相同,定义方法是在表名后

跟%ROWTYPE。记录变量的字段名就是表的字段名,数据类型也一致。

记录变量的定义方法是:

记录变量名表名%ROWTYPE;

获得记录变量的字段的方法是:记录变量名.字段名,如emp_record.ename。如下练习中定义并使用了记录变量。

【训练4】根据表定义记录变量。

输入并执行如下程序:

执行结果为:

说明:在以上的练习中定义了记录变量emp_record,它是根据表emp的全部字段定义的。SELECT语句将编号为7788的雇员的全部字段对应地存入该记录变量,最后输出记录变量的雇员名称字段emp_record.ename的内容。如果要获得其他字段的内容,比如要获得编号为7788的雇员的工资,可以通过变量emp_record.sal获得,依此类推。

5.TABLE类型变量

在PL/SQL中可以定义TABLE类型的变量。TABLE数据类型用来存储可变长度的一维数组数据,即数组中的数据动态地增长。要定义TABLE变量,需要先定义TABLE数据类型。通过使用下标来引用TABLE变量的元素。

TABLE数据类型的定义形式如下:

TYPE 类型名IS TABLE OF 数据类型[NOT NULL] INDEX BY

BINARY_INTEGER;

此数据类型自动带有BINARY_INTEGER型的索引。

【训练5】定义和使用TABLE变量:

执行结果为:

说明:本例定义了长度为10的字符型TABLE变量,通过赋值语句为前五个元素赋值,最后输出第三个元素。

运算符和函数

PL/SQL常见的运算符和函数包括以下方面(这里只做简单的总结,可参见SQL 部分的例子):

* 算术运算:加(+)、减(?)、乘(*)、除(/)、指数(**)。

* 关系运算:小于(<)、小于等于(<=)、大于(>)、大于等于(>=)、等于(=)、不等于(!=或<>)。

* 字符运算:连接(||)。

* 逻辑运算:与(AND)、或(OR)、非(NOT)。

还有如下所示的特殊运算。

IS NULL:用来判断运算对象是否为空,为空则返回TRUE

LIKE:用来判断字符串是否与模式匹配

BETWEEN…AND…:判断值是否位于一个区间

IN(…):测试运算对象是否在一组值的列表中

IS NULL或IS NOT NULL用来判断运算对象的值是否为空,不能用“=”去判断。另外,对空值的运算也必须注意,对空值的算术和比较运算的结果都是空,但对空值可以进行连接运算,结果是另外一部分的字符串。例如:

NULL+5的结果为NULL。

NULL>5的结果为NULL。

NULL|| 'ABC' 的结果为'ABC'。

在PL/SQL中可以使用绝大部分Oracle函数,但是组函数(如AVG( )、MIN( )、MAX( )等)只能出现在SQL语句中,不能在其他语句中使用。还有GREATEST( )、LEAST( )也不能使用。类型转换在很多情况下是自动的,在不能进行自动类型转换的场合需要使用转换函数。

高中英语语法(虚拟语气)

Unit13虚拟语气专题讲解 【知识要点】 语气(mood)是一种动词形式,用以表示说话者的意图或态度。 英语有三种语气: *直陈语气(indicative mood)---- 事实 France lies to the east of England. *祈使语气(imperative mood)---- 请求、命令 Make yourself at home. *虚拟语气(subjunctive mood) If there were no air and water , we should not be able to live on the earth. 虚拟语气表示说话人的一种主观愿望或假想,所说的是一个条件而不一定是事实,或与事实相反。 一. 虚拟语气在if条件状语从句中的用法 假设类型条件从句谓语 动词形式 主语谓语 动词形式 与现在事实相反动词的过去式(be用were而不用was) should/ would /could/ might+动词原形 与过去事实相反had + 过去分词 should/ would/could /might + have+过去分词 与将来事实相反1.should+动词原形 2.动词过去式 3.were to+动词原形 should/ would/ could/ might +动词原形 1. 在错综条件句子中,虚拟条件从句和主句动作发生的时间不一致,因此,主句和从句的谓语动词应根据所指的时间选用适当的虚拟语气形式。 1)If I were you,I wouldn't have missed the film last night. 2)If he had followed the doctor's advice,he would recover already.(从句与过去事实相反,主句与现在事实相反。) 2、在if虚拟条件句中,有时可把连词省去,采用倒装语序把谓语动词were或助动词did,had,should 移到句 首构成非真实条件从句的另一种句型,其意思不变。 1)Had we time to spare,we would be glad to go to the park. 2)Were it not for the discovery of electricity,the modern world would experience great inconvenience. 3、有时假设的情况不用if引导虚拟条件从句来表述,而用介词(如without, but for等)引出的短语、分词 (如supposing等)引出的短语、并列连词(如or,otherwise,but,though等)、由动词suppose引出的祈使句或通过上下文的意思来表达。此时句中谓语动词仍采用虚拟语气的相应形式。 1)But for your advice,I would not be able to do this work. 2)Victor obviously doesn't know what's happened,otherwise he wouldn't have made such a stupid remark.。

表格基本语法

表格(TABLE)标记(TAGS) 表格的基本语法

...
- 定义表格 - 定义表行 - 定义表头 - 定义表元(表格的具体数据) 带边框的表格:
FoodDrinkSweet
ABC
不带边框的表格:
FoodDrinkSweet
ABC
Food Drink Sweet A B C 跨多行、多列的表元(Table Span) 跨多列的表元

Morning Menu
Food Drink Sweet
ABC
跨多行的表元
Morning Menu Food A
Drink B
Sweet C
表格尺寸设置 边框尺寸设置:
FoodDrinkSweet
ABC

Oracle基本语法

Oracle的历史 ?Oracle 公司( 甲骨文) 创始人: Larry Ellison 32岁,公司提供数据库服务. ?公司成立于1977 年, 83 年公司更名为Oracle ,原名为”软件开发实验室”. ?Oracle 数据库适用于大型企业 ?竞争对手 –微软的SQLServer –IBM 的DB2 ?目前的版本 – 2.0~7.0 , 8.0 , 8i , 9i , 10g Oracle的服务: 我的电脑右键选择管理--服务和应用程序—服务 -----是数据库或例程的系统标识符 ------是Oracle主目录名称 这几个服务之间的关系: 启动顺序:1、OracleTNSListener必须启动 2、OracleServer必须启动 3、OracleDBConsole启动依赖于OracleServer SqlPlus SqlPlus是Oracle任何版本都自带的数据库操作工具,使用它可以完成大部分的数据库操作。 SqlPlus可以“开始→程序→Oracle”启动,也可以命令行启动(互动) 1.命令行启动sqlPlus sqlplus 用户名/密码@orcl

或 sqlplus 用户名@orcl 如果用户是管理员要在sqlplus 用户名/密码@主机字符串as sysdba “/”是用户名和密码分隔符号 “@”是密码和数据库的分隔符号 “orcl”是数据库的名称,在安装时指定 常用命令(互动) connect 切换用户 show user 显示当前用户 set linesize 1000 设置行显示长度 set pagesize 1000 设置分页长度 desc dept 查看表结构 select table_name from user_tables 查询当前用户的表 / 运行上一条SQL语句 clear screen 清除屏幕 edit 编辑 spool d:/a 保存输出结果到某个位置 spool off 保存结束 quit 退出 list 查看最后一条语句 @ 文件名.sql 运行外部文件中的SQL语句

各种桥梁构造图解

各种桥梁构造图解 箱型梁桥:(xiang xing liang qiao) box-girder bridge 箱梁结构的基本概念在于全部上部结构变为整体的空心梁,而当主要荷载通过桥上的任何位置时,空心梁的所有各部分(梁肋,顶板和底板)作为整体同时参加受力。其结果可节省材料,成为薄壁结构,提高了抗扭强度。箱梁桥可分为单室,双室,多室几种。 组合梁桥:(zhu he liang qiao) composite beam bridge指以梁式桥跨作为基本结构的组合结构桥,既两种以上体系重叠后,整体结构的反力性质仍与以受弯作用负载的梁的特点相同。这类桥的特点主要表现在设计计算工作繁重,构造细节及内力复杂。 空腹拱桥:(kong fu gong qiao) open spandrel arch bridge 在拱桥拱圈上设置小拱,横墙或支柱来支撑桥面系,从而减轻桥梁恒载并增大桥梁泻水面积者称为空腹拱桥。 实腹拱桥:(shi fu gong qiao)filled spandrel arch bridge

在拱桥拱圈上腹部两侧填实土壤或粒料后铺装路面,这种拱桥称为实腹拱桥。小跨径的砖,石,混凝土拱常采用这种构造形式。 无铰拱桥:(wu jiao gong qiao)hingless arch bridge如图,在整个拱上不设铰,属外部三次超静定结构。由于无铰,结构整体钢度大,构造简单,施工方便,维护费用少,因此在实际中使用最广泛。但由于超静定次数高,温度变化,材料收缩,结构变形,特别是墩台位移会产生较大附加应力。 混凝土空腹无铰拱桥 三铰拱桥:(san jiao gong qiao)three-hinged arch bridge 如图,在拱桥的两个拱脚和拱的中间各设一铰称为三铰拱。属外部静定结构构。因而温度变化,支座沉陷等不会在拱内产生附加应力,故当地质条件不良,可以采用三铰拱,但铰的存在使其构造复杂,施工困难,维护费用高,而且减小了整体刚度降低了抗震能力,因此一般较少使用。 刀形上承式三铰拱桥(跨径90m) 两铰拱桥:(liang jiao gong qiao) two-hinged arch bridge 当拱桥的两个拱脚皆设为铰支座时称为两铰拱桥。属外部

Oracle基础知识大全,

课程目标: 1. 了解数据库系统在项目开发中的地位 2. 了解目前主流数据库系统 3. 熟练掌握查询命令 4. 熟练掌握数据操作方式 5. 熟练使用数据库内置函数 6. 掌握pl/sql程序设计语法结构 7. 掌握视图 8. 掌握存储过程 9. 掌握用户自定义函数 10. 掌握触发器 了解: 1.数据库组件: 1.1 实施应用集群 1.2 Oracle OLAP 1.3 数据挖掘 1.4 应用程序接口 1.5 网络组件 1.6 SQL Plus 1.7 企业管理器OEM

2. 几个版本间的差异: 2.1 增加了服务器参数文件SPFILE 2.2 使用了OMF免去了手工管理数据库文件的繁琐 2.3 支持多种数据库块大小 2.4 会话可以自动调整PGA的大小 2.5 引入了列表分区 课程内容: 1. 操作数据之前的准备工作: 1.1. 要保证有一个数据库: 1.2. 要保证创建一个表空间 create tablespace hbjr datafile 'E:\dbs\hbjr.dbf' size 100M; 1.3. 要创建一个用户,用户默认的表空间就是你创建的表空间 create user hbjr identified by orcl default tablespace hbjr; //授权限: grant dba to hbjr; 1.4. 用户/密码登录:

2. 表名/列字段名起名规范: 2.1 使用常规字母和数字 2.2 长度不要超过30 2.3 表名/列名不能重复 2.4 不能使用oracle的保留字 3. 数据类型 3.1 char:定长,存储单位--字节(bite) 3.2 varchar2:变长,存储单位--字节 3.3 nchar:定长,存储单位--字符 3.4 nvarchar2:变长,存储单位--字符 3.5 date:日期类型,7个字节,存储着--世纪,年,月,日,时,分,秒 3.6 timestamp:日期类型,11个字节,存储着--世纪,年,月,日,时,分,秒,毫秒 3.7 number:数据类型(数值类型) 3.8 clob:大字段类型,适合存储纯文本信息(例如:*.txt 文件)

高考英语二轮专题总复习 语法部分虚拟语气

2012届高考英语二轮专题总复习语法部分虚拟语气 表示说话人所说的话不是事实,而是一种假设、愿望、怀疑或推测。 虚拟语气在if条件从句中的使用 【观察】 If I were you, I would go to bed early tonight. 如果我是你,我今晚就会早点睡。If you took the bus, you would be late for the film. 如果你坐公车去看电影,那么你就会迟到。 If Jack had scored that goal, we would have won the football match. 如果杰克射进了那个球,我们就会赢得那场足球比赛。 If she hadn’t come, I might have been in trouble. 如果她没来,我可能已陷入困境了。 I could help you if you had difficulty in doing your homework. 如果你做作业有困难,我会帮助你的。 If it were to rain tomorrow, they would not go out. 如果明天下雨的话,他们就不会出去。 【归纳】 注意:若从句中的谓语动词是be动词的话,一律用were。 【实践】 1.If he my advice, he wouldn’t have lost his job. A. followed B. should follow C. had followed D. would follow 2. 翻译:如果我有足够的钱,我会周游世界。 If I had enough money, I would travel around the world. 翻译:如果明天见到他,我会邀请他到我家。 If I should see / were to see / saw him tomorrow, I would invite him to my house. 虚拟语气用于条件状语从句时,可以转换成下列形式: (1)省略if, 用“were, had, should + 主语”。如: Were she my daughter, I wouldn’t allow her to study abroad. 如果她是我女儿,我就不让她出国学习了。 Had I worked hard, I would have surely succeeded. 如果我当时努力学习的话,我肯定会成功的。 Should there be a meeting tomorrow, I would come. 如果明天有会议,我会来。 (2)含蓄条件句。虚拟语气句中不出现if 条件句,而是用介词、介词短语或连词通过上下文表现出来,这时须根据句子的含义判定是用虚拟现在式还是虚拟过去式。常见短语有:but for, without, otherwise, or 等。如:

高中英语语法-虚拟语气全总结

虚拟语气在非真实条件句中

①错综时间条件句: 当条件状语从句表示的行为和主句表示的行为所发生的时间不一致时,被称为错综时间条件句,动词的形式要根据它表示的时间作出相应的调整。如: If you had followed my advice just now, you would be better now. If you had studied hard before, you would be a college student now. ②if省略句 在条件句中可以省略if, 把were, had, should提到句首,变成倒装句式。如:If I were at school again, I would study harder. →Were I at school again, I would study harder. 如果我还有上学的机会,我会更加努力学习。 If you had come earlier, you would catch the bus. →Had you come earlier, you would catch the bus. 如果你来得早点,你就能赶上公共汽车。 If it should rain tomorrow, we would not go climbing. →Should it rain tomorrow, we would not go climbing. 如果明天下雨的话,我们就不能登山去了。 ③用介词代替条件状语从句 常用的介词有with, without, but for。如: What would you do with a million dollars? (=if you had a million dollars) 如果你有100万元,你会做什么? We couldn?t have finished the work ahead of time without your help. (=if we

ORACLE 11g SELECT 语句基础语法

一、SELECT语句基础语法 SELECT [ALL |DISTINCT TOP N [PERCENT] WITH TIES SELECT_LIST #SELECT 子句,用于指定由查询返回的列。 [INTO [new_table_name]] #INTO子句,将检索结果存储到新表或视图中。 FROM {table_name|view_name} [(optimizer_hints)],... #FROM子句,用于指定引用的表或视图,需指定多个表或视图,用“,”分开即可。[WHERE search_condition] #WHERE子句,用于指定限制返回的行的搜索条件,若无此子句,则默认表中的所有行都满足条件。 [GROUP BY group_by_expression] #GROUP BY子句,指定用来放置输出行的组,并且如果SELECT子句中