Oracle创建和管理表

来源:互联网 发布:linux 磁盘性能测试 编辑:程序博客网 时间:2024/05/21 12:43

表:基本的数据集合,有行和列组成。

命名规则

表名和列名:

  • 必须以字母开头
  • 必须在1-30个字符之间
  • 必须只能包含A-Z,a-z,0-9,_,$和#
  • 必须不能和用户定义的其他对象重名
  • 必须不能使Oracle的保留字

CREATE TABLE 语句

必须具备条件:

  1. CREATE TABLE 权限
  2. 储存空间
CREATE TABLE [schema.]table(column datatype [DEFAULT expr][, ...]);


必须指定的条件

  1. 表名
  2. 列名,数据类型,尺寸

DEFAULT  选项

  • 插入时指定一个默认值
    ... hire_date DATE DEFAULT SYSDATE, ...
  • 字符串,表达式,或SQL函数都是合法的
  • 其他列的列名和伪列是非法的
  • 默认值必须满足列的数据类型定义

创建表

CREATE TABLE dept(deptno NUMBER(2),dname VARCHAR2(14),loc VARCHAR2(13));

Oracle数据库中的表

  • 用户定义的表(用户自己创建并维护的一组表,包含了用户所需信息)
  • 数据字典(Oracle自动创建的一组表,包含数据库信息)

查询数据字典

  • 查看用户定义的表
    SELECT table_nameFROM user_tables ;
  • 查看用户定义的各种数据库对象
    SELECT DISTINCT object_typeFROM user_objects ;
  • 查看用户定义的表,视图,同义词和序列
    SELECT *FROM user_catalog ;

数据类型

  • VARCHER2(size)    :    可变长字符数据
  • CHAR(size)    :    定长字符数据
  • NUMBER(p,s)    :    可变长数值数据
  • DATE    :    日期型数据
  • LONG    :    可变长字符数据,最大2G
  • CLOB    :    大字符数据,最大4G
  • ROW/LONG ROW    :    用于保存位串的数据类型(RAW,类似于CHAR,声明方式RAW(L),L为长度,以字节为单位,作为数据库列最大2000,作为变量最大32767字节。LONG RAW,类似于LONG,作为数据库列最大存储2G字节的数据,作为变量最大32760字节)
  • BLOB    :   大二进制数据,最大4G
  • BFILE    :    储存外部文件的二进制数据,最大4G(实际的文件存储在文件系统中,字段中存储的是文件定位指针.bfile对。oracle来说是只读的,也不参与事务性控制和数据恢复 )
  • ROWID    :    行地址

     BLOB,CLOB,BLIFE主要区别:

         1.BLOB 二进制大对象。存储在数据库里的大对象,一般是图像声音等文件。 (类似于row和long row)
         2.CLOB 字符型大对象。一般存储大数量文本信息。存储单字节,固定宽度的数据。
         3.BFILE的值是存在操作系统的文件中,而不是数据库中。
         4.BFILE不参与数据库事务操作。也就是改变bifle不能commit或rollback。但是改变bfile的locator可以commit或rollback。

         5.BFILE在plsql和oracle中是只读的,不允许写。

日期数据类型

  • TIMESTAMP    :    时间戳类型(是对DATE的拓展,可精准至纳秒)
    TIMESTAMP[(fractional_seconds_precision)]
  • TIMESTAMP WITH TIME ZONE    :    带时区的TIMESTAMP(时区部分按照小时和分钟显示本地时间与UTC的时差)
    TIMESTAMP[(fractional_seconds_precision)]WITH TIME ZONE
  • TIMESTAMP WITH LOCAL TIME    :    带有本地时区的TIMESTAMP(时区不显示在数据后面,Oracle自动将数据转换为用户所在时区)
    TIMESTAMP[(fractional_seconds_precision)]WITH LOCAL TIME ZONE
  • INTERVAL YEAR TO MONTH    :     存放若干年和若干月的一个时间段
    INTERVAL YEAR [(year_precision)] TO MONTH
    INTERVAL '123-2' YEAR(3) TO MONTHIndicates an interval of 123 years, 2 months.INTERVAL '123' YEAR(3)Indicates an interval of 123 years 0 months.INTERVAL '300' MONTH(3)Indicates an interval of 300 months.INTERVAL '123' YEARReturns an error, because the default precision is 2,and '123' has 3 digits.
  • INTERVAL DAY TO SECOND    :    存放若干天到若干秒的一个时间段