表:基本的數據集合,有行和列組成。
命名規則
表名和列名:
- 必須以字母開頭
- 必須在1-30個字符之間
- 必須只能包含A-Z,a-z,0-9,_,$和#
- 必須不能和用戶定義的其他對象重名
- 必須不能使Oracle的保留字
CREATE TABLE 語句
必須具備條件:
- CREATE TABLE 權限
- 儲存空間
CREATE TABLE [schema.]table
(column datatype [DEFAULT expr][, ...]);
必須指定的條件
- 表名
- 列名,數據類型,尺寸
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 : 存放若干天到若干秒的一個時間段