1、基本语法
SELECT
from
WHERE
GROUP BY
HAVING
ORDER BY
SELECT:查询的字段
1、可用*表示所有字段。
2、字段之间用逗号分割。
3、可为字段起别名 其别名可写成SELECT AAAA。AA AS SS 或 AAAA。AA SS 可省略as
4、可直接写字段值:如 SELECT AAAA。AA SS,'张三' NAME from 。。。
from:查询的表名
1、表名间用逗号分割
2、可为表起别名 其别名可写成 from AAAA AS T 或 from AAAA T 可省略as
WHERE:查询条件
函数:
NVL
||
SYSDATE
3、连接
连接:左联(+)
自联、内联、外联
4、子查询:
5、合并数据:
UNION
UNION ALL
6、触发器:
例子1:插入主键
CREATE OR REPLACE TRIGGER AA_
BEFORE INSERT ON AA
FOR EACH ROW
DECLARE
BEGIN
SELECT AA_SEQ.NEXTVAL INTO :NEW.AA from DUAL;
END AA_;
例子2:
CREATE OR REPLACE TRIGGER ADDB2B_GHDWUSER
AFTER INSERT ON B2B_GHDWUSER FOR EACH ROW
DECLARE
V_MENUID B2B_GHJBMENU.MENUID%TYPE;
_MENUID VARCHAR2(20);
CURSOR INSERTUMENU IS
SELECT A.MENUID from B2B_GHJBMENU A,XTGHDW B
WHERE A.JNAM = B.JB AND B.DWBM= :NEW.GHDWBM;
......
C:\Documents and Settings\Administrator>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 10月 13 15:26:31 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL>
SQL> archive log list;
数据库日志模式 非存档模式
自动存档 禁用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 112
当前日志序列 114
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size &nbs ......
一,简单介绍
在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按
序列号排序的地方。
1、 create sequence
你首先要有create sequence或者create any sequence权限,
create sequence emp_sequence
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10; --预分配缓存大小为10
一旦定义了emp_sequence,你就可以用CURRVAL,NEXTVAL
CURRVAL=返回sequence的当前值
&nb ......
数据文件
每一个Oracle数据库都有一个或多个物理的数据文件,数据库信息(结构,数据)都保存在这些数据文件中,并且这些文件也只Oracle才能够解释与管理这些存储.Oracle数据文件具有以下一些特性:
1.一个数据文件仅仅关联一个数据库,数据文件与数据库之间对应关系是一对一关系,当然反过数据库与数据文件是一对多关系.
2.数据文件可以自动扩展,当数据存储需要更多存储空间时候,就是存储数据的数据随存储数据量增大,数据文件也可以自动增长,以满足数据存储需要.
3.一个或多个数据文件组成一个逻辑单元,称之为表空间.数据文件与表空间之间对应关系也是一对一关系,当然反过表空间与数据文件对应关系是一对多的关系.
存储在数据文件中的是可以读,当然这些数据是保存在Oracle数据库实例中特定的内存区域中,如果一个用户要读取数据库中一个表,这个用户是不能直接读取物理磁盘上的数据文件的,首先Oracle接受这个请求后,从造当位置(物理磁盘)上读取相应的数据到内存中,这个时候用户才可以看见数据.Oracle软件是解释Oracle存储与管理数据的.如果这个时候我们修改数据,这些数据是不会立即写到磁盘中的.要到特定时候才会写磁盘.频繁立即写会引I/O性能下降.
Orac ......
Oracle性能优化技巧
http://tech.it168.com/db/o/2006-06-15/200606151715426.shtml
1.选用适合的ORACLE优化器
ORACLE的优化器共有3种:
1.RULE(基于规则) 2.COST(基于成本) 3.CHOOSE(选择性)
设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在SQL句级或是会话(session)级对其进行覆盖.
为了使用基于成本的优化器(CBO, Cost-Based Optimizer) , 你必须经常运行analyze 命令,以增加数据库中的对象统计信息(object statistics)的准确性.
如果数据库的优化器模式设置为选择性(CHOOSE),那么实际的优化器模式将和是否运行过analyze命令有关. 如果table已经被analyze过, 优化器模式将自动成为CBO , 反之,数据库将采用RULE形式的优化器.
在缺省情况下,ORACLE采用CHOOSE优化器, 为了避免那些不必要的全表扫描(full table scan) , 你必须尽量避免使用CHOOSE优化器,而直接采用基于规则或者基于成本的优化器.
2.访问Table的方式
......
今天继续试验十分钟可以干什么,选取了对Oracle索引的介绍,结果如下:
从google上寻找资料:1:15秒。
阅读概述部分:3:15秒。
Oracle的索引主要包含两类:BTree和位图索引。默认情况下大多使用Btree索引,该索引就是通常所见 唯一索引、聚簇索引等等,Btree用在OLTP,加快查询速度。位图索引是Oracle的比较引人注目的地方,其主要用在OLAP(联机数据分析)方面,也就是数据仓库方面用到,目的是在加快查询速度是,节省存储空间。通常情况下,索引都要耗费比较大的存储空间,位图采用了压缩技术实现磁盘空间缩减。Btree用在高基数(即列的数据相异度大),位图用在低基数列。位图索引的基本原理是在索引中使用位图而不是列值。通常在事实表和维表的键之间有很低的集的势(cardinality),使用位图索引,存储更为有效,与B*Tree索引比较起来,只需要更少的存储空间,这样每次读取可以读到更多的记录,而且与B*Tree索引相比,位图索引将比较,连接和聚集都变成了位算术运算,大大减少了运行时间,从而得到性能上的极大的提升。
在Oracle中如何合理的使用位图索引?以下的几个事项应该考虑。
* 如果要使用位图索引,初始化参数STAR_TRANSFORMATION_ENABLED应该设置为TRUE.
......