在创建用户之前,先要创建表空间:
其格式为:格式: create tablespace表间名datafile '数据文件名' size表空间大小;
如:
SQL> create tablespace news_tablespace datafile 'F:/oracle/product/10.1.0/oradata/news/news_data.dbf' size 500M;
其中'news_tablespace'是你自定义的表空间名称,可以任意取名;'F:/oracle/product/10.1.0/oradata/news/news_data.dbf'是数据文件的存放位置,'news_data.dbf'文件名也是任意取;'size 500M'是指定该数据文件的大小,也就是表空间的大小。
现在建好了名为'news_tablespace'的表空间,下面就可以创建用户了:
其格式为:格式: create user用户名identified by密码default tablespace表空间表;
如:
SQL> create user news identified by news default tablespace news_tablespace;
默认表空间'default tablespace'使用上面创建的表空间。
接着授权给新建的用户:
SQL> grant connect,resource to news; --表示把connect,resource权限授予news用户
SQL> grant dba to news; --表示把dba权限授予给news用户
授权成功。
ok!数据库用户创建完成,现在你就可以使用该用户创建数据表了!
1.建表空间
create tablespace hoteldata datafile 'D:/java/Oracle/product/10.1.0/oradata/zznorcl/hoteldata.dbf'size 200m autoextend on next 10m maxsize unlimited;
2.建用户
create user hotel identified by hotel default tablespace hoteldata account unlock;//identified by后面的是密码,前面的是用户名
3.用户授权
grant resource,connect,RECOVERY_CATALOG_OWNER to hotel ;
grant create table to hotel;
alter user hotel quota unlimited ON OSDB;
alter user hotel default tablespace hoteldata;
4.删除表空间
DROP TABLESPACE hoteldata INCLUDING CONTENTS AND DATAFILES;
5.删除用户
DROP USER hotel CASCADE
6.删除表的注意事项
在删除一个表中的全部数据时,须使用TRUNCATE TABLE表名;因为用DROP TABLE,DELETE * FROM表名时,TABLESPACE表空间该表的占用空间并未释放,反复几次DROP,DELETE操作后,该TABLESPACE上百兆的空间就被耗光了。
oracle sqlplus脚本建库总结(原创)
******************************************************************/
--查询表空间参数select tablespace_name,min_extents,max_extents,pct_increase,status from dba_tablespaces;
--查询数据文件信息--autoextensible数据库已满后是否自动扩展select tablespace_name,bytes,autoextensible,file_name from dba_data_files;
/******************************************************************/
--创建表空间
--一般信息-- DATAFILE:数据文件目录--存储-- AUTOEXTEND:数据文件满后自动扩展-- ON NEXT:增量-- MAXSIZE UNLIMITED:最大容量无限制-- SIZE:文件大小--存储--启用事件记录:LOGGING为生成从做日志并可恢复,NOLOGGING为快速更新不生成日志且不可恢复-- MANAGEMENT LOCAL:本地管理--缺省:自动分配-- UNIFORM SIZE:统一分配-- MANAGEMENT DICTIONARY:在字典中管理-- DEFAULT STORAGE:覆盖默认区值-- INITIAL:初始大小-- NEXT:下一个大小-- MINEXTENTS:最小数量-- MAXEXTENTS UNLIMITED:最大数量不限制-- PCTINCREASE:增量,单位"%"
-- MINIMUM EXTENT:最小区大小CREATE TABLESPACE "TEST"
NOLOGGING
DATAFILE 'G:/ORACLE/ORADATA/MYORACLE/TEST.ora' SIZE 5M REUSE
AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED EXTENT
MANAGEMENT LOCAL UNIFORM SIZE 12K;
--最好写成相对路径,免得出错CREATE TABLESPACE "TEST"
NOLOGGING
DATAFILE '../DATABASE/TEST.ora' SIZE 5M REUSE--建议用'../oradata/TEST.ora'AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED EXTENT
MANAGEMENT LOCAL UNIFORM SIZE 12K;
CREATE TABLESPACE "TEST"
LOGGING
DATAFILE 'G:/ORACLE/ORADATA/MYORACLE/TEST.ora' SIZE 5M EXTENT
MANAGEMENT DICTIONARY DEFAULT STORAGE ( INITIAL 1K NEXT 2K
MINEXTENTS 5 MAXEXTENTS 67 PCTINCREASE 4 ) MINIMUM EXTENT 3K;
/******************************************************************/
--增加表空间,注意这里test.ora1不能与原表空间文件名称相同--添加一个新的大小为5M数据库文件test.ora1alter tablespace mytesttablespace add datafile 'c:/test/test.ora1' size 5M;
/******************************************************************/
--修改表空间数据库文件属性,myoracle为sid
--将test.ora1数据库文件改为3M,其中resize可以是ONLINE, OFFLINE, RESIZE, AUTOEXTEND或END/DROPalter database myoracle datafile 'c:/test/test.ora1' resize 3M;
alter database myoracle datafile '$ORACLE_HOME/oradata/undo102.dbf' autoextend on next 10m maxsize 500M;
/******************************************************************/
/*删除表空间语法:drop tablespace tablespace_name including contents and datafiles;删除表空间时要系统不会删除表空间数据库文件,要彻底删除要手动删除*/drop tablespace mytesttablespace including contents and datafiles;
/******************************************************************/
--创建用户--命令:--CREATE USER名称IDENTIFIED BY口令DEFAULT TABLESPACE "默认表空间名" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK
--一般属性-- DEFAULT TABLESPACE:默认表空间名-- TEMPORARY TABLESPACE:临时表空间名,默认TEMP
-- ACCOUNT:用户状态,默认UNLOCK未锁定;LOCK锁定CREATE USER "TEST" PROFILE "DEFAULT"
IDENTIFIED BY "test" DEFAULT TABLESPACE "TEST"
TEMPORARY TABLESPACE "TEMP"
ACCOUNT UNLOCK;
--可以写成CREATE USER "TEST" PROFILE "DEFAULT"
IDENTIFIED BY "test" DEFAULT TABLESPACE "TEST" ;
/******************************************************************/
--用户授权--grant "connect,resource,dba" to "someuser" with admin option;
-- WITH ADMIN OPTION:管理选项--授予usertest DBA权限grant dba to "usertest" with admin option;
--取消授权--REVOKE "RESOURCE" FROM "SCOTT";
/******************************************************************/
--建表--在usertest方案下建表,注意表名不能用关键字,否则报错ORA-00903:表名无效--语法:-- create table [schema.](
-- [default ][,]
-- .......
-- )TABLESPACE TABLESPACE_NAME;
--schema:表示所属的用户名称或模式名称亦即方案--table_name:表示新建表的名称--column_name:表示字段名称--data type:表示字段的数据类型--default :表示字段的默认值--constraint:表示约束条件--TABLESPACE_NAME:所用表空间CREATE TABLE "TEST"."TEST" (
"ID" NUMBER(10) DEFAULT 0 NOT NULL,
"NAME" VARCHAR2(20) NOT NULL,
"INFO" VARCHAR2(1000),
PRIMARY KEY("ID")
)TABLESPACE "TEST" ;
--也可以写成CREATE TABLE "TEST"."TEST" (
"ID" NUMBER(10) DEFAULT 0 PRIMARY KEY,
"NAME" VARCHAR2(20) NOT NULL,
"INFO" VARCHAR2(1000)
)TABLESPACE "TEST" ;
/******************************************************************/
--插入数据--语法:-- INSERT INTO tablename (column1,column2,…) VALUES (expression1,expression2,…);INSERT INTO "TEST"."TEST" ("ID" ,"NAME" ,"INFO" ) VALUES (1 ,'testname' ,'' );
--也可以写成INSERT INTO "TEST"."TEST" VALUES (1 ,'testname' ,'' );
/******************************************************************/