[ ホーム | お知らせ | ソフトウェア | 覚え書き | メール | ->英語 ]

Oracleデータベースを用いた開発で役立つ情報

SQLの文法がなかなか覚えられない。
あまり系統立てられていないような気がする。
さらに、OracleCallInterfaceで用意された関数などはまるで暗号。
省略しすぎて関数名からどのような処理をするのか分からない。
しかも、これらの関数を使うにも、複雑な手順が必要らしい。



おもなSQLコマンド

書式 説明
CONNECT ユーザー名 IDENTIFIED BY パスワード AT ホスト識別子 データベースに接続
CREATE TABLE 表名 ( 項目名 , … ); テーブルの作成
DROP TABLE 表名; テーブルの削除
SELECT 項目名 FROM 表名 WHERE 条件; 行の取り出し
INSERT INTO 表名 VALUES ( , … ); 行の追加
DELETE FROM 表名 WHERE 条件; 行の削除
UPDATE 表名 SET 項目名 = , … WHERE 条件; 行の更新
COMMIT; トランザクション確定
SELECT OBJECT_NAME FROM USER_OBJECTS; 全ユーザーオブジェクトの表示


CREATE TABLE の例

CREATE TABLE 受注表 (
  	伝票番号 CHAR(8),
	年月日		DATE,
	顧客番号	CHAR(8),
	PRIMARY KEY ( 伝票番号 )
) STORAGE (INITIAL 500K NEXT 5000K);

演算子

 
A = B 等しい
A > B より大きい
A < B より小さい
A >= B 以上
A <= B 以下
A <> B 等しくない
BETWEEN A AND B AからBまでの間
IN ( A, B , C) A,B,Cのどれかひとつ
A LIKE B AはBの条件を満たす

 


LIKE演算子

SELECT 商品番号 FROM 商品 WHERE 商品名 LIKE '%めん';
% 0文字以上の任意の文字
_ 任意の1文字

 


ORDER BY

 
ORDER BY 項目名 指定した項目で結果を並べ換え
ORDER BY 項目名 ASC 昇順で並べ換え
ORDER BY 項目名 DESC 降順で並べ換え
ORDER BY 項目名1, 項目名2 項目1、項目2の順番で並べ換え

 


GROUP BY

SELECT 商品番号, SUM(数量) FROM 注文 GROUP BY 商品番号;

SUM

合計

MAX

最大値
MIN 最小値
AVG 平均値
COUNT データの個数

 


おもなOCI関数(C言語)

関数名 説明
olog データベースとの接続確立
ologof データベースとの接続リソースを解放
oopen データベースにカーソルの割り当て(SQL発行の準備)
oclose データベースからカーソルの切り離し
ocon 自動コミットの使用を許可
ocoff 自動コミットの使用を禁止
oparse SQLを解析してカーソルと関連づける
odescr oparseにてカーソルにバインドされた入力変数の情報を取得(1項目ずつ)、内部データ型を取得
odefin SQL問い合わせ結果の各項目と出力バッファの関連付け(1項目ずつ指定)、外部データ型へ変換
oexec カーソルに関連づけされたSQLを実行(oexfetの使用が推奨されている)
ofetch 1行ずつSQLの問い合わせ結果を取り出す(oexfetの使用が推奨されている
oexfet カーソルに関連づけされたSQLを実行し、ひとつ以上の行を取り出す
ocan カーソル(SQL問い合わせ)の取り消し
ocom 現在のトランザクションをコミット


内部データ型

コード データ型 説明
96 CHAR( size) 長さsizeバイトの固定長文字列
sizeは1〜255、省略時は1
1 VARCHAR( size) 最大長がsizeバイトの可変長文字列
sizeは1〜2000まで、省略可
1 VARCHAR2( size) 最大長がsizeバイトの可変長文字列
sizeは1〜2000まで、省略不可
2 NUMBER( p, s) 精度p、位取りsをもつ数
精度は桁数、位取りは小数点以下の桁数
pは1〜38(省略時9)、sは-84〜127(省略時2)
8 LONG 最大2Gバイト(2^31-1)の可変長文字データ
12 DATE 日付を格納
23 RAW( size) 長さがsizeバイトのバイナリデータ
sizeの指定は必須
24 LONG RAW 最大2Gバイト(2^31-1)の可変長バイナリデータ
69 ROWID 表中の行アドレスを一意に表す16進数文字列


外部データ型

コード データ型 C言語での型
1 VARCHAR2 char[n]
2 NUMBER unsigned char[n]
3 8ビット符号付き signed char
3 16ビット符号付き signed short
3 32ビット符号付き signed long
4 FLOAT float, double
6 VARNUM char[22]
6 LONG char[n]
9 VARCHAR char[n+slen]
11 ROWID char[n]
12 DATE char[7]
15 VARRAW unsigned char[n+slen]
23 RAW unsigned char[n]
24 LONG RAW unsigned char[n]
68 UNSIGNED INT unsigned
94 LONG VARCHAR char[n+ilen]
95 LONG VARRAW unsigned char[n+ilen]


※ nは任意の数、slenは16bit整数、ilenは32bit整数

 


[ ホーム | お知らせ | ソフトウェア | 覚え書き | メール | ->英語 ]

空色そふと

eXTReMe Tracker