![]() |
Oracle数据库开发经验积累(三) |
1、分析表 analyze table mzbs.db_code ESTIMATE STATISTICS SAMPLE 20 PERCENT; 2、表空间管理和用户管理 --查看表空间和数据文件 select file_name,tablespace_name,autoextensible from dba_data_files; --数据表空间 CREATE TABLESPACE USER_DATA LOGGING DATAFILE 'D:\ORACLE\ORADATA\ORCL\test.DBF' SIZE 50m REUSE , 'c:\USERS01112.DBF' SIZE 50m REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE 16383M EXTENT MANAGEMENT LOCAL --修改表空间数据文件的路径 ALTER TABLESPACE app_data RENAME DATAFILE '/DISK4/app_data_01.dbf' TO '/DISK5/app_data_01.dbf'; ALTER DATABASE RENAME FILE '/DISK1/system_01.dbf' TO '/DISK2/system_01.dbf'; --临时表空间 CREATE TEMPORARY TABLESPACE USER_DATA_TEMP TEMPFILE 'D:\TEMP0111.DBF' SIZE 50M REUSE AUTOEXTEND ON NEXT 1024K MAXSIZE 16383M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1024K --增加数据文件 ALTER TABLESPACE USER_DATA ADD DATAFILE 'c:\USERS01113.DBF' SIZE 50M; ALTER TABLESPACE USER_DATA ADD DATAFILE 'c:\USERS01114.DBF' SIZE 50M AUTOEXTEND ON ; --删除表空间 DROP TABLESPACE USER_DATA INCLUDING CONTENTS; --修改表空间的存储参数 ALTER TABLESPACE tablespacename MINIMUM EXTENT 2M; ALTER TABLESPACE tablespacename DEFAULT STORAGE ( INITIAL 2M NEXT 2M MAXEXTENTS 999 ); --表空间联机/脱机/只读 ALTER TABLESPACE tablespacename OFFLINE/ONLINE/READ ONLY; --修改数据文件大小 ALTER DATABASE DATAFILE 'c:\USERS01113.DBF' RESIZE 40M; --创建用户、赋予权限 CREATE USER USER_DATA PROFILE DEFAULT IDENTIFIED BY USER_DATA DEFAULT TABLESPACE USER_DATA TEMPORARY TABLESPACE USER_DATA ACCOUNT UNLOCK; GRANT CONNECT TO USER_DATA; GRANT RESOURCE TO USER_DATA; 3、表的管理 --创建表 CREAE TABLE TABLENAME (COLUMN1 COLUTYPE DEFAULT(VALUE) NOT NULL) (COLUMN2 COLUTYPE DEFAULT(VALUE) NOT NULL); --建表的索引存储分配 CREATE TABLE summit.employee(id NUMBER(7) CONSTRAINT employee_id_pk PRIMARY KEY DEFERRABLE USING INDEX STORAGE(INITIAL 100K NEXT 100K) TABLESPACE indx, last_name VARCHAR2(25) CONSTRAINT employee_last_name_nn NOT NULL, dept_id NUMBER(7)) TABLESPACE data; --修改表的存储分配 ALTER TABLE tablename PCTFREE 30 PCTUSED 50 STORAGE(NEXT 500K MINEXTENTS 2 MAXEXTENTS 100); ALTER TABLE tablename ALLOCATE EXTENT(SIZE 500K DATAFILE '/DISK3/DATA01.DBF'); --把表移到另一个表空间 ALTER TABLE TABLENAME MOVE TABLESPACE TABLESPACENAME; --回收空闲的空间(回收到High-water mark) 全部回收需要TRUNCATE TABLE tablename ALTER TABLE tablename DEALLOCATE UNUSED; --删除表(连同所用constraint) DROP TABLE tablename CASCADE CONSTRAINTS; --给表增加列 ALTER TABLE TABLENAME ADD COLUMN COLUTYPE DEFAULT(VALUE) NOT NULL; --删除表中的列 ALTER TABLE tablename DROP COLUMN columnname; ALTER TABLE tablename DROP COLUMN columnname CASCADE CONSTRAINTS CHECKPOINT 1000; --标记列不可用 ALTER TABLE tablename SET UNUSED COLUMN columnname CASCADE CONSTRAINTS; --删除标记为不可用的列 ALTER TABLE tablename DROP UNUSED COLUMNS CHECKPOINT 1000; |