我的Oracle技术笔记
2016-12-27 19:04
176 查看
ORACLE添加数据库连接的方法
在:{安装目录}\db_1\NETWORK\ADMIN下面
打开tnsnames.ora文件
添加类似于下面的字符串:
上面就添加了rdtest和WEBCB两个连接。
Oracle回收站功能,彻底删除表(purge recyclebin)
一、清除方法如下:
1、purge table origenal_tableName;
purge index origenal_indexName;
2、show recyclebin;
purge recyclebin;
二、查询垃圾信息:
select * from user_recyclebin;
三、删除表结构
drop table t_order_info
删除table不进入recycle的方法:
drop table tableName purge;
删除表结构,并且级联删除外键
drop table t_order_info cascade constraints;
flashback table t to before drop;
快速彻底的清空表:(相比delete而言,要高效)
truncate table order_info;
分享一下,如果你的数据库满了,清数据没效果,那就回收一下表空间吧!
alter table <tablename> enable row movement;
alter table <tablename> shrink space;
Oracle提供两者分页查询的方式,格式如下:
方式一:Select * from (select *,rownum rn from (select * from table_name) where rownum <= 40) t where t.rn > 20;
方式二:select * from (select * ,rownum rn from (select * from table_name) ) t where t.rn between 20 and 40;
这两种方式中第一种的效率比第二种的效率高,因为oracle有自带CBO基于成本的优化器,可以将第二层的查询查询条件推到内层查询条件中去,已提高内层查询的执行效率。
A=select rownum rn from (select * from user) where rownum<=40
select * from (A) t where t.rn>20;
可以理解为:
从自己表的副本中查询rownum<40的数据,并保存到视图A中,
并把rownum映射成rn(目的是在新视图A中使用一个与rownum不重名的字段)
然后在A表中查找rn>20的数据。
在数据库中建立表,并将相应查询返回的数据插入至新建表中。但查询相关表的索引、主键等不会复制到新建表中!
语法
CREATE table table_name as select query
示例:
备份整个订单表(表结果及数据)到order_back表
CREATE TABLE order_back as select * from order;
查看Oracle连接的session
select OSUSER,MACHINE,COMMAND,TERMINAL,ACTION,MODULE,LOGON_TIME from sys.v_$session where username='HUOLP'
常用Oracle语句
select name from v$tablespace;
select SEGMENT_NAME from dba_segments where TABLESPACE_NAME='ZOLLTY_IDX1' GROUP BY SEGMENT_NAME;
DROP TABLESPACE ZOLLTY_DAT INCLUDING CONTENTS AND DATAFILES;
create table admin_user(id
number(9) not null primary key,name varchar2(20) not null);
rename admin_user to myuser;
comment on table order is ‘订单表’;
增加列
alter table DCM_RULE add RULESCOPE VARCHAR2(18);
修改列
alter table DCM_RULE modify RULETYPE varchar2(18);
删除列
alter table EMP drop column user_name
alter table admin_user modify name varchar2(30);
alter table user rename to new_table_name;
alter table order add create_date;
alter table report_task modify serviceid varchar2(30);
grand insert on t_order_info to zollty;
revoke all on t_order_info from zollty;
create sequence T_ORDER-INFO_SEQ
minvalue 1000
maxvalue 9999
start with 1001
increment by 1
cache 20
cycle;
number(10,2) ---2位小数点
number(1) ---
number ---长度1~38
date
getTimeStamp
to_date('2012-8-21','yyyy-MM-dd')
yyyy-MM-dd HH:mm:ss--HH代表24小时制,hh代表12小时制
Oracle里面写作yyyy-MM-dd hh24:mm:ss
clob大对象形式存放(指针形式)
blob寸二进制对象,声音、图片
==============
substr(a,i,length)
concat(a,b,c..)
init(a)首字母大写
to_date
to_char
length(a)
nvl(a)空值函数
--nvl(name,'admin')--如果为空则返回admin
upper、lower(a)
round(a,i)
sum(a)
to_date
to_char
=====================
在:{安装目录}\db_1\NETWORK\ADMIN下面
打开tnsnames.ora文件
添加类似于下面的字符串:
Oracle回收站功能,彻底删除表(purge recyclebin)
一、清除方法如下:
1、purge table origenal_tableName;
purge index origenal_indexName;
2、show recyclebin;
purge recyclebin;
二、查询垃圾信息:
select * from user_recyclebin;
三、删除表结构
drop table t_order_info
删除table不进入recycle的方法:
drop table tableName purge;
删除表结构,并且级联删除外键
drop table t_order_info cascade constraints;
flashback table t to before drop;
快速彻底的清空表:(相比delete而言,要高效)
truncate table order_info;
分享一下,如果你的数据库满了,清数据没效果,那就回收一下表空间吧!
alter table <tablename> enable row movement;
alter table <tablename> shrink space;
Oracle提供两者分页查询的方式,格式如下:
方式一:Select * from (select *,rownum rn from (select * from table_name) where rownum <= 40) t where t.rn > 20;
方式二:select * from (select * ,rownum rn from (select * from table_name) ) t where t.rn between 20 and 40;
这两种方式中第一种的效率比第二种的效率高,因为oracle有自带CBO基于成本的优化器,可以将第二层的查询查询条件推到内层查询条件中去,已提高内层查询的执行效率。
A=select rownum rn from (select * from user) where rownum<=40
select * from (A) t where t.rn>20;
可以理解为:
从自己表的副本中查询rownum<40的数据,并保存到视图A中,
并把rownum映射成rn(目的是在新视图A中使用一个与rownum不重名的字段)
然后在A表中查找rn>20的数据。
在数据库中建立表,并将相应查询返回的数据插入至新建表中。但查询相关表的索引、主键等不会复制到新建表中!
语法
CREATE table table_name as select query
示例:
备份整个订单表(表结果及数据)到order_back表
CREATE TABLE order_back as select * from order;
查看Oracle连接的session
select OSUSER,MACHINE,COMMAND,TERMINAL,ACTION,MODULE,LOGON_TIME from sys.v_$session where username='HUOLP'
常用Oracle语句
select name from v$tablespace;
select SEGMENT_NAME from dba_segments where TABLESPACE_NAME='ZOLLTY_IDX1' GROUP BY SEGMENT_NAME;
DROP TABLESPACE ZOLLTY_DAT INCLUDING CONTENTS AND DATAFILES;
create table admin_user(id
number(9) not null primary key,name varchar2(20) not null);
rename admin_user to myuser;
comment on table order is ‘订单表’;
增加列
alter table DCM_RULE add RULESCOPE VARCHAR2(18);
修改列
alter table DCM_RULE modify RULETYPE varchar2(18);
删除列
alter table EMP drop column user_name
alter table admin_user modify name varchar2(30);
alter table user rename to new_table_name;
alter table order add create_date;
alter table report_task modify serviceid varchar2(30);
grand insert on t_order_info to zollty;
revoke all on t_order_info from zollty;
create sequence T_ORDER-INFO_SEQ
minvalue 1000
maxvalue 9999
start with 1001
increment by 1
cache 20
cycle;
number(10,2) ---2位小数点
number(1) ---
number ---长度1~38
date
getTimeStamp
to_date('2012-8-21','yyyy-MM-dd')
yyyy-MM-dd HH:mm:ss--HH代表24小时制,hh代表12小时制
Oracle里面写作yyyy-MM-dd hh24:mm:ss
clob大对象形式存放(指针形式)
blob寸二进制对象,声音、图片
==============
substr(a,i,length)
concat(a,b,c..)
init(a)首字母大写
to_date
to_char
length(a)
nvl(a)空值函数
--nvl(name,'admin')--如果为空则返回admin
upper、lower(a)
round(a,i)
sum(a)
to_date
to_char
=====================
相关文章推荐
- ORACLE DBA技术学习笔记续1
- 【我的技术我做主】oracle调优笔记(揭开传言的面纱) 推荐
- ORACLE DBA技术学习笔记
- Oracle闪回技术(笔记)
- Oracle核心技术 笔记(该书读得不仔细,需要找时间再细读~~)
- ORACLE DBA技术学习笔记续1
- Oracle核心技术 笔记(该书读得不细致,须要找时间再细读~~)
- Oracle 8i在GNU/Linux上的安装笔记
- 翻译的一个oracle技术文档小片段
- 一个Oracle的技术站点,8错的说
- Oracle笔记
- oracle分区技术在计费中的应用论证 (转载自ITPUB)
- oracle与WEB分页技术
- oracle笔记
- Oracle 学习笔记
- oracle 学习笔记之一---认识
- 从SQL SERVER 向ORACLE 8迁移的技术实现方案
- ORACLE性能诊断―学习statspack笔记(二)[概述]
- OracleDBA讲座笔记2--- oracle运行环境准备
- Oracle重要技术书籍:Effective Oracle Database 10g Security by Design