现在的位置: 首页 > 综合 > 正文

ORACLE常用命令整理

2014年08月29日 ⁄ 综合 ⁄ 共 4180字 ⁄ 字号 评论关闭

一、创建、删除、修改、添加

    创建表空间:

    CREATE  TABLESPACE finchinafcdd

    DATAFILE '\oracle\product\10.2.0\oradata\orcl\finchinafcdd.DBF'

    SIZE 50M

    AUTOEXTEND ON

    NEXT 100M MAXSIZE 2000M(UNLIMITED)

    LOGGING

    EXTENT MANAGEMENT LOCAL

    UNIFORM SIZE 128K       #指定区尺寸为128k,如不指定,区尺寸默认为64k

    SEGMENT SPACE MANAGEMENT AUTO;

    删除表空间

    DROP TABLESPACE finchinafcdd INCLUDING CONTENTS AND DATAFILES;

    更改表空间表名

    ALTER TABLESPACE finchinafcdd RENAME to newfinchinafcdd;

    创建 用户 :

    CREATE USER finchina IDENTIFIED BY password

    DEFAULT TABLESPACE finchinafcdd;

    ACCOUNT UNLOCK

    用户授予/删除权限:

    GRANT CONNECT,RESOURCE,DBA,UNLIMITED TABLESPACE TO finchina;

    REVOKE CONNECT,RESOURCE,DBA,UNLIMITED TABLESPACE FROM finchina;

    更改用户默认表空间:

    ALTER USER finchina DEFAULT TABLESPACE finchinafcdd;

    删除用户:

    DROP USER finchina CASCADE;

    设置表空间无限配额:

    ALTER USER test QUOTA UNLIMITED ON finchinafcdd;

    设置用户对其他system表空间的配额为0:

    ALTER USER test QUOTA 0 on system

    移动表至另一表空间

    ALTER TABLE tbname MOVE TABLESPACE finchinafcdd

    增加数据文件

    ALTER TABLESPACE TEST

    ADD DATAFILE 'D:\oracle\product\10.2.0\oradataTEST02.dbf' SIZE 1000M;

    手动增加数据文件尺寸

    ALTER DATABASE DATAFILE 'D:\oracle\product\10.2.0\oradataTEST.dbf'

    RESIZE 4000M;

    设定数据文件自动扩展

    ALTER DATABASE DATAFILE 'D:\oracle\product\10.2.0\oradataTEST.dbf

    AUTOEXTEND ON

    NEXT 100M MAXSIZE UNLIMITED;

    添加单列:

    ALTER TABLE 表名 ADD 列名 数据类型

    添加多列:

    ALTER TABLE 表名 ADD ( 列名1 数据类型1,列名2 数据类型2)

    修改单列数据类型:

    ALTER TABLE 表名 MODIFY 列名 数据类型

    同时修改多列数据类型:

    ALTER TABLE 表名 MODIFY ( 列名1 数据类型1,列名2 数据类型2)

    删除单列:

    ALTER TABLE 表名 DROP COLUMN 列名

    删除多列:

    ALTER TABLE 表名 DROP (列名1,列名2)

    同时添加和修改多列:

    ALTER TABLE 表名 ADD ( 列名1 数据类型1,列名2 数据类型2) MODIFY ( 列名3 数据类型3,列名4 数据类型4)

二、数据查询

    desc table 表名;                                   #查看表结构

    SELECT *( TABLE_NAME) FROM USER_TABLES;                 #查询当前用户所有*/表

    SELECT USERNAME,DEFAULT_TABLESPACE FROM DBA_USERS;  #查询表空间

    SELECT * FROM USER_USERS;     #查询当前用户默认表空间

    SELECT *( TABLESPACE_NAME) FROM USER_TABLESPACES;   #查询所有用户*/表空间

    SELECT * FROM ALL_USERS                                          #查询所有用户

    DESCRIBE  表名

    SELECT * FROM V$VERSION;                                              #查询ORACLE版本

    select userenv('language') from dual

    select * from v$nls_parameters;                                 #查询ORACLE编码

    SELECT * FROM SESSION_PRIVS;                                      #查看用户所具有的系统权限

    SELECT * FROM USER_ROLE_PRIVS;                                 #查看用户所拥有的角色:

    select * from role_sys_privs;                                    #查看角色所拥有的权限

    desc table 表名;                                   #查看表结构

    SELECT *( TABLE_NAME) FROM USER_TABLES;                 #查询当前用户所有*/表

    SELECT USERNAME,DEFAULT_TABLESPACE FROM DBA_USERS;  #查询表空间

    SELECT * FROM USER_USERS; #查询当前用户默认表空间

    SELECT *( TABLESPACE_NAME) FROM USER_TABLESPACES; #查询所有用户*/表空间

    SELECT * FROM ALL_USERS                                           #查询所有用户

    DESCRIBE  表名

    SELECT * FROM V$VERSION;                                               #查询ORACLE版本

    select userenv('language') from dual                       #查询ORACLE编码

    select * from v$nls_parameters;

    SELECT * FROM SESSION_PRIVS;                             #查看用户所具有的系统权限

    SELECT * FROM USER_ROLE_PRIVS;                          #查看用户所拥有的角色:

    select * from role_sys_privs;                            #查看角色所拥有的权限

    GBK代码集下:一个中文占2个字节;UTF-8代码集下:一个中文占3个字节。

    一个英文字符对应于一个字节,而一个中文字符则可能对应于两个字节。总之,字节与字符不是一一对应的

    datalength:返回任何表达式所占用的字节数。 对 varchar、varbinary、text、image、nvarchar 和 ntext 数据类型特别有用,因为这些数据类型可以存储可变长度数据。

    以下示例查找 publishers 表中 pub_name 列的长度。

    USE pubs

    GO

    SELECT length = DATALENGTH(pub_name), pub_name

    FROM publishers

    ORDER BY pub_name

    GO

    三、数据导出、导入

    数据导出:

    1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中

    exp system/manager@TEST file=d:daochu.dmp full=y

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

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

    3 将数据库中的表inner_notify、notify_staff_relat导出

    exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)

    -

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

    exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=\"where TDATE<date'2011-11-01'\"

    注:当不导出行,不导出数据时用参数ROW=N,当导出含有多个条件的语句时用用”/  /”包含

    数据导入

    1:将D:daochu.dmp 中的数据导入 TEST数据库中。

    imp system/manager@TEST file=d:daochu.dmp

    imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y

    2:将d:daochu.dmp中的表table1 导入

    imp system/manager@TEST file=d:daochu.dmp tables=(table1)

 

抱歉!评论已关闭.