Oracle创建和管理表

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

命名规则

表名和列名:

  • 必须以字母开头
  • 必须在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_name
    FROM user_tables ;
  • 查看用户定义的各种数据库对象
    SELECT DISTINCT object_type
    FROM 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 MONTH
    Indicates 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' YEAR
    Returns an error, because the default precision is 2,
    and '123' has 3 digits.
  • INTERVAL DAY TO SECOND    :    存放若干天到若干秒的一个时间段


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值