Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1031500
  • 博文数量: 159
  • 博客积分: 3063
  • 博客等级: 中校
  • 技术积分: 2703
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-01 01:51
文章分类

全部博文(159)

文章存档

2013年(48)

2012年(111)

分类: Oracle

2012-04-19 00:34:47

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

创建表空间:
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 file=d:daochu.dmp full=y

2 将数据库中system用户与sys用户的表导出 
   exp file=d:daochu.dmp owner=(system,sys)

3 将数据库中的表inner_notify、notify_staff_relat导出 
   exp file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)   
           -
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出 
   exp file=d:daochu.dmp tables=(table1) query=\"where TDATE

注:当不导出行,不导出数据时用参数ROW=N,当导出含有多个条件的语句时用用”/  /”包含
数据导入
1:将D:daochu.dmp 中的数据导入 TEST数据库中。 
   imp file=d:daochu.dmp 
   imp full=y file=d:datanewsmgnt.dmp ignore=y 
2:将d:daochu.dmp中的表table1 导入 
   imp file=d:daochu.dmp tables=(table1)

阅读(1146) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~