Oracle使用手册

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基本介绍

1.列左对齐,字符右对齐。

2.包含空值的数学表达式的值都为空值

3.DESC[RIBE] +表明用在MANAGE中用来描述表结构。

SELECT 语句详解

ORACLE 中一个语句里面包含多个操作,这些操作并不是顺序执行的,因此,我们可以将Oracle语句拆分,逐步分析它的执行构成。下面以SELECT语句为例。

表1

表2

SELECT 语句由于执行顺序不同,因此对数据的处理方式不同。我们可以把他们分为单行操作符,多行操作符,表操作符。(不知道怎么称呼,姑且这么叫。)

表一中除了SELECT外的所有函数都是单行操作符,因此后面必须和单行数据使用。

表二中的函数+select是多行操作符,因此可以和单行数据,多行数据和分组函数一块儿使用。

ORDER BY 是对整个表进行操作,因此可以称为表操作符。

因此WHERE 后面不能加分组函数,多行数值。

由于SELECT 语句在执行过中有先后顺序,而且每一个函数都有相应的格式,因此SELECT 语句在写法上有一些要求。

如上表,在SELECT 语句中,子查询的优先级别最高因此,先调用子查询,子查询的执行顺序与一般查询一样,但是子查询的返回值被不同函数调用时,应根据函数要求返回不同的值。

如在WHERE 语句中返回单行值,如果有多行,用ANY, ALL函数一一拆分。

1.SELECT与句中先执行子查询,

2.在SELECT 语句顺序执行2.1 GROUP BY ,2.2HAVING和2.3分组函数将原表内容进行分区,浓缩。

由于使用的是原表,因此可以调用新表中没有出现的列。

GROUP BY DEPTNO HAVING AVG(SAL)>1000,是先按DEPTNO分组,再选择条件,条件中执行分组函数,因此HAVING 中可以有分组函数

3.执行SELECT语句,先执行3.1 join on WHERE逐条连接,进行条件删选,因此ON与WHERE

的条件可以互换位置。这样将两个表连接成一个表。

同样是调用原表,因此可以调用新表中没有出现的列。

然后执行SELECT

然后执行表函数ORDER BY 将表排序。

(最后将单行数据赋值:into。)

ORACLE单词及出处

调试权限:

GRANT DEBUG CONNECT SESSION TO SCOTT;

DDL 数据定义语句

用来定义数据库对象(SESSION 会话, TABLE,VIEW,SEQUENCE,INDEX,PROCEDUE, SYNONYM\USER)的语句。

包含CREATE, ALTER, DROP, COMMENT,TRUNCATE.

直接提交,不可回滚,在pl/sql块中要用动态SQL :EXECUTE IMMEDIATE表示。

如EXECUTE IMMEDIATE 'CREATE TABLE bonus1 (id NUMBER, amt NUMBER)';

CREATE创建

对数据库的对象创建

表和视图TABLE, VIEW

CREATE TABEL [CREATE OR REPLACE VIEW]表名(

列名数据类型DEFAULT 值constraint 名字约束类型,

CONSTRAINT 名字约束类型(类名));

用户USER

CREATE USER

IDENTIFIED BY PASSWORDS;

序列SEQUENCE

CREATE SEQUENCE 序名

INCREMENT BY 跳跃值

START WITH初始值

MAXVALUE 最大值

NOCACHE/CACHE 存入内存数

NOCYCLE/CYCLE 是否循环

索引INDEX

CREATE INDEX ON 表名(列名,可以多列)

过程PROCEDUE

CREATE PROCEDUE 过程名(参数)**参数在定义时不能指定长度。

IS \AS

定义内容;

BEGIN

执行块;

END;

同义词SYNONYM

CREATE SYNONYM FOR 对象名。

ALTER修改

对数据库的对象进行修改,包括增加列,删除列,改名列,修改类中的数据类型。ALTER TABLE 表名ADD\DROP\RENAME\MODIFY COLUMN;

ALTER 也可以对用户进行修改

ALTER USER

IDENTIFIED BY NEW PASSWORD;

FUNCTION 函数。

单行函数只对表的一行数据进行数据操纵,返回一个值的语句

字符函数UPPER/ LOWER/ INT(ION)CAP(字符串)

CONCAT(字符A,字符B)等价于字符A||字符B :连接

SUBSTR(CHAR A,NUM M,NUM N):截取B如果不写默认为

返回从A中截取索引从M到N的字符串

** 在ORACLE中索引从1开始,且前后都是闭区间。

LENGTH(字符串A)返回字符串A的长度

INSTR(CHAR A,CHAR B [,NUM M,NUM N])后面两个默认为1。

返回从A中从左边第M个字符开始索引B字符在A中出现的第N次的索引。

LPAD | RPAD左|右填充(CHAR A,NUM M,CHAR B)

返回:填充了M长度字符,长度不足则用B补充,长度长了截取。

TRIM(CHAR A FROM CHAR B)||(字符:表示修剪空格):修剪

TRIM从两端开始连续修剪B直到下个不是A。

RTRIM(CHAR A,CHAR B)从右边连续修剪A直到下个不是B,不写默认是空格。

单个字符有效

LTRIM(CHAR A,CHAR B)从左边连续修剪A直到下个不是B,不写默认是空格。

单个字符有效

REPLACE(CHAR A,CHAR B,CHRA C):在A中将B替换成C **全部替换TRANSLATE (CHAR A,CHAR B,CHRA C):变换

将A的B每一个字符换成相应的C的索引相同的字符,C如果没有相应的,用NULL代替。数字函数

ROUND (数字M,整数N) :将M在小数点后N位处四舍五入

TRUNC (数字M,整数N):将M在小数点后N位处截短

N=小数点后第几位,如果N是复数,代表小数点左边相应的位数。

相关文档
最新文档