Oracle管理常用对象之管理表

来源:互联网 发布:centos 6.5 ipv6 配置 编辑:程序博客网 时间:2024/05/17 03:50

一> 常用的数据库对象:

1>表:基本的数据存储对象,以行和列的形式存在,列是字段(属性),行是记录(元组)。

2>数据字典:系统表,存放数据库相关信息。

3>约束条件:执行数据校验,保证数据完整性的对象。

4>索引:用于提高查询的性能。

5>视图:一个或多个表数据的逻辑显示。

6>同义词:对象的别名。

7>序列:用于生成唯一数字的数据库对象。


二>管理表:

1>表简介:

1:设计表(阿拉伯字符不超过30个、缩写格式、描述、使用三大范式、合适类型长度、将NULL列放在最后)。

2:行格式(行头、列长度、列值)。

3:常用数据类型<1>varchar2(size):可变长字符串

   <2>char(size):定长字符串

   <3>number(p,s):数字值,p为精度,s为小数

   <4>float:浮点型

   <5>int,integer:整数

   <6>date:日期

   <7>long:最大字节可达2G

   <8>clob:存储字符串数据,最大字节数4G

   <9>raw,long raw:存储二进制数据的变长度字符串

4:伪劣ROWID和ROWNUM

2>建表

1.普通建表

CREATE TABLE [schema.]table_name(colum_name datatype [DEFAULT expr] [,...]);
CREATE TABLE scott.dept(dno NUMBER(2),name VARCHAR2(10),loc VARCHAR2(20));

2.子查询建表

CREATE TABLE table_name[(column,column ...)] AS subquery;
CREATE TABLE emp(name,salary,job,dno) AS SELECT ename,sal,job,deptno FROM emp WHERE deptno=30;

3.建立临时表

CREATE GLOBAL TEMPORARY TABLE temp(cola INT) ON COMMIT DELETE ROWS;


3>修改表

1.增加列

ALTER TABLE table_name ADD(column datatype [DEFAULT expr] [,column datatype]);

2.修改列

ALTER TABLE table_name MODIFY (column datatype [DEFAULT expr] [,column datatype]);
3.删除列

ALTER TABLE table_name DROP (column);
4.修改列名

ALTER TABLE table_name RENAME COLUMN column_name TO new_column_name;
5.修改表名

RENAME object_name TO new_object_name;
6.增加注释

COMMENT ON TABLE table_name IS 'text';COMMENT ON COLUMN table_name.column IS 'text';


4>截断和删除表

截断表TRUNCATE TABLE table_name;删除表DROP TABLE table_name [CASCADE CONSTRAINTS] [PURGE];恢复被删除表FLASHBACK TABLE table_name TO BEFORE DROP;

5>显示表信息

显示当前用户的所有表信息SELECT table_name FROM user_tables;显示当前用户的所有数据库对象SELECT object_name FROM user_objects WHERE object_type='TABLE';显示当前用户所以表的注释SELECT comments FROM user_tab_comments WHERE table_name = 'EMPLOYEE';SELECT comments FROM user_col_comments WHERE table_name='EMPLOYEE' AND column_name='NAME';

二> 使用约束:

1>约束简介

NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK

2>定义约束

列级约束

column [CONSTRAINT constraint_name] constraint_type

表级约束

column,...,[CONSTRAINT constraint_name] constraint_type(column,...)
1.定义NOT NULL约束

name VARCHAR2(10) CONSTRAINT nn_name NOT NULL,

2.定义UNIQUE约束

name VARCHAR2(10),CONSTRAINT u_name UNIQUE(name)

3.定义PRIMARY KEY约束

dno INT [CONSTRAINT pk_dno] PRIMARY KEY,

4.定义FOREIGN KEY约束(FOREIGN KEY、REFERENCES、ON DELETE CASCADE、ON DELETE SET NULL)

dno INT CONSTRAINT fk_dno REFERENCES dept(dno)


5.定义CHECK约束

salary NUMBER(6,2),CHECK (salary BETWEEN 1000 AND 5000)

6.复合约束

PRIMAY KEY (order_id,item_id)

3>维护约束