分类: 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导出 注:当不导出行,不导出数据时用参数ROW=N,当导出含有多个条件的语句时用用”/ /”包含
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
数据导入
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)