用户:
SYS@db1> select dbms_metadata.get_ddl('USER','HR') from dual;
DBMS_METADATA.GET_DDL('USER','HR')
--------------------------------------------------------------------------------
CREATE USER "HR" IDENTIFIED BY VALUES '4C6D73C3E8B0F0DA'
DEFAULT TABLESPACE "USERS"
TEMPORARY TABLESPACE "TEMP"
创建用户的相关信息可以通过dba_users视图来查看
selectUSERNAME,USER_ID,PASSWORD,DEFAULT_TABLESPACE from dba_users where username='HR'
create USER user identified by password 通过口令方式创建用户,DEFAULTTABLESPACE 指定为用户分配的是USERS表空间,临时表空间为TEMP。
表空间:
SYS@db1> select dbms_metadata.get_ddl('TABLESPACE','SYSAUX')from dual;
DBMS_METADATA.GET_DDL('TABLESPACE','SYSAUX')
--------------------------------------------------------------------------------
CREATE TABLESPACE "SYSAUX" DATAFILE
'/u01/app/oracle/oradata/db1/sysaux01.dbf' SIZE 125829120
AUTOEXTEND ON NEXT 10485760 MAXSIZE 32767M
LOGGING ONLINE PERMANENT BLOCKSIZE 8192
EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO
ALTER DATABASE DATAFILE
'/u01/app/oracle/oradata/db1/sysaux01.dbf' RESIZE 283115520
创建后表空间的属性可以通过dba_tablespaces视图查询
Select TABLESPACE_NAME,BLOCK_SIZE,CONTENTS,EXTENT_MANAGEMENT,ALLOCATION _TYPE,SEGMENT_SPACE_MANAGEMENT fromdba_tablespaces;
AUTOEXTEND 文件的自动扩展属性。可以通过dba_data_files视图来查询
selectTABLESPACE_NAME,AUTOEXTENSIBLE,INCREMENT_BY,MAXBYTES from dba_da ta_files;
MAXSIZE 能为该表空间分配的最大空间。
LOGGING指定表,视图,索引等的logging 属性。该属性不行应用与undo 和temporary表空间。在表空间级别设置的logging属性可以被表等对象自身的属性覆盖。
PERMANEN该选项主要用于指定指定表空间的类型,permanent表示永久的,如果是其他类型,则写temporary或者undo。如果是创建SYSAUX表空间,则必须指定extentmanagent 类型和segmentspace management 类型。
BLOCKSIZE 为表空间指定分配的块大小。默认设置为8k。
EXTENT MANAGEMENT指定这是一个本地化管理的表空间,根据表空间中区的管理方式不同,表空间可以分为数据字典管理(Dictionarymanaged)与本地化管理(Local Managed)类型。
在数据字典管理表空间中,区大小由参数:
initial,next,minextents,maxextents,pctincrease决定。
在本地化管理中,区大小设置方式分为uniform 及autoallocate两种类型。
Uniform:区的大小相同。如果设置了uniform则pctincrease自动为0。
Autoallocate:区大小oracle自动分配。
Oracle9i之前的,通常是数据字典管理。Oracle9i及以后,通常使用本地化管理表空间。
SEGMENTSPACE MANAGEMENT定义段空间的管理方式,这个段管理仅适用于对永久性的,本地的表空间管理方式。其分为auto和manual方式。
RESIZE 重新指定表空间的大小,若果指定一个大文件,那么通常只要空间足够大并且未超过操作系统的权限的限制,是很简单的,但是如果需要收缩一个文件,可能会遇到如下提示。
Flashback_mode 为表空间保存闪回数据
默认为Flashback on
表:
SYS@db1> select dbms_metadata.get_ddl('TABLE','EMPLOYEES','HR') from dual;
DBMS_METADATA.GET_DDL('TABLE','EMPLOYEES','HR')
--------------------------------------------------------------------------------
CREATE TABLE "HR"."EMPLOYEES"
( "EMPLOYEE_ID"NUMBER(6,0),
"FIRST_NAME" VARCHAR2(20),
"LAST_NAME" VARCHAR2(25) CONSTRAINT"EMP_LAST_NAME_NN" NOT NULL ENABLE,
"EMAIL" VARCHAR2(25) CONSTRAINT "EMP_EMAIL_NN" NOTNULL ENABLE,
"PHONE_NUMBER" VARCHAR2(20),
"HIRE_DATE" DATE CONSTRAINT "EMP_HIRE_DATE_NN" NOTNULL ENABLE,
"JOB_ID" VARCHAR2(10) CONSTRAINT "EMP_JOB_NN" NOTNULL ENABLE,
"SALARY" NUMBER(8,2),
"COMMISSION_PCT" NUMBER(2,2),
"MANAGER_ID" NUMBER(6,0),
"DEPARTMENT_ID" NUMBER(4,0),
"DEPARTMENT_NAME" VARCHAR2(20),
CONSTRAINT "EMP_SALARY_MIN" CHECK (salary > 0) ENABLE,
CONSTRAINT "EMP_EMAIL_UK" UNIQUE ("EMAIL")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGING COMPUTESTATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "EXAMPLE" ENABLE,
CONSTRAINT"EMP_EMP_ID_PK" PRIMARY KEY ("EMPLOYEE_ID")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGING COMPUTESTATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "EXAMPLE" ENABLE,
CONSTRAINT "EMP_MANAGER_FK" FOREIGN KEY("MANAGER_ID")
REFERENCES "HR"."EMPLOYEES"("EMPLOYEE_ID") ENABLE,
CONSTRAINT "EMP_JOB_FK" FOREIGN KEY ("JOB_ID")
REFERENCES "HR"."JOBS" ("JOB_ID") ENABLE,
CONSTRAINT "EMP_DEPT_FK" FOREIGN KEY("DEPARTMENT_ID")
REFERENCES "HR"."DEPARTMENTS"("DEPARTMENT_ID") ENABLE
)PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS NOLOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "EXAMPLE"
NOT NULL ENABLE 约束性条件 不允许该列属性为空值。
CONSTRAINT "EMP_SALARY_MIN" CHECK(salary > 0) ENABLE约束性条件,salary>0.
CONSTRAINT "EMP_EMAIL_UK" UNIQUE("EMAIL") 约束性条件 EMP_EMAIL_UK必须唯一
CONSTRAINT "EMP_EMP_ID_PK"PRIMARY KEY ("EMPLOYEE_ID") 约束性条件
EMPLOYEE_ID为表employees的主键。
Pctfree:默认值是10,如果数据块的使用率高于pctfree的值,则该数据块从freelist中移出。
Pctused:默认值是40,如果数据块的使用率小于pctused的值,则该数据块重新加入到fresslist中。Pctfree,Pctused是互相消涨的, 其和不能超过100
Initrans:默认值1,该参数表示在单一块中最初活动的交易事务数。
Maxtrans:默认值是255,表示在单一块中最大交易事务数。
NOLOGGING 指定该表的logging属性。