所有由csj555发布的文章

oracle中order by学习

一、
order by子句是对select语句查询后的结果集进行排序。按照desc降序,asc升序,默认为升序。

二、
order by子句后面可以跟列名、数字、随机函数。

1、列名
表示按照某个列来排序。

select ename, job from emp order by ename;

2、数字
数字作用和列名一样,指明了按照select列表中相应位置的列来排序。

select ename, job from emp order by 2;

如果数字超出了select后面列的数量,会报错:

ORA-01785: ORDER BY item must be the number of a SELECT-list expression

继续阅读oracle中order by学习

[转]oracle表空间的高水位线

oracle表段中的高水位线HWM

oracle在逻辑存储上分4个粒度:表空间,段,区和块。

块:是粒度最小的存储单位,oracle的块大小可以是8K~32K不等,包含标准磁盘上的一个或多个块。oracle每一次I/O操作也是按块来操作的,也就是说当oracle从数据文件读数据时,是读取多少个块,而不是多少行。每一个Block里可以包含多个row。

区:由一系列相邻的块而组成,这也是oracle空间分配的基本单位,举个例子来说,当我们创建一个表Dave时,首先oracle会分配一个区的空间给这个表,随着不断的insert数据到Dave,原来的这个区容不下插入的数据时,oracle是以区为单位进行扩展的,也就是说再分配多少个区给Dave,而不是多少个块。

段:是由一系列的区所组成,一般来说,当创建一个对象时(表,索引),就会分配一个段给这个对象。所以从某种意义上来说,段就是某种特定的数据。如:create table Dave,这个段就是数据段,而create index on Dave(NAME),oracle同样会分配一个段给这个索引,但这是一个索引段了。查询段的信息可以通过数据字典USER_SEGMENTS来获得。

表空间:包含段、区及块。表空间的数据物理上储存在其所在的数据文件中。一个数据库至少要有一个表空间。

在Oracle数据的存储中,可以把存储空间想象为一个水库,数据想象为水库中的水。水库中的水的位置有一条线叫做水位线,在Oracle中,这条线被称为高水位线(High-warter mark, HWM)。在数据库表刚建立的时候,由于没有任何数据,所以这个时候水位线是空的,也就是说HWM为最低值。当插入了数据以后,高水位线就会上涨,但是这里也有一个特性,就是如果你采用delete语句删除数据的话,数据虽然被删除了,但是高水位线却没有降低,还是你刚才删除数据以前那么高的水位。也就是说,这条高水位线在日常的增删操作中只会上涨,不会下跌。
继续阅读[转]oracle表空间的高水位线

推荐日影20150322

14年日影在推荐几部哈,《家路》、《想要拥抱你》、《魔女宅急便》、《她爱上了我的谎》。

《家路》

◎译  名 家路
◎片  名 劫后家园/Homeland
◎年  代 2014
◎地  区 日本
◎类  别 剧情
◎语  言 日语
◎字  幕 中文字幕
◎上映日期 2014-03-01(日本)
◎IMDB评分 7.0/10 from 33 users
◎视频尺寸 1280 x 720
◎文件大小 1.17 GiB
◎片  长 118 mins
◎导  演 久保田直
◎主  演 松山研一
      田中裕子
      安藤樱
      内野圣阳
      山中崇
      光石研
      田中要次
      石桥莲司

◎简  介
继续阅读推荐日影20150322

oracle数据库对象-表

数据库对象有:

视图
索引
序列
同义词
存储过程
函数
队列
触发器
程序包
目录
调度(JOB)
数据库链接(DB link)

表是数据库的基本存储单元。

1、创建表

create table 表名 (
列1 列的数据类型和长度,
列2 列的数据类型和长度,
...
列n 列的数据类型和长度
);

default选项
在列的数据类型和长度后面可以用default设定这列的默认值。
继续阅读oracle数据库对象-表

如何识别邪教性质的所谓“大师”

如果去一些佛教场所,会遇到有人在那里搞免费结缘的活动,送书、送光盘、送手册。

如何去分辨这些大师是否有邪教性质:
1、推崇的大师是否是寺庙在职人员?如果不是,此类人往往是什么会长、台长,连自己都没有遁入佛门的觉醒,如何去弘扬佛教。不专业而且可疑。

2、在百度贴吧上是否有大师的贴吧,如果提示“抱歉,根据相关法律法规和政策,本吧暂不开放。”那明显和国家政策有背,真正的佛教不会有政治目的。

3、大师是否有意让信徒捐钱。

4、大师是否说生病了不用去看,念经就能念好。

5、大师会不会开天眼之后让你去做什么事情。

6、大师会不会给信徒看风水、算命。

7、大师往往不在中国大陆出现,定居在加拿大、澳洲、美国。

如果满足(不限于)这些,肯定是邪教性质。

oracle完整性约束

完整性约束

一、oracle中对表有五种约束条件
非空(not null)
唯一(unique)
主键(primary key)
外键(foreign key)
check约束

NOT NULL:指定列不能包含空值。
UNIQUE:指定列的值或者列的组合的值对于表中所有的行必须是唯一的。
PRIMARY KEY:表的每行的唯一性标识。
FOREIGN KEY:在列和引用表的一个列之间建立并且强制一个外键关系。
CHECK:指定一个必须为真的条件。

二、约束命名
如果不自己给约束起一个名字,oracle会自动为约束命名,形如SYS_Cn(n为一个6位数字)。
给约束起一个名字,可以使约束引用起来更方便:

constraint 约束名字 约束类型

三、列级约束和表级约束
列级约束,指约束定义在字段后面。只涉及单个列,能够定义任何类型的约束。
表级约束,指约束定义在表的后面。涉及单个列或几个列的组合,能够定义除了not null以外的任何类型的约束。

not null
非空约束只能定义在列级。
继续阅读oracle完整性约束

oracle设置表的索引表空间

oracle中设置了索引后,索引本质也是存在一张表里的(索引表)。所以在为索引指定表空间时,不要将被索引的表和索引指向同一个表空间,这样可以避免产生IO冲突。使oracle能够并行访问存放在不同硬盘中的索引数据和表数据,提高查询速度。

准备工作:
我们有个用户hr2,数据表空间是users,临时表空间是temp,现在要指定索引表空间。

创建一个表空间文件:

create tablespace hr2_idx datafile '/u01/app/oracle/oradata/XE/hr2_idx.dbf' size 200m autoextend on next 32m maxsize 1024m extent management local;

hr2用户下有一个employees表:

select index_name, table_name, tablespace_name, uniqueness from user_indexes where table_name='EMPLOYEES';

INDEX_NAME		       TABLE_NAME		      TABLESPACE_NAME		     UNIQUENES
------------------------------ ------------------------------ ------------------------------ ---------
EMP_EMAIL_UK		       EMPLOYEES		      USERS			     UNIQUE
EMP_EMP_ID_PK		       EMPLOYEES		      USERS			     UNIQUE
EMP_DEPARTMENT_IX	       EMPLOYEES		      USERS			     NONUNIQUE
EMP_JOB_IX		       EMPLOYEES		      USERS			     NONUNIQUE
EMP_MANAGER_IX		       EMPLOYEES		      USERS			     NONUNIQUE
EMP_NAME_IX		       EMPLOYEES		      USERS			     NONUNIQUE


继续阅读oracle设置表的索引表空间

[转]oracle数据库类型简述

OLTP与OLAP简述

在通过DBCA来创建数据库的时候,一般会给你提供三种数据库模板(就是数据库类型):

一般用途:General Database

事务处理:Transaction Processing

数据仓库:Data Warehouse

定制数据库:Custom Database

下面就Ceneral Database,Transaction Processing,Data WareHouse,即一般用途,事务处理,数据仓库来分别比较说明:

事务处理的英文单词是Online Transaction Processing,简称OLTP,通常意义上是指那些短事务,高并发,读写频繁的数据库系统。数据仓库又被称为Online Analysis Processing,简称OLAP,是指那些长事务,低并发,多读而少写的数据库系统。

日常使用的系统一般是OLTP例如:银行系统、电子商务系统。并发量很大,事务执行时间短,用户的SQL往往可以重复使用。所以对于OLTP,非常看重内存缓存、SQL软解析、绑定变量,加快执行速度。

而OLAP模式,要读取的数据量巨大,一个表几十G或几百G?。此时内存的缓存已经没有用了(数据重用性不大),直接依赖磁盘的读写速度(磁盘阵列),还有使用分区技术和并行技术。

理论上说,oracle数据库中大多数参数在后期是可调的,但也有一些参数一旦创建后期无法调整,比如DB_BLOCK_SIZE,即块大小,在oracle数据库中是非常重要的一个参数,恰好这个参数在OLTP和OLAP两种类型应用中需求不一致,对于OLTP数据库,数据库常处于小数据量,频繁读写状态,对于这种系统一般不会将DB_BLOCK_SIZE设置太大,以免读写时I/O浪费;而对OLAP数据库,由于系统处于大量数据库的多读而少写状态,因此DB_BLOCK_SIZE设置较大,比如32K。也就是说两种数据库类型的某些层面从定义上是相对立的,如果你能确认你的数据库类型,可以选择Transaction Processing(事务处理)和Data Warehouse(数据仓库)。

至于General Databaes(一般用途)的选项,那是来唬外行的,绝对不建议选择,但是对于一些初学者来说可以试着玩玩,没什么问题的。不多对于业务类型不是特别清除的,想对oracle数据库有一定了解的建议选择Custom Database(定制数据库)来玩玩。

oracle expdp和impdp导出导入

expdp和impdp是oracle从10g开始新增加的导出、导入功能。名称叫数据泵。

expdp:Data Pump Export
impdp:Data Pump Import

一、expdp、impdp和exp、imp的区别

expdp、impdp:
1、可以导入导出单个或多个数据库、用户(schema)、表空间、表。
2、强大的数据过滤功能。
3、速度快。
4、不支持XMLType数据。

exp、imp:
1、支持XMLType数据。
2、不支持FLOAT和DOUBLE数据类型。
3、功能和数据泵类似,更推荐使用数据泵除非是XMLType数据。

二、导出导入方法
小实验:将hr用户数据导出,新建用户hr2,再导入新建用户。
继续阅读oracle expdp和impdp导出导入

oracle ex版用户简述

一、用户角色
DBA角色包含了对数据库的所有操作,除了startup和shutdown。SYSTEM用户就是这样的角色。
CONNECT和RESOURCE角色不建议使用。建议直接赋予指定的权限:

grant CREATE SESSION, ALTER SESSION, CREATE DATABASE LINK, -
CREATE MATERIALIZED VIEW, CREATE PROCEDURE, CREATE PUBLIC SYNONYM, -
CREATE ROLE, CREATE SEQUENCE, CREATE SYNONYM, CREATE TABLE, -
CREATE TRIGGER, CREATE TYPE, CREATE VIEW, UNLIMITED TABLESPACE -
to chris;

二、SYS和SYSTEM

SYSTEM
SYSTEM用户可以执行所有管理功能,除了关闭和启动数据库。

SYS
数据库数据字典所有的基本表和视图都是保存在SYS用户下,这些基本表和视图对oracle来说是极其重要的。
为了保持数据字典的完整性,SYS用户中的表需要有熟练经验的人使用,改数据字典表是有风险的一个动作。不要在SYS用户下创建个人的表。
所以日常操作建议不要登录为SYS,SYSTEM用户也可以完成所有DBA操作,除了关闭和启动数据库。
继续阅读oracle ex版用户简述