oracle建表空间 各种语句

时间:2021-10-12 23:29:13

转自:http://hi.baidu.com/xuludede/item/fd0c54dd0d92d8ffca0c3904



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' ,'' );

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


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' ,'' );

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