当前位置:文档之家› oracle PLSQL 语法详细手册

oracle PLSQL 语法详细手册

oracle PLSQL 语法详细手册
oracle PLSQL 语法详细手册

SQL PL/SQL语法手册

目录

第一部分SQL语法部分.............................................................................................................. 错误!未定义书签。

一、CREATE TABLE语句 ..................................................................................... 错误!未定义书签。

二、CREATE SEQUENCE语句.............................................................................. 错误!未定义书签。

三、CREATE VIEW语句......................................................................................... 错误!未定义书签。

四、INSERT语句:..................................................................................................... 错误!未定义书签。

五、UPDATE语句:................................................................................................... 错误!未定义书签。

六、DELETE语句:.................................................................................................... 错误!未定义书签。

七、TRUNCATE语句: ............................................................................................. 错误!未定义书签。

八、各类FUNCTIONS:............................................................................................ 错误!未定义书签。

1. 转换函数: ...................................................................................................... 错误!未定义书签。

2. 日期函数........................................................................................................ 错误!未定义书签。

3. 字符函数........................................................................................................ 错误!未定义书签。

4. 数值函数........................................................................................................ 错误!未定义书签。

5. 单行函数: ...................................................................................................... 错误!未定义书签。

6. 多行函数........................................................................................................ 错误!未定义书签。第二部分PL/SQL语法部分........................................................................................................ 错误!未定义书签。

一、PL/SQL语言简介.............................................................................................. 错误!未定义书签。

二、变量说明............................................................................................................. 错误!未定义书签。

三、PL/SQL控制程序流 ......................................................................................... 错误!未定义书签。

四、存储过程............................................................................................................. 错误!未定义书签。

五、存储函数............................................................................................................. 错误!未定义书签。

六、PACKAGE........................................................................................................... 错误!未定义书签。

七、触发器 ................................................................................................................. 错误!未定义书签。

八、应用实例............................................................................................................. 错误!未定义书签。

第一部分SQL语法部分

一、Create table 语句

语句: CREATE TABLE [schema.]table_name

( { column datatype [DEFAULT expr] [column_constraint] ...

| table_constraint}

[, { column datatype [DEFAULT expr] [column_constraint] ...

| table_constraint} ]...)

[ [PCTFREE integer] [PCTUSED integer]

[INITRANS integer] [MAXTRANS integer]

[TABLESPACE tablespace]

[STORAGE storage_clause]

[ RECOVERABLE | UNRECOVERABLE ]

[ PARALLEL ( [ DEGREE { integer | DEFAULT } ]

[ INSTANCES { integer | DEFAULT } ]

)

| NOPARALLEL ]

[ CACHE | NOCACHE ]

| [CLUSTER cluster (column [, column]...)] ]

[ ENABLE enable_clause

| DISABLE disable_clause ] ...

[AS subquery]

表是Oracle中最重要的数据库对象,表存储一些相似的数据集合,这些数据描述成若干列或字段.create table 语句的基本形式用来在数据库中创建容纳数据行的表.create table 语句的简单形式接收表名,列名,列数据类型和大小.除了列名和描述外,还可以指定约束条件,存储参数和该表是否是个cluster的一部分.

Schema 用来指定所建表的owner,如不指定则为当前登录的用户.

Table_name 用来指定所创建的表名,最长为30个字符,但不可以数字开头(可为下划线),但不可同其它对象或Oracle的保留字冲突.

Column 用来指定表中的列名,最多254个.

Datatype 用来指定列中存储什么类型的数据,并保证只有有效的数据才可以输入.

column_constraint 用来指定列约束,如某一列不可为空,则可指定为not null.

table_constraint 用来指定表约束,如表的主键,外键等.

Pctfree 用来指定表中数据增长而在Oracle块中预留的空间. DEFAULT为10%,也就是说该表的每个块只能使用90%,10%给数据行的增大时使用.

Pctused 用来指定一个水平线,当块中使用的空间低于该水平线时才可以向该中加入新数据行.

Parallel 用来指定为加速该表的全表扫描可以使用的并行查询进程个数.

Cache 用来指定该表为最应该缓存在SGA数据库缓冲池中的候选项.

Cluster 用来指定该表所存储的cluster.

Tablespace 用来指定用数据库的那个分区来存储该表的数据.

Recoverable|Unrecoverable 用来决定是否把对本表数据所作的变动写入Redo 文件.以恢复对数据的操作.

As 当不指定表的各列时,可利用As子句的查询结果来产生数据库结构和数据.

例:

1) create table mytab1e(mydec decimal,

myint inteter)

tablespace user_data

pctfree 5

pctused 30;

2) create table mytable2

as ( select * from mytable1);

二、create sequence语句

语句: CREATE SEQUENCE [schema.]sequence_name

[INCREMENT BY integer]

[START WITH integer]

[MAXVALUE integer | NOMAXVALUE]

[MINVALUE integer | NOMINVALUE]

[CYCLE | NOCYCLE]

[CACHE integer | NOCACHE]

[ORDER | NOORDER]

序列用来为表的主键生成唯一的序列值.

Increment by 指定序列值每次增长的值

Start with 指定序列的第一个值

Maxvalue 指定产生的序列的最大值

Minvalue 指定产生的序列的最小值

Cycle 指定当序列值逵到最大或最小值时,该序列是否循环.

Cache 指定序列生成器一次缓存的值的个数

Order 指定序列中的数值是否按访问顺序排序.

例:

1) create sequence myseq

increment by 4

start with 50

maxvalue 60

minvalue 50

cycle

cache 3;

2)

sql> create sequence new_s;

sql>insert into new (new_id,last_name,first_name)

values(new_s.nextval,’daur’,’permit’);

三、create view语句

语句: CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW [schema.]view_name

[(alias [,alias]...)]

AS subquery

[WITH CHECK OPTION [CONSTRAINT constraint]]

视图实际上是存储在数据库上旳select语句.每次在sql语句中使用视图时,表示该视图的select语句就用来得到需要的数据.

Or replace 创建视图时如果视图已存在,有此选项,新视图会覆盖旧的

视图.

Force 如有此选项,当视图基于的表不存在或在该模式中没有创建视图的权限

时,也可以建立视图.

As subquery 产生视图的select查询语句

With check option 如果视图是基于单表的且表中所有的非空列都包含在视图中

时,该视图可用于insert和update语句中,本选项保证在每次插入或更新数据后,该数据可以在视图中查到

例:

1)create or place view new_v

as

select substr(d.d_last_name,1,3),

d.d_lastname,d.d_firstname,b.b_start_date,b.b_location

from new1 d,

new2 b

where d.d_lastname=b.b_lastname;

四、INSERT语句:

1.语法

INSERT INTO [schema.]{table | view | subquery }[@dblink]

[ (column [, column] ...) ]

{VALUES (expr [, expr] ...) | subquery}

[WHERE condition]

2.插入单行

使用VALUES关键词为新行的每一列指定一个值.如果不知道某列的值,可以使用NULL关键词将其值设为空值(两个连续的逗号也可以表示空值,也可使用NULL关键词)

插入一行时试图为那些NOT NULL的列提供一个NULL值,会返回错误信息.

举例:

插入一条记录到DEPARTMENT表中

INSERT INTO DEPARTMENT

(DEPARTMENT_ID,NAME,LOCATION_ID)

VALUES (01,’COMPUTER’,167)

3.插入多行

将SELECT语句检索出来的所有数据行都插入到表中.这条语句通常在从一个表向另一个表快速复制数据行.

举例:

INSERT INTO ORDER_TEMP

SELECT A.ORDER_ID,B.ITEM_ID,https://www.doczj.com/doc/cb8084845.html,,E.FIRST_NAME||'.'||https://www.doczj.com/doc/cb8084845.html,ST_NAME,

A.ORDER_DATE,A.SHIP_DATE,D.DESCRIPTION,

B.ACTUAL_PRICE,

B.QUANTITY,B.TOTAL

FROM SALES_ORDER A, ITEM B, CUSTOMER C,

PRODUCT D, EMPLOYEE E

WHERE MONTHS_BETWEEN(TO_DATE(A.ORDER_DATE),TO_DATE('01-7月

-91'))>0

AND A.CUSTOMER_ID=C.CUSTOMER_ID

AND C.SALESPERSON_ID=E.EMPLOYEE_ID

AND A.ORDER_ID=B.ORDER_ID

AND B.PRODUCT_ID=D.PRODUCT_ID

4.从其它表复制数据:

要快速地从一个表向另一个尚不存在的表复制数据,可以使用CREATE TABLE语句定义该表并同时将SELECT语句检索的结果复制到新表中.

CREATE TABLE EMPLOYEE_COPY

AS

SELECT *

FROM EMPLOYEE

1.语法

UPDATE [schema.]{table | view | subquery}[@dblink] [alias]

SET { (column [, column] ...) = (subquery)

| column = { expr | (subquery) } }

[, { (column [, column] ...) = (subquery)

| column = { expr | (subquery) } } ] ...

[WHERE condition]

UPDATE语句更新所有满足WHERE子句条件的数据行.同样,该语句可以用SELECT语句检索得到.但SELECT必须只检索到一行数据值.否则报错.而且每更新一行数据,均要执行一次SELECT语句.

举例:

UPDATE EMPLOYEE_COP

SET SALARY=

SALARY-400

WHERE TO_NUMBER(TO_CHAR(HIRE_DATE,'YYMMDD'))<850101

UPDATE ITEM_COP A

SET A.ACTUAL_PRICE=

(

SELECT B.LIST_PRICE

FROM PRICE B,SALES_ORDER C

WHERE A.PRODUCT_ID=B.PRODUCT_ID AND

A.ORDER_ID=C.ORDER_ID AND

TO_NUMBER(TO_CHAR(C.ORDER_DATE,'YYYYMMDD')) BETWEEN

TO_NUMBER(TO_CHAR(B.START_DATE,'YYYYMMDD')) AND

NVL(TO_NUMBER(TO_CHAR(END_DATE,'YYYYMMDD')),29991231)

)

1.语法

DELETE [FROM] [schema.]{table | view}[@dblink] [alias] [WHERE condition]

DELETE语句删除所有满足WHERE子句条件的数据行.

举例:

DELETE FROM item

WHERE ORDER_ID=510

七、TRUNCATE语句:

1.语法

TRUNCATE [schema.]table

八、各类Functions:

1.转换函数:

1.1. 函數:TO_CHAR

语法:

TO_CHAR(number[,format])

用途:

将一个数值转换成与之等价的字符串.如果不指定格式,将转换成最简单的字符串形式.如果为负数就在前面加一个减号.

Oracle为数值提供了很多格式,下表列出了部分可接受的格式:

语法:

TO_CHAR(date[,format])

用途:

将按format参数指定的格式将日期值转换成相应的字符串形式.同样,Oracle提供许多的格式模型,用户可以用它们的组合来表示最终的输出格式.唯一限制就是最终的掩码不能超过22个字符.下表列出了部分日期格式化元素.

Oracle为数值提供了很多格式,下表列出了部分可接受的格式:

语法:

TO_DATE(string,format)

用途:

根据给定的格式将一个字符串转换成Oracle的日期值.

该函数的主要用途是用来验证输入的日期值.在应用程序中,用户必须验证输入日期是否有效,如月份是否在1~12之间和日期中的天数是否在指定月份的天数内.

1.4. 函數:TO_NUMBER

语法:

TO_NUMBER(string[,format])

用途:

该函数将一个字符串转换成相应的数值.对于简单的字符串转换数值(例如几位数字加上小数点).格式是可选的.

2.日期函数

2.1. 函數:ADD_MONTHS

语法:

ADD_MONTHS(date,number)

用途:

在日期date上加指定的月数,返回一个新日期.如果给定为负数,返回值为日期date之前几个月的日期.number应当是个整数,如果是小数,正数被截为小于该数的最大整数,负数被截为大于该数的最小整数.

例如:

SELECT TO_CHAR(ADD_MONTHS(sysdate,1),

'DD-MON-YYYY') "Next month"

FROM dual

Next month

-----------

19-FEB-2000

2.2. 函數:LAST_DAY

语法:

LAST_DAY(date)

用途:

返回日期date所在月份的最后一天的日期.

例如:

SELECT SYSDATE, LAST_DAY(SYSDATE) "Last",

LAST_DAY(SYSDATE) - SYSDATE "Days Left"

FROM DUAL

SYSDATE Last Days Left

--------- --------- ----------

19-JAN-00 31-JAN-00 12

2.3. 函數:MONTHS_BETWEEN

语法:

MONTHS_BETWEEN(date1,date2)

用途:

返回两个日期之间的月份.如果两个日期月份内的天数相同(或者都是某个月的最后一天),返回值是整数.否则,返回值是小数,每于1/31月来计算月中剩余天数.如果第二个日期比第一个日期还早,则返回值是负数.

例如:

SELECT MONTHS_BETWEEN(TO_DATE('02-02-1992', 'MM-DD-YYYY'),

TO_DATE('01-01-1992', 'MM-DD-YYYY'))

"Months"

FROM DUAL

Months

----------

1.03225806

SELECT MONTHS_BETWEEN(TO_DATE('02-29-1992', 'MM-DD-YYYY'),

TO_DATE('01-31-1992', 'MM-DD-YYYY'))

"Months"

FROM DUAL

Months

----------

1

2.4. 函數:NEXT_DAY

语法:

NEXT_DAY(date,day)

用途:

该函数返回日期date指定若天后的日期.注意:参数day必须为星期,可以星期几的英文完整拼写,或前三个字母缩写,或数字1,2,3,4,5,6,7分别表示星期日到星期六.例如,查询返回本月最后一个星期五的日期.

例如:

SELECT NEXT_DAY((last_day(sysdate)-7),'FRIDAY')

FROM dual

NEXT_DAY(

---------

28-JAN-00

2.5. 函數:ROUND

语法:

NEXT_DAY(date[,format])

用途:

该函数把一个日期四舍五入到最接近格式元素指定的形式.如果省略format,只返回date 的日期部分.例如,如果想把时间(24/01/00 14:58:41)四舍五入到最近的小时.下表显示了所有可用格式元素对日期的影响.

例如:

SELECT to_char(ROUND(sysdate,'HH'),'DD-MON-YY HH24:MI:SS')

FROM dual

TO_CHAR(ROUND(SYSDATE,'HH'),'DD-MON-YYHH24:MI:SS')

-----------------------------------------------------------------

24-JAN-00 15:00:00

2.6. 函數:TRUNC

语法:

TRUNC(date[,format])

用途:

TRUNC函数与ROUND很相似,它根据指定的格式掩码元素,只返回输入日期用户所关心的那部分,与ROUND有所不同,它删除更精确的时间部分,而不是将其四舍五入.

例如:

SELECT TRUNC(sysdate)

FROM dual

TRUNC(SYS

---------

24-JAN-00

FLOOR函数:求两个日期之间的天数用;

select floor(sysdate - to_date('20080805','yyyymmdd')) from dual;

3.字符函数

3.1. 函數:ASCII

语法:

ASCII(character)

用途:

返回指定字符的ASCII码值.如果为字符串时,返回第一个字符的ASCII码值.

例如:

SELECT ASCII('Z')

FROM dual

ASCII('Z')

----------

90

3.2. 函數:CHR

语法:

CHR(number)

用途:

该函数执行ASCII函数的反操作,返回其ASCII码值等于数值number的字符.该函数通常用于向字符串中添加不可打印字符.

例如:

SELECT CHR(65)||'BCDEF'

FROM dual

CHR(65

------

ABCDEF

ORACLE常用SQL语句大全

ORACLE常用SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:/mssql7backup/MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not nul l],..) 根据已有的表创建新表: A:select * into table_new from table_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only<仅适用于Oracle> 5、说明:删除表 drop table tablename

6、说明:增加一个列,删除一个列 A:alter table tabname add column col type B:alter table tabname drop column colname 注:DB2DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、添加主键: Alter table tabname add primary key(col) 删除主键: Alter table tabname drop primary key(col) 8、创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、创建视图:create view viewname as select statement 删除视图:drop view viewname 10、几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、几个高级查询运算词 A:UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 B:EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 C:INTERSECT 运算符 INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。 12、使用外连接

Oracle With 语句语法及示例

Oracle With 语句语法及示例 1、一个完整的Oracle With 语句实例: insert into sms_tmp_stop_circlenum_zsdx –将下面查询的结果插入到临时表中 WITH selectdata --Oracle With开始的查询语句 AS (SELECT TRUNC(createtime) senddate,agentid,srcnum, ROUND(SUM(CASE WHEN result='4' THEN 1 ELSE 0 END)/COUNT(*)*100,2) AS ratio FROM ZSDX_SMS_OTHERSEND_DETAILS WHERE agentid LIKE 'zsdx%' AND createtime>=TO_DATE('2010-12-30 00:00:00','yyyy-mm-dd hh24:mi:ss') AND createtime=100) )a1, (SELECT srcnum,ratio,senddate FROM selectdata WHERE ratio>=100) a2 WHERE a1.srcnum=a2.srcnum 2、详解: Starting in Oracle9i release 2 we see an incorporation of the SQL-99 "WITH clause", a tool for materializing subqueries to save Oracle from having to re-compute them multiple times. The SQL "WITH clause" is very similar to the use of Global temporary tables (GTT), a technique that is often used to improve query speed for complex subqueries. Here are some important notes about the Oracle "WITH clause": ? The SQL "WITH clause" only works on Oracle 9i release 2 and beyond. ? Formally, the "WITH clause" is called subquery factoring ? The SQL "WITH clause" is used when a subquery is executed multiple times ? Also useful for recursive queries (SQL-99, but not Oracle SQL) To keep it simple, the following example only references the aggregations once, where the SQL "WITH clause" is normally used when an aggregation is referenced multiple times in a query.

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语句

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 文件)

Oracle_基本建表语句

--创建用户 create user han identified by han default tablespace users Temporary TABLESPACE Temp; grant connect,resource,dba to han; //授予用户han开发人员的权利 --创建表 create table classes( id number(9) not null primary key, classname varchar2(40) not null) --查询表select * from classes; --删除表drop table students; --修改表的名称rename alist_table_copy to alist_table; --显示表结构 describe test --不对没查到 --增加列alter table test add address varchar2(40); --删除列alter table test drop column address; --修改列的名称alter table test modify address addresses varchar(40; --修改列的属性alter table test modi create table test1( id number(9) primary key not null, name varchar2(34) ) rename test2 to test; --创建自增的序列 create sequence class_seq increment by 1 start with 1 MAXVALUE 999999 NOCYCLE NOCACHE; select class_seq.currval from dual --插入数据insert into classes values(class_seq.nextval,'软件一班') commit; --更新数据update stu_account set username='aaa' where count_id=2; commit; --创建唯一索引create unique index username on stu_account(username); --唯一索引不能插入相同的数据

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子句中