Oracle常用SQL

持续更新中,争取少用Toad执行这些操作,多用命令行

 

创建表空间(初始大小1024M,自增100M)

CREATE TABLESPACE NNC_DATA01 DATAFILE

  'D:\ORACLE\PRODUCT\10.2.0\ORADATA\GORCLTABLESPACE\NNC_DATA04.DBF' SIZE 1024M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED

LOGGING

ONLINE

PERMANENT

EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K

BLOCKSIZE 8K

SEGMENT SPACE MANAGEMENT AUTO

FLASHBACK ON;

 

查询表空间

select file_name,tablespace_name from dba_data_files;

 

删除表空间

DROP TABLESPACE NNC_DATA01 INCLUDING CONTENTS AND DATAFILES;

 

创建用户(用户名hie,密码hie,使用的表空间EHRTBS)

create user HIE

  identified by "hie"

  default tablespace EHRTBS

  temporary tablespace TEMP

  profile DEFAULT;

-- Grant/Revoke role privileges

grant dba to HIE;

-- Grant/Revoke system privileges

grant unlimited tablespace to HIE;

 

 

建表

CREATE TABLE EHR_TEST.UE_XT_YHJS

(

  YHJSBID  VARCHAR2(32 BYTE)                    NOT NULL,

  JSMC     VARCHAR2(50 BYTE),

  JSBM     VARCHAR2(20 BYTE)

)

TABLESPACE NNC_DATA01----此表用NNC_DATA01表空间

PCTUSED    0

PCTFREE    10

INITRANS   1

MAXTRANS   255

STORAGE    (

            INITIAL          256K

            NEXT             256K

            MINEXTENTS       1

            MAXEXTENTS       UNLIMITED

            PCTINCREASE      0

            BUFFER_POOL      DEFAULT

           )

LOGGING

NOCOMPRESS

NOCACHE

NOPARALLEL

MONITORING;

 

COMMENT ON TABLE EHR_TEST.UE_XT_YHJS IS 'T_YHJS(用户角色)';

COMMENT ON COLUMN EHR_TEST.UE_XT_YHJS.YHJSBID IS '用户角色表ID';

COMMENT ON COLUMN EHR_TEST.UE_XT_YHJS.JSMC IS '角色名称1管理员2专业人员3行政人员';

COMMENT ON COLUMN EHR_TEST.UE_XT_YHJS.JSBM IS '角色编码';

 

建立索引

CREATE UNIQUE INDEX EHR_TEST.PK_UE_XT_YHJS ON EHR_TEST.UE_XT_YHJS

(YHJSBID)

LOGGING

TABLESPACE NNC_DATA01---索引用NNC_DATA01表空间

PCTFREE    10

INITRANS   2

MAXTRANS   255

STORAGE    (

            INITIAL          256K

            NEXT             256K

            MINEXTENTS       1

            MAXEXTENTS       UNLIMITED

            PCTINCREASE      0

            BUFFER_POOL      DEFAULT

           )

NOPARALLEL;

 

建立外键:

ALTER TABLE EHR_TEST.UE_YSJ_SJJ ADD (

  CONSTRAINT FK_UE_YSJ_S_REF_UE_YSJ_SJJFL

 FOREIGN KEY (SJJFL_ID)

 REFERENCES EHR_TEST.UE_YSJ_SJJFL (SJJFL_ID));

 

创建一样结构的表

create table b(b1,b2,b3) as select a1,a2,a3 from a where 1=2;

查看表空间使用情况:

select b.file_id  文件ID,

  b.tablespace_name  表空间,

  b.file_name     物理文件名,

  b.bytes       总字节数,

  (b.bytes-sum(nvl(a.bytes,0)))   已使用,

  sum(nvl(a.bytes,0))        剩余,

  sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分比

  from dba_free_space a,dba_data_files b

  where a.file_id=b.file_id

  group by b.tablespace_name,b.file_name,b.file_id,b.bytes

order by b.tablespace_name

 

向表中添加字段:

alter table alist_table add address varchar2(100);

 

修改字段大小和类型(只有当列值为空时,才可以缩小和修改类型)

alter table alist_table modify address varchar2(80);

 

基本导出和导入命令:

     exp dict_f/dict@ufida18 file=d:\dfsdfd.dmp owner=dict_f

     imp dict_f/dict@ufida18 ignore=y full=y file=d:\dict_f_dfmds.dmp

将数据库中system用户与sys用户的表导出:

exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)

将数据库中的表table1 、table2导出:

exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)

将数据库中的表table1中的字段filed1以"00"打头的数据导出:

exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like  '00%'\"

 

 

posted @ 2013-01-24 11:22  爱我所艾  阅读(376)  评论(0编辑  收藏  举报