--导出数据 exp gridapp/gridapp@gxtest buffer=64000 file=D:\2012-8-16\gridapp.dmp log=D:\2012-8-16\gridapp.log owner=gridapp --导入数据 imp \"gridapp/gridapp as sysdba\" file=D:\2012-8-16\gridapp.dmp log=D:\2012-8-16\gridapp.log fromuser=gridapp touser=gridapp ignore=y --查看所有系统用户 select * from all_users; --- 查看所有DBA 用户 select * from dba_users; --- 删除用户 drop user GRIDAPP cascade; --- 查看所有表空间 select * from dba_tablespaces; --- 删除表空间 DROP TABLESPACE GRID_APP_DATA INCLUDING CONTENTS AND DATAFILES; --创建用户 create user gridapp identified by gridapp; --用户所需权限 grant CREATE SESSION,ALTER SESSION,UNLIMITED TABLESPACE ,CREATE TABLE ,DROP ANY TABLE ,CREATE CLUSTER ,CREATE SYNONYM ,CREATE VIEW ,DROP ANY VIEW ,CREATE SEQUENCE ,DROP ANY SEQUENCE ,CREATE PROCEDURE ,DROP ANY PROCEDURE ,EXECUTE ANY PROCEDURE ,CREATE TRIGGER ,DROP ANY TRIGGER ,CREATE TYPE ,CREATE OPERATOR ,CREATE INDEXTYPE ,SELECT ANY DICTIONARY ,DEBUG CONNECT SESSION ,DEBUG ANY PROCEDURE ,EXPORT FULL DATABASE ,IMPORT FULL DATABASE TO gridapp; --查询用户所有权限 SELECT * FROM session_privs; ----创建表空间 CREATE TABLESPACE grid_app_data DATAFILE 'C:\Oracle\product\10.2.0\oradata\orcl\grid_app_data.dbf' SIZE 200M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL AUTOALLOCATE; CREATE TABLESPACE grid_ind DATAFILE 'C:\Oracle\product\10.2.0\oradata\orcl\grid_ind.dbf' SIZE 200M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL AUTOALLOCATE; --改变用户默认表空间 ALTER USER gridapp default tablespace grid_app_data; 获取表: select table_name from user_tables; //当前用户的表 select table_name from all_tables; //所有用户的表 select table_name from dba_tables; //包括系统表 select table_name from dba_tables where owner='用户名' user_tables: table_name,tablespace_name,last_analyzed等 dba_tables: ower,table_name,tablespace_name,last_analyzed等 all_tables: ower,table_name,tablespace_name,last_analyzed等 all_objects: ower,object_name,subobject_name,object_id,created,last_ddl_time,timestamp,status等 获取表字段: select * from user_tab_columns where Table_Name='用户表'; select * from all_tab_columns where Table_Name='用户表'; select * from dba_tab_columns where Table_Name='用户表'; user_tab_columns: table_name,column_name,data_type,data_length,data_precision,data_scale,nullable,column_id等 all_tab_columns : ower,table_name,column_name,data_type,data_length,data_precision,data_scale,nullable,column_id等 dba_tab_columns: ower,table_name,column_name,data_type,data_length,data_precision,data_scale,nullable,column_id等 获取表注释: select * from user_tab_comments user_tab_comments:table_name,table_type,comments 相应的还有dba_tab_comments,all_tab_comments,这两个比user_tab_comments多了ower列。 获取字段注释: select * from user_col_comments user_col_comments:table_name,column_name,comments 相应的还有dba_col_comments,all_col_comments,这两个比user_col_comments多了ower列 从SQL语言的分类谈COMMIT和ROLLBACK的用法 从功能上划分,SQL语言可以分为DDL,DML和DCL三大类。 1. DDL(Data Definition Language) 数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言 ; CREATE---创建表 ALTER---修改表 DROP---删除表 2. DML(Data Manipulation Language) 数据操纵语言,SQL中处理数据等操作统称为数据操纵语言 ; INSERT---数据的插入 DELETE---数据的删除 UPDATE---数据的修改 SELECT---数据的查询 DCL(Data Control Language) 数据控制语言,用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等; GRANT---授权。 ROLLBACK---回滚 COMMIT---提交。 提交数据有三种类型:显式提交、隐式提交及自动提交。下面分别说明这三种类型。 (1) 显式提交 用COMMIT命令直接完成的提交为显式提交。 (2) 隐式提交 用SQL命令间接完成的提交为隐式提交。这些命令是: ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP, EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。 (3) 自动提交 若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后, 系统将自动进行提交,这就是自动提交。其格式为: SQL>SET AUTOCOMMIT ON; COMMIT / ROLLBACK这两个命令用的时候要小心。 COMMIT / ROLLBACK 都是用在执行 DML语句(INSERT / DELETE / UPDATE / SELECT )之后的。DML 语句,执行完之后,处理的数据,都会放在回滚段中(除了 SELECT 语句),等待用户进行提交(COMMIT)或者回滚 (ROLLBACK),当用户执行 COMMIT / ROLLBACK后,放在回滚段中的数据就会被删除。 (SELECT 语句执行后,数据都存在共享池。提供给其他人查询相同的数据时,直接在共享池中提取,不用再去数据库中提取,提高了数据查询的速度。) 所有的 DML 语句都是要显式提交的,也就是说要在执行完DML语句之后,执行 COMMIT 。而其他的诸如 DDL 语句的,都是隐式提交的。也就是说,在运行那些非 DML 语句后,数据库已经进行了隐式提交,例如 CREATE TABLE,在运行脚本后,表已经建好了,并不在需要你再进行显式提交。