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    :    存放若干天到若干秒的一個時間段


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章