oracle建表空間 各種語句

在創建用戶之前,先要創建表空間:

       其格式爲:格式: 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.ora1
alter tablespace mytesttablespace add datafile 'c:\test\test.ora1' size 5M;

/******************************************************************/
--修改表空間數據庫文件屬性,myoracle爲sid
--將test.ora1數據庫文件改爲3M,其中resize可以是ONLINE, OFFLINE, RESIZE, AUTOEXTEND 或 END/DROP
alter 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.]<table_name>(
--      <column_name><data type>[default <expression>]<constraint>[,]
--      .......
--      )TABLESPACE TABLESPACE_NAME;
--schema:表示所屬的用戶名稱或模式名稱亦即方案
--table_name:表示新建表的名稱
--column_name:表示字段名稱
--data type:表示字段的數據類型
--default <expression>:表示字段的默認值
--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' ,'' );

/******************************************************************/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章