第四章 SQL 介紹

Download Report

Transcript 第四章 SQL 介紹

SQL 介紹
SQL語言基礎
國立聯合大學 資訊管理學系
陳士杰老師
 資料庫共通的語言-SQL

像大多數資料庫相同,ORACLE 只會說一種共通的語言,
而這種語言就是 SQL (Structural Query Language,結構化
查詢語言)。

在 70 年代,E.F.Codd 首先提出關聯式資料模型(Relational
Data Model)。而後 IBM 公司在 System R 關聯式資料庫管
理系統中,研發出最早的 SQL 語言叫做 SEQUEL
(Structured English Query Language)。

SQL的版本:

SQL/1 (或稱SQL/87)

SQL/2 (或稱SQL/92)

SQL/3 (或稱SQL/99)  對物件導向有提供支援
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
2

SQL指令的種類:



資料定義語言 (Data Definition Language, DDL)

用來宣告(或建立)資料庫物件

針對Base Table, View,做建立(Create)、刪除(Drop)、更改(Alter)等動作。
資料處理語言 (Data Manipulation Language, DML)

用來操作 資料庫中的資料

針對Base Table內的Data,做插入(Insert)、更新(Update)、刪除(Delete)等動作。
資料控制語言 (Data Control Language, DCL)


資料查詢語言 (Data Query Language, DQL)


用來查詢資料庫中的資料
資料管理指令 (Data Administration Commands)


用來從事資料庫的權限控管,如Grant、Revoke、Alter Password等動作。
用來從事資料庫的稽核與分析
交易控制指令 (Transactional Control Commands)

用來管理資料庫的交易動作
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
3
 Oracle的SQL 語言區分
SQL
DDL:
Data Definition Language
DML:
Data Manipulation Language
DCL:
Data Control Language
Transaction Control Commands
其它管理控制:
•Session Control Command
•System Control Command
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
4
資料處理語言(Data Manipulation Language,DML)

主要提供使用者資料庫中資料操作的指令,如:

新增(Insert)

刪除(Delete)

修改(Update)

查詢(Select)
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
5
資料控制語言(Data Control Language,DCL)

用來控制資料庫系統內部的異動交易(Transaction) 處理與
系統效能等指令。
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
6
 資料型態

ANSI-SQL 主要提供三種主要的資料型態:

字元

數字

浮點數
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
7
 資料型態轉換

在 ORACLE 中能夠將某種資料型態轉換成另一種資料型態。

資料型態的轉換可以透過 ORACLE 系統自動轉換 (4-5節)

透過資料型態轉換函數來完成 (4-8節)
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
8
 基本表格(BASED TABLE)的操作

基本表格是實際存在於DB中的二維表格

一個基本表格(Based Table) 實質上由兩部分組成:

表格名和一組欄位名構成的分類資訊 (表頭)

實際存放的資料 (表身)

使用資料定義語言DDL (Create, Drop, Alter) 從事表格的相關操作。

使用資料處理語言DML (Insert, Delete, Update,Select) 從事表格內
資料的相關操作。
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
9
表頭
主體
char(10)
char(8)
char(6)
int
date
char(20)
學號
姓名
系別
年級
生日
地址
001
張三
資管
2
3.18
台北
002
李四
企管
3
3.19
台中
003
王五
人管
4
3.20
台南
Tuple、
Row、
Record
Column、
Field
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
10

當使用某個user帳號進入系統時,要如何知道此帳號擁有
哪些基本表格?
SELECT table_name FROM user_tables;
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
11
使用DDL 從事表格操作(Create, Drop, Alter)

建立基本表格命令 - CREATE TABLE
CREATE TABLE <表格名> (
<欄位名1><型態> [NULL | NOT NULL],
<欄位名2><型態> [NULL | NOT NULL],
:
:
<欄位名n><型態> [NULL | NOT NULL]
);
括號內除了最後一個指令
外,其它指令皆需用逗號
做區隔。
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
12

範例1

CREATE TABLE test1 (
test1_ID number,
test1_Name char(10),
test1_Add varchar2(10)
);
國立聯合大學 資訊管理學系
範例2
CREATE TABLE test2 (
test2_ID number,
test2_Name char(10),
test2_Add varchar2(10)
);
資料庫系統課程 (陳士杰)
13
Integrity Constraint (完整性限制)

主要可分成下列兩種:
 Entity
integrity constraint (個體完整性限制)

主要限制的對象: 主鍵 (Primary Key)

主鍵不可為空值 (Null Value). 也不可以重覆出現。
 Referential
integrity constraint (參考完整性限制)

主要限制的對象: 外來鍵 (Foreign Key)

外來鍵的值可以為空值 (NULL) ,或是一個相匹配 (Match) 於其它關聯
之主鍵的值。
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
14
表格 A
外來鍵
NULL
表格 B
主鍵
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
15

欲刪除某關聯中的記錄。若該記錄中的鍵值有被其它關聯的外來鍵參
考到時,可採下列三種方法之一:

限制 (Restricted)

若欲刪除之資料有被參考到,則不允許刪除

即: 記錄(‘D002’, ‘工務部’,‘中壢’)不允許被刪除, 除非無員工在部門D002工
作


連帶 (Cascade)

若欲刪除之資料有被參考到,則亦刪除帶有相同參考外來鍵值的記錄

即: 刪除記錄(‘D002’, ‘工務部’,‘中壢’),亦需刪除表格A中之相關員工記錄
空值化 (Nullify)

若欲刪除之資料有被參考到,則亦將相同的參考外來鍵值空值化

即: 刪除記錄(‘D002’, ‘工務部’,‘中壢’),必須將表格A中之相關員工記錄的
外來鍵值,更改成NULL。
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
16
個體完整性限制的設定語法
語法設定的目的:
定義表格之主鍵(Primary Key) ,主鍵的構成欄位數可大於等於1個
指定某個欄位之值是否唯一(Unique)
某欄位的值是否可為空值(Null)
括號內除了最後一個指令
CREATE TABLE <表格名> (
外,其它指令皆需用逗號
<欄位名1><型態> [NULL | NOT NULL],
做區隔。
:
<欄位名n><型態> [NULL | NOT NULL],
Primary Key (<欄位名1>,<欄位名2>,…),
Unique (<欄位名1>,<欄位名2>,…),
CONSTRAINT <限制名稱> Primary Key (<欄位名1>,<欄位名2>,…),
CONSTRAINT <限制名稱> Unique (<欄位名1>,<欄位名2>,…)
);
這兩組限制指令的效果相同,但第二組多加了限制名稱,
方便未來的管理,與明確呈現違反限制時的訊息。
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
17

範例1

CREATE TABLE test1 (
test1_ID number,
test1_Name char(10),
test1_Add varchar2(10),
Constraint 主鍵_test1 Primary Key
(test1_ID)
);
國立聯合大學 資訊管理學系
範例2
CREATE TABLE test2 (
test2_ID number,
test2_Name char(10),
test2_Add varchar2(10),
Primary Key (test2_ID)
);
資料庫系統課程 (陳士杰)
18
參考完整性限制的設定語法
語法設定的目的:
定義表格之外來鍵(Primary Key) ,其構成欄位數可大於等於1個
CREATE TABLE <表格名> (
括號內除了最後一個指令
<欄位名1><型態> [NULL | NOT NULL],
外,其它指令皆需用逗號
:
做區隔。
<欄位名n><型態> [NULL | NOT NULL],
Foreign Key (<欄位名1>,<欄位名2>,…) Reference <被參考表格名>
(<欄 位名1>,<欄位名2>,…) [On Delete <刪除紀錄時的選項>],
Constraint <限制名稱> Foreign Key (<欄位名1>,<欄位名2>,…) Reference
<被參考表格名> (<欄 位名1>,<欄位名2>,…)
[On Delete <刪除紀錄時的選項>]
);
此項目省略不寫:限制 (Restricted)
效果相同。
國立聯合大學 資訊管理學系
On Delete Cascade:連帶 (Cascade)
On Delete Set Null:空值化 (Nullify)
資料庫系統課程 (陳士杰)
19

範例1

CREATE TABLE test1 (
test1_ID number,
test1_FID number,
test1_Name char(10),
test1_Add varchar2(10),
Primary Key (test1_ID),
Foreign Key (test1_FID) Reference test2
(test2_ID)
);
國立聯合大學 資訊管理學系
範例2
CREATE TABLE test2 (
test2_ID number,
test2_Name char(10),
test2_Add varchar2(10),
Primary Key (test2_ID)
);
資料庫系統課程 (陳士杰)
20
Domain Constraint (定義域限制)

此限制有時被歸類至完整性限制中,稱為定義域完整性限制
(Domain Integrity Constraints)

主要限制的對象:Relation中的每個屬性 (Attribute)

每個屬性的值需滿足兩個限制:

每個屬性值需合乎該屬性之定義域範圍

每個屬性值需為基元值 (Atomic Value)
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
21
定義域完整性限制的設定語法
語法設定的目的:表格內每個欄位所填入的值,必須在其

限制範圍之內,例如:

由宣告之資料型態(Type)與大小(Size)

利用CHECK來指定輸入資料的合理條件範圍

利用DEFAULT來指定某欄位若沒有資料輸入時,系統所自動給定的
(條件給定:4-9節)
預設值
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
22
參考完整性限制的設定語法
語法設定的目的:
定義表格之外來鍵(Primary Key) ,其構成欄位數可大於等於1個
CREATE TABLE <表格名> (
<欄位名1> <型態> [NULL | NOT NULL],
<欄位名2> <型態> [NULL | NOT NULL] DEFAULT
:
:
<欄位名n><型態> [NULL | NOT NULL],
CHECK (條件),
CONSTRAINT <限制名稱> CHECK(條件)
);
<預設值>,
括號內除了最後一個指令
外,其它指令皆需用逗號
做區隔。
效果相同。
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
23

範例1

CREATE TABLE test1 (
test1_ID number,
test1_Name char(10),
test1_Add varchar2(10) Default ‘台
北市’,
Constraint 檢查ID Check
(test1_ID>1)
);
國立聯合大學 資訊管理學系
範例2
CREATE TABLE test2 (
test2_ID number,
test2_Name char(10),
test2_Add varchar2(10),
Check (test_ID between 2 and 50)
);
資料庫系統課程 (陳士杰)
24
如何檢視user所擁有之某表格的Constraint
SELECT constraint_name, constraint_type FROM user_constraints
WHERE table_name=‘表格名(英文需大寫)’;

檢視user所擁有之所有表格的Constraint
SELECT * FROM user_constraints;
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
25

廢除基本表格命令-DROP TABLE

當要廢除的基本表格中含有參考整合限制時,也就是被別的表格
參考到表格中的主鍵/候選鍵時,必須加入 CASCADE CONSTRAINTS 才
能廢除表格。

若表格沒有被別的表格參考到:
DROP TABLE <表格名>;


Ex: Drop Table test1;
若表格有被別的表格參考到,但又想要廢除掉:
DROP TABLE <表格名> CASCADE CONSTRAINTS ;

Ex: Drop Table test2 Cascade Constraints;
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
26

修改基本資料表格結構命令,主要可分為:
1.
新增欄位。
2.
修改欄位設定。
3.
廢除欄位。
4.
新增完整性限制。
5.
修改完整性限制。
6.
廢除完整性限制。
國立聯合大學 資訊管理學系
欄位的異動
完整性限制的異動
資料庫系統課程 (陳士杰)
27
新增欄位-ALTER TABLE……ADD
ALTER TABLE <表格名> ADD (
<欄位名1> <資料型態> [NULL|NOT NULL],
<欄位名2> <資料型態> [NULL|NOT NULL],
…
);
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
28
修改欄位的定義-ALTER TABLE……MODIFY
ALTER TABLE <表格名> MODIFY (
<欄位名1> [<資料型態>] [NULL|NOT NULL],
<欄位名2> [<資料型態>] [NULL|NOT NULL],
…
);
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
29
廢除欄位定義--ALTER TABLE … DROP COLUMN
ALTER TABLE <表格名> DROP COLUMN <欄位名> ;
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
30
新增整合限制(Integrity Constraint)-ALTER
TABLE…ADD CONSTRAINT
ALTER TABLE <表格名>
ADD (CONSTRAINT <限制名稱1> <完整性限制條件1>,
CONSTRAINT <限制名稱2> <完整性限制條件2>,
…
);
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
31
修改完整性限制

修改完整性限制又可分成:

實施完整性限制 (ENABLE)
ALTER TABLE <表格名稱> ENABLE CONSTRAINT <限制名稱>

暫時取消完整性限制(DISABLE)
ALTER TABLE <表格名稱> DISABLE CONSTRAINT <限制名稱>

廢除完整性限制
ALTER TABLE <表格名稱> DROP CONSTRAINT <限制名稱>
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
32
使用DML 從事資料操作(Insert, Dele, Update)

插入資料-INSERT INTO……


主要是插入整個Tuple的資料
完整指令格式。此指令格式可用於若對表格中的部份欄位,輸入相
對應的值。
INSERT INTO <表格名>(<欄位名1>,<欄位名2>,…) VALUES(<值1>,<值2>,…);

若對表格中的所有欄位,輸入相對應的值,則指令寫法可為:
INSERT INTO <表格名> VALUES(<值1>,<值2>,…);
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
33
test
 若僅對部門代號和部門名稱插入
新的記錄,此時所在地會填入Null
INSERT INTO test(部門代號,部門名稱)
VALUES(D004,會計室);
 若對所有欄位插入新的記錄
INSERT INTO test VALUES(D004,會計室,苗栗);
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
34

刪除資料-DELETE FROM

主要是刪除整個Tuple的資料記錄

刪除指令不能只刪除部分欄位中的資料,因此不需要指明欄位名
DELETE FROM <表格名稱> WHERE <條件>
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
35
test
 刪除部門代號為D002的記錄
Delete From test Where 部門代號=D002
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
36
更新資料-UPDATE……SET
UPDATE <表格名> SET <欄位名1>=<新值1>,
<欄位名2>=<新值2>,
...
<欄位名n>=<新值n>
WHERE <被更新記錄的條件>
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
37
test
 更改D003的部門名稱為資訊部,
所在地改為苗栗
Update test Set 部門名稱=‘資訊部’, 所在
地=苗栗 Where 部門代號=D003
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
38
 建立表格的建議步驟
1.
廢除表格。若不知所欲建立的表格是否已存在於DB中,先
執行此步驟,以免原表格已存在而產生錯誤。
2.
建立表格。
3.
建立個體完整性限制與定義域完整性限制。
4.
建立參考完整性限制。
5.
插入資料。
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
39
建立表格時加入參考完整性限制

此時建立表格的順序就很重要。被關聯的表格要先建立

例如:parent 表格要比 student表格先建立; parent 表格的資料要比
student 表格資料先輸入。
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
40
 簡易查詢

簡易查詢-SELECT
SELECT <查詢內容>
FROM <表格名>
WHERE <條件>
ORDER BY <排序內容>;
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
41
 條件運算
1.
用來比較的:
2.
在(或不在)某連續範圍之內
(NOT) BETWEEN … AND …
3.
在 (或不在) 某值域範圍
(NOT) IN (值域範圍)
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
42
4.
與某一綱要相匹配 (或不匹配)
(NOT) LIKE (綱要)
在 ORACLE 系統中匹配綱要是用“%”(百分比符號) 表示任何字元;用
“ _ ”(底線符號) 表示任一字元。
5.
列表或子查詢結果中的任一(ANY) 或全部(ALL) 值
ANY 任一
6.
或
ALL 全部
辨別子查詢結果有無傳回值
(NOT) EXISTS
7.
虛值(NULL) 判斷條件
IS(NOT)NULL
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
43
 SQL 中常用的函數

SQL 函數是用來處理一個資料項,並傳回結果的運算。函數
可以接受零個或多個參數,利用不同參數的函數完成不同
的運算,並產生一個或多個結果。

當直接操作一些函數時,我們會利用虛擬表格 (DUAL) 來回
傳函數的操作結果。
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
44
虛擬表格 (Dual)

此表格為SYS所擁有,但可讓任何一個使用者存取。

Dual只有一個虛擬欄位,以及一筆沒有任何意義的記錄
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
45

Dual的欄位會自動對應到使用者所設定的項目,所以通常是
用來測試計算結果、函數、或其它系統變數。

也可同時指定兩組以上的項目。
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
46
函數種類
1. 數值函數:數值函數接受數值輸入,傳回數值。
2. 字元函數:字元函數接受字元輸入,可傳回字元或數值。
3. 日期函數
日期函數操作 DATE 資料型態的值,除 MONTHS_BETWEEN 外,
其他所有的日期函數會傳回一個 DATE 型態的值。
4. 虛值函數 NVL
5. 群組函數 (Aggregation functions)
6. 資料型態轉換函數
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
47
數值函數
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
48
字元函數
函
數
CHR(n)
CONCAT(s1, s2)
INITCAP(s)
國立聯合大學 資訊管理學系
說
明
傳回字元,其 ASCII 碼等
於 n。
傳回 s1 字串連接 s2 字串
的新字串。
將字串 s 的第一個字母為
大寫,其它的為小寫。
資料庫系統課程 (陳士杰)
49
LENGTH(s),
LENGTHB(s),
傳回字串的長度(計算字數 vs.
計算字元數)。
LOWER(s)
將所有字母為小寫。
LPAD(s1, n[, s2])
用 s2 字元填入 s1字串中的左
邊,使其總長度為 n。s2 的預
設值為單個空格(‘ ’)。如果
s1 字串長度大於 n,函數則傳
回 s1 字串的部分。n 為傳回
值的總長度。
LTRIM(s [,set])
從 s 字串的左邊開始移去 set
字串中的字元,直至第一個不
是 set 中的字元為止。set 的
預設值為單個空格 (‘ ’)。
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
50
REPLACE(s, 搜尋字串 [,取代
字串])
將用取代字串代替每一個搜尋字串的
值,如果取代字串不寫,則所有搜尋
字串的值被刪去。
RPAD(s1, n[,s2])
用 s2 填入字串的右邊,使其總長度
為 n。s2 字串的預設值為單個空格
(‘ ’)。如果 s1 比 n 長,則傳回
s1 的部份。n 為傳回值的總長度。
RTRIM(s [,set])
從右邊開始移去 set 字串中的字元,
直至最後一個不 set 中的字元為止。
set 的預設值為單個空格 (‘ ’)。
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
51
SUBSTR ( s, m [,n])
求 s 字串的子字串,從 m 處的字元
開始,取 n 個字元長。
TRANSLATE (s, fromS, toS)
將 s 字串中的 fromS 字串中每一個
字元值利用 toS 字串中相應字元替換。
不在 fromS 字串中的 s 的字元則不
進行轉換。
UPPER(s)
傳回 s,其中所有字母為大寫,傳回
值與引數 s 有相同資料型態。
DECODE(ex, s1, r1 [, s2,
r2,…], d)
依照 ex 的值傳回不同的值,若 ex
的值為 s1 則傳回值 r1,[若 ex 的值
為 s2 則傳回值 r2 …,]否則傳回值
d。
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
52
日期函數
函
數
說
明
ADD_MONTHS(d,n)
傳回加 n 個月的 d 日期,引數 n 為整
數。如果 d 為該月中最後一天 (例如:
31日),而且結果月份的總天數較少
(例如:二月的 28 日),則結果的日期
為結果月份的最後一日 (例如:28 日),
否則結果日期的天數與 d 中的原日期
一致。
LAST_DAY(d)
傳回包含 d 日期的月份最後一天之日
期
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
53
MONTHS_BETWEEN(d1,
d2)
傳回日期 d1和 d2 之間的月數。如果
d1 比 d2 晚,結果為正;如果 d1 比
d2 早,則為負;如果 d1 與 d2 為同一
日期,則結果為 0
NEXT_DAY(d, 星期幾)
傳回比日期 d 晚的第一個星期幾。
ROUND(d[,fmt])
傳回依照指定的格式(fmt) 的單位將 d
四捨五入到最近日期。
TRUNC(d[,fmt])
傳回依照指定的格式(fmt) 的單位將 d
無條件捨去到最近的日期。
SYSDATE
傳回當前的日期和時間。注意:CHECK
約束條件中不能使用該函數。
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
54
虛值函數 NVL

虛值不是零,也非空白,用來記錄目前資料值未知的情況。虛值本身
不能做任何比較與運算,因為結果都是虛值。

可大致分為以下三種:
1.
可適用的虛值(Applicable Null Values)
2.
不可適用的虛值(Inapplicable Null Values)
3.
完全不知道的虛值(Totally Unknown)
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
55
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
56
群組函數 (Aggregation functions)
SQL 可利用 GROUP BY 子句將查詢的結果分組,並對每個
群組利用前面介紹的群組函數傳回單列群組資訊。查詢的
資料依照 GROUP BY 子句所指定的運算式的值分組,將相同
值的資料組成一組。
有以下群組函數(e: 表示number型態運算式)










AVG(e)
COUNT(e)
COUNT(*)
MAX(e)
MIN(e)
SUM(e)
STDDEV(e)
VARIANCE(e)
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
57
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
58
資料型態轉換函數






HEXTORAW(CHAR)
RAWTOCHAR(RAW)
TO_CHAR (DATE, 特定日期格式)
TO_CHAR (NUMBER, 特定數值格式)
TO_DATE(CHAR,特定日期格式)
TO_NUMBER(CHAR ,特定數值格式)
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
59

特定的日期格式參數舉例說明:
TO_DATE(‘31-3月-1964’,‘DD-MONTH-YYYY’)
TO_CHAR(HIREDATE , ‘DD/MM/YYYY’)
TO_CHAR(HIREDATE , ‘AD DD-MON-YYYY’);
國立聯合大學 資訊管理學系
資料庫系統課程 (陳士杰)
60