文档库 最新最全的文档下载
当前位置:文档库 › Oracle常用命令

Oracle常用命令

常用命令:

修改表
ALTER TABLE "EASYPLATS"."S_RESOURCE" MODIFY("URL" VARCHAR2(100))
ALTER TABLE "EASYPLATS"."CRD_ZCFZB" ADD ("QYXZ" VARCHAR2(100))
分组查询:
select count(pk),sum(icount) from (select a.fieldcode as pk,count(*) icount from s_tablefield a
group by a.fieldcode
having count(a.fieldcode) > 1);


ORACLEDRIVE = "oracle.jdbc.driver.OracleDriver"
ORACLEURL = "jdbc:oracle:thin:@192.168.20.144:1521:ora";

oracle9i oracle
. ./.profile
oemapp console
ora

首先看看listener是否启动
$ lsnrctl service
lsnrctl start
lsnrctl stop

sqlplus /nolog
connect /as sysdba
startup

sqlplus /nolog
connect /as sysdba
shutdown immediate
ftp://oracle@192.168.20.144/oracle


nls_lang不对 zh_CN american_america.ZHS16GBK

SQL> create user test3 identified by test;
User created.
SQL> grant connect,resource to test3;
SQL> conn easymis/easymis@ora;

大于1000的字符:用PrepareStatement的setCharacterStream方法
ALTER TABLE s_log_signon add "MEMO" VARCHAR (500);
ALTER TABLE s_log_signon drop COLUMN "MEMO";







0. 数据导入与导出:

C:\>exp db2admin/db2admin@bbspdb file=c:\1.dmp
C:\>imp db2admin/db2admin@bbspdb file=c:\\1.dmp full=y

1、数据库连接: conn easyoa/easyoa @orcl as sysdba
conn oracle/oracle @ora as sysdba
conn ora /as sysdba

2、显示当前连接用户
SQL> show user

3、查看系统拥有哪些用户
SQL> select * from all_users;

4、新建用户并授权
c:\sqlplus /nolgo;
SQL> conn tzjy/tzjy @bpm;

SQL> create user a identified by a;(默认建在SYSTEM表空间下)
SQL> grant connect,resource to a;

5、连接到新用户
SQL> conn a/a

6、查询当前用户下所有对象
SQL> select * from tab;

7、建立第一个表
SQL> create table a(a number);

8、查询表结构
SQL> desc a

9、插入新记录
SQL> insert into a values(1);

10、查询记录
SQL> select * from a;

11、更改记录
SQL> update a set a=2;

12、删除记录
SQL> delete from a;

13、回滚
SQL> roll;
SQL> rollback;

14、提交
SQL> commit;

15:查询日期 SELECT SYSDATE ,SYSDATE - 1 YESTERDAY ,SYSDATE + 1 TOMORROW from dual;

16:将字符转化成数字型等:To_Number("23")+1=24,To_Char(300[日期])=300,To_Date("2003-2-2")=2003-02-02

SELECT TO_CHAR(SYSDATE, 'DD-MON-RRRR HH24:MI:SS') FROM DUAL;
SELECT TO_CHAR(SYSDATE, 'RRRRMMDDHH24MISS') FROM DUAL;
SELECT TO_DATE('03-NOV-02', 'DD-MON-RR') FROM DUAL;

17:如 果 你 想 計 算 出 14 個 僱 員 的 平 均 佣 金 , 可 以 用 NVL 函 數 把 NULL 轉 成 0 :

SQL> SELECT AVG( NVL(COMM, 0) ) FROM EMP;

18:执行文件:@c:\\sys.sql;

19:查出重复记录
rowid是十六进制的,rowid可以转换为char型,char型也可转换为rowid型。
ROWIDTOCHAR(rowid), CHARTOROWID(char)
1: SQL> select rowid,bm,mc from a where a.rowid!=(select max(rowid) from a b where a.bm=b.bm and a.mc=b.mc);
2: select coun

t(*),code,name from table gruop by code,name having count(*) > 1;
3: Exception into子句

20:删除重复记录
SQL> delete from a a where a.rowid!=(select max(rowid) from a b where a.bm=b.bm and a.mc=b.mc);

21:查询行号:只能< 或 =1;
select rownum,name from test where rownum<3 order by name desc;

22:当主表字段值有从表引用时,主表和从表该字段值均不能改变;
create table fubiao
(id number not null,
namer char(5),
constraint fk_abcnamer foreign key(namer) references tzjy.test(NAME),
constraint pk_id primary key(id));

create table test(name char(5) not null,constraint pk_idabc primary key(name));

23:系统表:
TABALE comments: SYS.DBA_TAB_COMMENTS OWNER TABLE_NAME TABLE_TYPE(TALBE OR VIEW) COMMENTS
column comments: SYS.ALL_COL_COMMENTS OWNER TABLE_NAME COLUMN_NAME COMMENTS

24:约束:
CREATE TABLE policies
(policy_id NUMBER,
holder_name VARCHAR2(40),
gender VARCHAR2(1) constraint chk_gender CHECK (gender in ('M','F'),
marital_status VARCHAR2(1),
date_of_birth DATE,
constraint chk_marital CHECK (marital_status in('S','M','D','W'))
);

ALTER TABLE policies MODIFY holder_name NOT NULL

25:在查询ORALCE记录时,如何检查记录已经被另一用户锁定????
SQL> select s.sid,s.machine,o.object_name,l.oracle_username,l.locked_mode,
'ALTER SYSTEM KILL SESSION '''||s.sid||', '||s.serial#||''';'
from v$locked_object l,v$session s,all_objects o
where l.session_id=s.sid and l.object_id=o.object_id;

SELECT bb.sid , id1, id2, lmode, request, aa.type ,MACHINE,sql_text
FROM V$LOCK aa,V$session bb, v$sql cc
where aa.sid = bb.sid and bb.SQL_ADDRESS =cc.address and bb.sql_hash_value =cc.hash_value
ORDER BY id1,request
/

25.1 删除一张表:truncate table test;

26:解除锁定。alter system kill session 'sid,serial#';

27:查询数据库中的用户表。
select table_name,comments from SYS.DBA_TAB_COMMENTS where owner='TZJY' AND TABLE_NAME LIKE '%SYS_%';


数据库管理:

一、数据库对象
1. S Y S和S Y S T E M是每个O r a c l e数据库都缺省安装的两个帐户。
S Y S模式是所有内部数据库表、结构、供给包、过程等等的拥有者,它还拥有所有的V $和数据字典视图,并创建所有封装的数据库角色( D B A、C O N N E C T、R E S O U R C E等等)。S Y S是一个O r a c l e数据库的根用户或系统管理员;缺省口令是C H A N G E _ O N _ I N S TA L L。
S Y S T E M模式也是在数据库创建时安装的,是用于DBA 任务的缺省帐户。S Y S T E M也对 所有的数据库对象拥有完全的权限,而且许多第三方工具软件依赖于S Y S T E M模式的存在及 特权。SYSTEM 帐户的缺省口令是M A N A G E R。
ALTER USER××× IDENTIFIED BY VALUES '口令'命令
2. 初始化参数文件
i n i t . o r a是R D B M S主要的配置点,它是配置键码和数值的集合,每一个配置键码和

数值都控制或修改数据库和实例操作的某个方面。它是一个A S C I I文本文件,可以在U N I X服务器上的$ O R A C L E _ H O M E / d b s目录下和N T服务器上的$ O R A C L E _ H O M E / d a t a b a s e下找到它。默认条件下,文件的名字为i n i t S I D . o r a
3. 控制文件
是在数据库创建时创建的。大多数数据库可以操作多个控制文件。特定控制文件的创建是在i n i t . o r a参数C O N T R O L _ F I L E S中指定的,在C R E ATE DATA B A S 子句中指定的数据库创建参数存贮在这些文件中。
4. rowid
O r a c l e数据库必须能够唯一识别数据库中的每一行。Oracle RDBMS中用于这种任务的内部结构叫做R O W I D(行内部地址),这是存储数据库中每条记录行的物理位置的两字节数值。
5. oracle块
你能操作的最低级的数据库存贮就是O r a c l e块,是操作系统块如8K的整数倍。O r a c l e块的大小是指一次I / O过程中,RDBMS 从数据文件中读写的字节数、数据库对象大小和高速缓存中的块也是以O r a c l e块的形式设置的
二、用户对象:
每个数据文件被分配给一个表空间,并且拥有存储在那个表空间里的实际数据。
区间( e x t e n t)是一个存储单位,由一个或多个逻辑(就是说,在O r a c l e内)连续的O r a c l e块组成
表空间( t a b l e s p a c e)是一个数据结构,用于组合被相似地访问的数据。
数据库段(database segment)是贮存在数据库中的用户建立的对象。包括了组成模式的数据(表)和索引。还有临时段和回滚段。
三、实例
每个O r a c l e数据库都有一个实例与之相关,一个数据库被唯一的一个实例装载。
打开一个O r a c l e数据库包括以下三步:
1)创建一个O r a c l e实例(非安装阶段)。
2)由实例安装数据库(安装阶段)。
3)打开数据库(打开阶段)。
DBA的工作:
1)安装O r a c l e软件(R D B M S、网络、客户等等)。
2)编辑初始化参数文件( i n i t . o r a)。
3)创建O r a c l e实例。
4)创建O r a c l e数据库,包括系统表空间和重做日志。
5)创建数据字典(也就是运行c a t脚本)。
6)创建其余的表空间和回滚段。
7)创建表。
8)添加主键和唯一键(未使能)。
9)使能主键和唯一键(创建索引)。
1 0)增加外键(已使能)。
86计计第二部分分Oracle 7. x RDBMS
下载
11)创建外键索引和为其他适当的列创建索引。
1 2)增加检查约束和写适当的触发器。
1 3)编写适当的过程、函数和其他代码(也就是P r o * C)。

相关文档