一、数据的对象包括表、索引、序列、视图、同义词等结构。
 这节课我们主要介绍表的操作,索引、序列、视图、同义词这块内容我们下一节介绍。


二、表的创建
1、数据库中主要主要保存数据,而数据是以什么形式保存的呢?表由行、列两个重要元素构成。
   行结构行由头、长度、行值组成。


2、表名和列名命名的规则
(1)必须只包含字母a - z、a - z,0 - 9,_,$,#
(2)而且必须字母开头
(3)不能超过30个字节,
(4)不能包含特珠字母,
(5)在同一个用户下表名不能和其它对象同名
(6)不要使用Oracle的保留字(select * from v$reserved_words order by keyword;)
    注:当加上双引号就可以使用保留字,但是不推存!!!!


3、创建表的步骤

(1)查数据库文件


sys@OCM> select * from v$dbfile;


     FILE# NAME
---------- --------------------------------------------------
        10 /u01/app/oracle/oradata/ocm/undotbs02.dbf
         5 /u01/app/oracle/oradata/ocm/example01.dbf


(2)创建表空间


sys@OCM> create tablespace tp3 datafile '/u01/app/oracle/oradata/ocm/tp3.dbf' size 200M;


Tablespace created.


(3)创建用户


sys@OCM> create user gyj identified by gyj default tablespace tp3;


User created.


 (4)给用户授权


sys@OCM> gyj@OCM> grant dba to gyj;


Grant succeeded.


 (5)创建表


gyj@OCM> CREATE TABLE dept
  2  (deptno      NUMBER(2),
  3   dname       VARCHAR2(14),
  4   loc         VARCHAR2(13),
  5   create_date DATE DEFAULT SYSDATE);


Table created.


gyj@OCM> select * from gyj.dept;


no rows selected


这个命令中,CREATE TABLE是创建表的命令,dept表名,deptno 、dname 、age 、loc 、create_date是列的名字。
NUMBER和VARCHAR2,SYSDATE是列的类型。
NUMBER (2)表示,此列只能包括2位数以内的整数。如果需要小数,可以这样:NUMBER (10 ,2) ,10是总长度,2是小数位数,整个数据的长度是整数8位、小数2位。
VARCHAR2是字符型,括号中的数字是字符串的长度。
SYSDATE是系统时间,DEFAULT表示给列create_date设一个默认值:当时插入记录时的系统时间。


4、表的类型
(1)根据表中数据的用途,我们可以将表分为两大类:用户表和数据字典表
(2)表存储、组织数据方式的不同,我们可以将表分为:堆表、索引组织表、聚簇表


5、数据类型

                                                  表_数据


(1)字符型:VARCHAR2 | CAHR | NVARCHAR2 | NCAHR 
(2)数字型:NUMBER,是可变的,最多可以存储 38 个有效数位
(3)日期型:DATE 固定为7个字节,TIMESTAMP 这是一个7字节或11字节,可以带小数秒,最多保留9位
(4)RAW 数据类型:最多2000个字节,不做任何字符集转换
(5)LONG、LONG RAW(2G) 和大型对象LOB 数据类型 (4G)
(6)ROWID与UROWID:ROWID是18位,实际只存12位(不存储对象号6位),UROWID主要在索引组织表中使用




三、利用子查询创建表简称CTAS


gyj@OCM> CREATE TABLE   dept80
  2    AS   SELECT  employee_id, last_name, 
  3              salary*12 ANNSAL, 
  4              hire_date   FROM    hr.employees   WHERE   department_id = 80;


Table created.


四、修改表


1、增加列


gyj@OCM> alter table t1 add address varchar2(40);


Table altered.


2、修改的列名称


gyj@OCM> alter table t1 rename column address to addresses;


Table altered.


3、禁用列的主键约束


gyj@OCM> alter table t1  modify  PRIMARY KEY DISABLE CASCADE;


Table altered.


4、删除列
gyj@OCM> alter table t1 drop column addresses;


Table altered.


5、为列定义一个默认值


gyj@OCM> alter table t1 modify salary default 2000;


Table altered.


6、删除表


gyj@OCM> drop table t1;


Table dropped.


 (1)删除T1表中的数据和T1表的结构。
 (2)drop会隐式提交,会把当面会话没提交的事务进行提交。
 (3)删除T1表的索引。
 (4)删除T1表的约束。

 (5)drop操作不能被回滚。




**********本博客所有内容均为原创,如有转载请注明作者和出处!!!**********
Name:    guoyJoe

QQ:        252803295

Email:    oracledba_cn@hotmail.com

Blog:      http://blog.csdn.net/guoyJoe

ITPUB:   http://www.itpub.net/space-uid-28460966.html

OCM:     http://education.oracle.com/education/otn/YGuo.HTM
 _____________________________________________________________
加群验证问题:哪些SGA结构是必需的,哪些是可选的?否则拒绝申请!!!

答案在:http://blog.csdn.net/guoyjoe/article/details/8624392

Oracle@Paradise  总群:127149411

Oracle@Paradise No.1群:177089463(已满)

Oracle@Paradise No.2群:121341761

Oracle@Paradise No.3群:140856036