dbMAGIC Ver8.2 SQLガイド
218
0
0
全文
(2) はじめに このたびは、dbMAGIC をお買い上げいただき、まことにありがとうござ います。. dbMAGIC は、システム開発の専門的なユーザ ( システムアナリスト、システム設計者、プログラマーの方々など ) を対 象とした、データベースアプ リケーション開発のためのツールです。 この「 dbMAGIC Ver.8.2 SQL ガ イド 」 では、dbMAGIC での SQL 系データベースアプ リケーション開発について説明し ています。dbMAGIC をご 使用になる時にお手元に置いてご 活用ください。. 1999 年 2 月 5 日. マジックソフトウェア・ジャパン株式会社. ご注意 (1) 本マニュアルの内容の一部または全部を無断で転載することは固くお断りし ます。 (2) 本マニュアルの内容は、将来予告なしに変更することがあります。 (3) 本マニュアルの内容については万全を期して作成しましたが 、万一誤り、お気付きの点などがござ いました ら、ご 連絡くださいますようお願い致します。. (4) 運用した結果の影響につきましては、(3) 項にかかわらず責任を負いかねますのでご了承ください。. Windows および WindowsNT は、米国 Microsoft Corporation の登録商標です。 Java は、米国 Sun Microsystems,Inc. の商標です。 dbMAGIC はマジックソフトウェア・ジャパン株式会社の商標です。 一般に会社名、製品名は会社の商標または登録商標です。. Copyright 1999. ii. SQL ガ イド dbMAGIC Ver.8.2.
(3) 目次 第 1 章 概要. 1.1. 対象読者. 1.2 1.3. 本ガ イド の構成. 1.4 1.5. 例. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 1–2 1–3. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 本ガ イド で得られる知識. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. SQL の構造と特徴. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 1.6 データベースアプ リケーション開発の基本 1.7. 1–1 1–2. SQL データベース管理者. 1–3 : 1–3 1–7. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 第 2 章 データ型. 2.1 2.2. 2–1. ANSI/ISO のデータ型 拡張データ型 : : : :. 2.3 データ型と制限 2.4 データ型の相違 2.5 2.6. 定数. 2.7. まとめ. 1–8. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 2–3 2–3. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. RDBMS の主要データ型. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 2–4 : 2–5 2–5. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 第 3 章 データベースへの接続. 3.1 3.2. SQL サーバとデータベース SQL ユーザインタフェース. 3.3. 接続文字列. 3–1 3–2 : 3–2. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 第 4 章 データベースオブジェクト の作成. 4.1 データベースの作成. 2–2 2–2. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 3–3 4–1 4–2. 4.2 データベースのパラメータの変更 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4–2 4.3 データ定義言語( DDL ) : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4–2 4.4 ビュー. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 第 5 章 カラムの取得とソート. 5–1. 5.1 5.2. テーブルのすべてのカラムの取得. 5.3 5.4. 重複行の取り出しのカット. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. テーブルのカラムを指定して取り出し. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 6–1 : 6–2. 結果のソート - ORDER BY 句 :. WHERE 句による行の選択. 第 7 章 高度な SELECT ステート メント. 7.1 7.2. 式. 7–1 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 7–2 7–4. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 7–5. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 複数のテーブルに対するクエリ. 7.3 グループ 関数 SQL ガ イド dbMAGIC Ver.8.2. 5–2 5–3 5–4 : 5–5. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 第 6 章 行の選択 - WHERE 句. 6.1. 4–4. iii.
(4) 7.4. GROUP BY 句 - グループ 化して結果を出力. 7.5 7.6. ネストされた SELECT ステート メント. HAVING 句 - グループ検索条件. 7.7 データ変換 : : : : : : : 7.8 SQL でのプログラミング. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 7–6. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 7–7 7–9. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 7–10 7–11 :. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 第 8 章 データの変更 — 挿入、削除、更新. 8.1. INSERT. 8.2 8.3. DELETE UPDATE. 8–1 : 8–2. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 第 9 章 データの整合性. 9–1. 9.1 データの整合性を維持するための制約 9.2 参照整合性 : : : : : : : : : : : : : : 9.3 データベースで使用できる制約 9.4 ストアドプロシージャとトリガ. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 第 10 章 ト ランザクション. 9–3 9–3. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 10–3 :10–4. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 10.4 ロックの実行 : 10.5 ロック有効時間. 10–5 10–5. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 第 11 章 システムテーブルとセキュリティ. 11.1 システムテーブル. 11–1 11–2. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 11.2 システムテーブルと機能 : : : 11.3 システムテーブルの使用方法 :. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 11.5 セキュリティ : : : : : : : : : : : : : 11.6 オペレーティングシステムのユーザ名 11.7 システム権限の付与と取消. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 11–4. 11–4 :11–5. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 11–5. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 第 12 章 オプティマイザ. 12–1. 12.1 オプティマイザの動作の仕組み 12.2 アクセスパス : : : : : : : : : :. 12–2 12–2. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 12.3 統計情報の更新 : : : : : : : : : : : : : : : : : 12.4 オプティマイザで使われるアクセスパスの指定. 12–3 :12–4. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 12.5 オプティマイザの動作とアクセスパスのチェック 12.6 例 : : : : : : : : : : : : : : : : : : : : : : : : :. 12–4 12–6. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 第 13 章 dbMAGIC と SQL. 13.1 何故 SQL を使用するのか?. 11–2 :11–3. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 11.4 MS-SQL Server のシステムプロシージャ. 13–1 13–2. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 13.2 dbMAGIC の SQL サポート機能. 13–2. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 13.3 dbMAGIC と SQL の用語 : : : : : : : 13.4 データベースゲートウェイの命名規則 13.5 dbMAGIC と API 、そのバージョン 13.6 dbMAGIC のリポジトリと機能 : :. iv. 9–2 9–2. 10–1 10–2. 10.1 トランザクションのメカニズム 10.2 分離レベル : 10.3 ロックレベル. 8–3 8–4. 13–3 :13–3. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 13–4 1: 3–4. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. SQL ガ イド dbMAGIC Ver.8.2.
(5) 第 14 章 クライアント /サーバアーキテクチャ. 14–1. 14.1 dbMAGIC のクライアント/サーバアーキテクチャ : : : : : : 14.2 RDBMS の(オープン )クライアント/サーバアーキテクチャ 14.3 異種クライアント/サーバ環境の例 14.4 いつ何を使うか : : : : : : : : : : :. 14–2 14–3. : : : : : : : : : : : : : : : : : : : : : : : : :. : : : : : : : : : : : : : : : : : : : : : : : : :. 14–4 :14–4. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 第 15 章 RDBMS 環境の設定. 15.1 RDBMS 環境変数の設定. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 15.2 データベースへの接続 : : : : : : 15.3 データベースアクセス権限の付与. 15–2 15–3. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 第 16 章 dbMAGIC 環境の設定と定義. 16.1 SQL 用 MAGIC ゲートウェイ : 16.2 [設定/動作環境]ダ イアログ. 15–1 15–2 :. 16–1 16–2 :16–4. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 16.3 [設定/ DBMS ]テーブル : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1: 6–4 16.4 [設定/データベース]テーブル : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :16–6 16.5 マルチデータベース. 16–10. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 第 17 章 dbMAGIC のリポジト リ. 17–1. 17.1 [テーブル ]リポジトリ : : : : : : : : : : : : : : 17.2 [カラム]テーブルと[ カラム特性]ダ イアログ. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 17.3 [ インデックス]テーブルと[ インデックス特性]ダ イアログボックス 17.4 定義取得 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 17.5 テーブルの修正. 17–2 :17–5. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 17–8 17–10. : : : : : : : : : : : : : : : : : : :. : : : : : : : : : : : : : : : : : : :. 17–13. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 第 18 章 データ型の割当. 18–1. 18.1 dbMAGIC のデフォルトのデータ型の割当 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1: 8–2 18.2 テーブル定義取得と割当 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :18–2 18.3 SQL のデータ型の強制指定 18.4 日付型と時刻型の割当 18.5 Oracle : : : : : : : : : 18.6 Microsoft SQL Server 18.7 ODBC : : : : : : : 18.8 データ定義規則. 18–3. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 18–4 18–6 :. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 18–7 1: 8–8. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 18–9. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 第 19 章 dbMAGIC と SQL の動作. 19–1. 19.1 一意性の識別 : : : : : : : : : : : : : : : : : : : : : 19.2 ユニークインデックスとノンユニークインデックス. 19–2 :19–3. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 19.3 dbMAGIC プログラムの例 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1: 9–4 19.4 通常のリンク([ リンク]コマンド ) : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :19–4 19.5 リンクジョイン([結合リンク]コマンド ) 19.6 範囲 : : : : : : : : : : : : : : : : : : : : : : 19.7 SQL WHERE 句 19.8 片方向と双方向. 19–5 :19–8. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 19–8 19–11. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 19.9 インクリメンタルサーチ. 19–12. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 19.10RDBMS でのソート : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :19–12 : : 19.11ソートに使われるセグ メントの指定 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 19–12 19.12ソート実行時の動作 : : : : : 19.13ソート処理を行うときの注意 : SQL ガ イド dbMAGIC Ver.8.2. 19–12 : 19–13 :. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. v.
(6) 第 20 章 プログラムのデバッグ. 20–1. 20.1 dbMAGIC ゲートウェイのログ 20.2 RDBMS のツール : : : : : : :. 20–2 20–3. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 20.3 dbMAGIC プロファイラ : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2: 0–3 20.4 フローモニタ : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :20–3 第 21 章 ロックとト ランザクション. 21.1 マルチユーザに関するパラメータ. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 21–1 :21–2. 21.2 アクセスモード と共有モード : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :21–2 21.3 dbMAGIC のロック方式 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2: 1–3 21.4 トランザクションレベル 21.5 エラー復旧 : : : : : : :. 21–5 :21–7. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 21.6 タスクまたはプログラムのコール時のロック 21.7 物理ロックと論理ロック : : : : : : : 21.8 分離レベルとオプティマイザのヒント. 21–8. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 21–8 : 21–10 :. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 21.9 ROLLBACK 関数 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 21–10 : : 21.10INTRANS 関数 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :21–11 第 22 章 埋め込み SQL. 22.1 埋め込み SQL の使用. 22–1 22–2. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 22.2 埋め込み SQL の構成要素 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 22–4 : 22.3 SELECT ステート メントの動作 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :22–7 22.4 埋め込み SQL を使用する際の制限 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 22–8 : 22.5 エラーハンド リング : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :22–9 第 23 章 dbMAGIC と SQL によるパフォーマンス. 23.1 インデックスの定義と使用方法 23.2 範囲の定義. 23–1 23–2. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 23–4. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 23.3 トランザクション 23.4 ソート : : : : : : 23.5 埋め込み SQL 23.6 ビュー : : : :. 23–5 :23–5. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 23–6 :23–6. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 23.7 ストアドプロシージャとトリガ 23.8 クライアント/サーバ : : : : :. 23–7 23–7. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 第 24 章 dbMAGIC バージョン 8 への移行と移植. 24.1 dbMAGIC バージョン 8 の新機能. 24–1 24–2. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 24.2 dbMAGIC 6 、7 から dbMAGIC 8 への移行 24.3 ISAM → RDBMS : : : : : : : : : : : : :. 24–2 :24–3. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 24.4 RDBMS → ISAM : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :24–5 24.5 RDBMS ←→ RDBMS : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :24–5 24.6 同じアプ リケーションを RDBMS と ISAM で使用する場合. 24–5. : : : : : : : : : : : : : : : : : : : : : : : : : :. 第 25 章 技術情報. 25–1. 25.1 [ SQL コマンド ]ダ イアログ. 25–2. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 25.2 一般的な技術事項 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :25–3 : 25.3 Oracle : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 25–4 25.4 MS-SQL Server 25.5 ODBC : : : : vi. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 25–6 2: 5–9. SQL ガ イド dbMAGIC Ver.8.2.
(7) 25.6 旧バージョンと dbMAGIC バージョン 8 でのフラグの扱い 付 録 A SQL コマンド の基本構文. A.1 基本構文. 25–10. : : : : : : : : : : : : : : : : : : : : : : : : : :. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. A–1 : A–2. 付 録 B データベースのデータの例. B.1 製品. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. B.2 仕入先 B.3 在庫 :. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. B.4 営業所 B.5 部門 :. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. B.6 社員情報. SQL ガ イド dbMAGIC Ver.8.2. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. B–1 B–2 B–2 B–2 B–2 B–2 B–3. vii.
(8) 機種別キー操作の違い 本マニュアルで使用している特殊キーの表記と実際使用しているコンピュータのキーの表記とは若干異なる場合があり ます。下記の一覧表を参照してください。. 表記. PC-9801. DOS/V. f1 – f10. F1 – F10. CAPS. Caps Lock. Shift ;. SHIFT. Shift. Ctrl ;. CTRL. Ctrl. PgUp . ROOL UP. PageUp. PgDn. ROOL DOWN. PageDown. INS. Insert. DEL. Delete. BS. Back Space. TAB. Tab. . ; . ;. F1 – F10 ; . . Caps Lock ;. ;. ; . Ins ; Del . ;. Back Space ;. Tab ; . , ;. ;. Enter . Alt . viii. ;. . . Enter. GRP. Alt. HOME CLR. Home. HELP. End. ;. Home ; End . . SQL ガ イド dbMAGIC Ver.8.2.
(9) . 章目次. 第1章. 概要. 1.1 対象読者 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1.2 本ガイド の構成 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1.3 本ガイド で得られる知識 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1.4 例 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1.5 SQL の構造と特徴 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1.6 データベースアプリケーション開発の基本 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1.7 SQL データベース管理者 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 1–2 1–2 1–3 1–3 1–3 1–7 1–8.
(10) 第1章. 概要. dbMAGIC を使用することで、SQL 系のリレーショナルデータベースアプ リケーションの作成が可能になり ます。この「 SQL ガ イド 」では、その方法を説明します。また、dbMAGIC と SQL との間のインタフェース のほか、システムの設定、最適化に関する技術情報も紹介しております。. dbMAGIC を使用することで、移植可能な高性能の SQL データベースアプ リケーションを作成することがで きます。そういったアプリケーションの開発や保守を行う場合、このガイドを参照してください。現在、3GL や 4GL 、SQL 用の第 4 世代ツールも多く出荷され 、移植可能で高性能の SQL データベースアプ リケーショ ンの作成も便利になっています。. dbMAGIC は、各種の SQL データベースに対応しています。ただし 、dbMAGIC と SQL データベースとのイ ンタフェースは、データベースの種類によって多少異なります。対応している SQL データベースのうち、こ のガ イド では、Oracle 、MS-SQL の 2 種類のデータベースについて解説しております。使用するデータベー スに応じて、該当のセクションを参照してください。いずれのセクションでも、dbMAGIC とデータベース 環境とのインタフェースについて触れられています。. dbMAGIC はオープンなシステムです。このため、各種のオペレーティングシステムやファイル管理システ ム、リレーショナルデータベース管理システム( RDBMS )に対応したアプ リケーションの開発が可能です。. 1.1. 対象読者 この「 SQL ガ イド 」は技術マニュアルで、読者として相応の知識のある dbMAGIC 開発者を想定しています。 また、SQL 系データベースもインストールされており、その操作にも習熟していることが必要です。SQL と. RDBMS についても理解していることが条件になります。. 1.2. 本ガイドの構成 「 SQL ガ イド 」は、2 部構成になっています。 第 1 章から第 12 章までが前半部分で 、ここでは SQL の言語や特徴、技術情報について紹介しております。 具体的には、次のような内容になっています。 ■ SQL の概要の紹介 ■ SELECT 文の使用方法 ■ データベース構造 ■ データの更新 ■ トランザクション ■ RDBMS のメカニズム(セキュリティ、オプティマイザ) 第 13 章から 25 章までが後半部分で、ここでは、dbMAGIC と SQL との間のインタフェースについて解説し ております。内容は、次の通りです。 ■ SQL を使った場合のメリットとデ メリット ■ 問題が発生したときの対策. 1–2 概要. SQL ガ イド dbMAGIC Ver.8.2.
(11) 1.3. 1. 本ガイドで得られる知識 このガ イド では、次のような事項について知識が得られます。 ■ SQL データ操作言語( DML )とデータ定義言語( DDL )の基本が身に付きます。 ■ 既存の ISAM 対応の dbMAGIC アプ リケーションを SQL 対応の dbMAGIC アプリケーションに変換で きるようになります。 ■ SQL を使用してファイルを操作する場合のメリットとデ メリットが理解できます。 ■ 種類の異なるファイルマネージャを使用して必要な処理を行うことができるようになります。 ■ オプティマイザに関する基本知識が得られます。 ■ データベースアクセスツールの使い方が理解できます。. 1.4. 例 このガ イドでは、随所に例を紹介しております。例で使用しているデータは、付録 B に一覧で掲載しており ます。. 1.5. SQL の構造と特徴 SQL は、構造化照会言語( Structured Query Language )の略語です。SQL を使うことで、データベースに格 納されているデータを取り出したり操作したりすることができます。SQL は、リレーショナルデータベース と呼ばれるデータベースであれば 、どんなデータベースにも対応しています。リレーショナルデータベース では、テーブルとテーブルを相互に関連付けることができ、こういったテーブルにデータを組織立てて格納 できます。一方、テーブルとテーブルを関連付けデータベースをフラットファイルデータベースと呼んでお り、この種のデータベースでは、関連のないファイルにデータが置かれることになります。 データベースの管理が可能なコンピュータプログラムを、データベース管理システム( DBMS )と呼んでき ます。また、リレーショナルデータベースの管理が行えるプログラムは、リレーショナルデータベース管理 システム( RDBMS )と呼ばれます。. SQL エンジン SQL は、いわば 、エンド ユーザ( およびアプ リケーションプログラム)とデータベースの間に位置します。 つまり、SQL を使用してデータベースのデータを取り出したい場合、エンド ユーザは 、SQL を介してデー タベースにリクエストを送ることになります。リクエストには、データの取り出しのほか、データベースの データの更新や変更、定義といったリクエストもありますが 、いずれも SQL エンジンによって処理されま す。この場合、リクエストは SQL エンジンにより検証が行われ 、その後、データベースに送られます。ま た、SQL エンジンには、リクエストの最適化の機能もあります。. SQL のリクエストが RDBMS に送られると、そのリクエストで指定されているデータが取り出され 、エンド ユーザに送られます。この処理をデータベースクエリなどと呼んでおり、また、この機能から構造化照会言 語という名前が付けられています。なお、SQL は、単なるクエリツールではなく、RDBMS に搭載されてい る機能の制御もすべて可能になっています。. SQL ガ イド dbMAGIC Ver.8.2. 1.3 本ガ イド で得られる知識 1–3.
(12) SQL で操作できる DBMS の機能. データ定義. SQL を使用して、データ構造を定義することができます。また、データとデータとの関係も定義できます。. データの取り出し. SQL を使うことで、データベースに格納されているデータをアプリケーション上で取り出すことができます。. データの操作. SQL を使うことで、データベースに格納されているデータをアプリケーション上で操作できます。操作とし ては、新規のデータの追加、既存のデータの削除、既存のデータの変更が可能です。. アクセス制御 ユーザに権利を付与することで、データに対するユーザのアクセスを制限できます。権利には、表示( 読込) 専用と修正可能の 2 つがあります。. データの共有. SQL はマルチユーザシステムで、そのため複数のユーザからの同時アクセスが可能です。. データの整合性. SQL では、整合性制約を定義でき、この定義はデータベースに格納されます。この定義により、データ操作 の種類にかかわらず、また、処理が SQL 対話型処理であろうと、アプ リケーションプログラムによる処理で あろうと、データの破壊を防止することができます。 データの整合性は、また、トランザクションを使用して維持することもできます。このトランザクションは、. SET TRANSACTION 、COMMIT 、ROLLBACK などの制御ステート メントを使用して定義できます。 SQL 言語には、全部で 13 種類のステート メントが用意されています。 以下は、その一覧です。ステート メントはいずれも、データベースに対して何らかの処理を行うように要求 する機能を持っています。こういった要求としては、たとえば 、新規テーブルの作成、データの取り出し 、 新規データの挿入などがあります。. 1–4 概要. SQL ガ イド dbMAGIC Ver.8.2.
(13) SQL ステート メント. 1. 内容. データ操作. SELECT. このステート メントを使用して、データベースに格納されているデータを取り 出すことができます。. INSERT. このステート メントを使用して、データベースに新規の行(レコード )を追加す ることができます。. DELETE. このステート メントを使用して、データベースに格納されている(レコード )を 削除できます。. UPDATE. データベースに格納されている既存のデータを変更できます。. データ定義. CREATE TABLE DROP TABLE*. データベースに新規のテーブルを追加できます。. ALTER TABLE* CREATE VIEW. 既存のテーブルの構造を変更できます。. DROP VIEW*. データベースに定義されているビューを削除できます。. CREATE INDEX* DROP INDEX*. カラムにインデックスを定義できます。. CREATE SYNONYM* DROP SYNONYM*. テーブル名にエイリアスを定義できます。. COMMENT* LABEL*. テーブルまたはカラムにコメントを定義できます。. データベースのテーブルを削除できます。 新規のビューをデータベースに追加できます。. カラムのインデックスを削除できます。 テーブル名に定義されているエイリアスを削除できます。 テーブルまたはカラムにタイトルを定義できます。. アクセス制御. GRANT REVOKE. ユーザに対してアクセス権限を付与できます。 ユーザのアクセス権限を削除できます。. ト ランザクション制御. COMMIT ROLLBACK. 現在のトランザクションを終了(コミット )できます。 現在のトランザクションを取り消すことができます。. プログラミング関連. DECLARE. クエリに使うカーソルを定義できます。. EXPLAIN* OPEN. クエリのデータアクセスプランの定義に使います。 カーソルをオープンして、クエリの結果を取り出すときに使います。. FETCH. クエリの結果のうち、その 1 つの行を取り出せます。. CLOSE PREPARE*. カーソルを閉じるときに使います。. EXECUTE* DESCRIBE*. SQL ステート メントの動的実行を行う場合、その準備に使います。 SQL ステート メントの動的実行が可能です。 プ リペアド クエリの定義に使用できます。*. * このステート メントは ANSI/ISO の標準ステート メントではありませんが 、主要 SQL 製品には用意されていることが少なくありま せん。. 上記の SQL ステート メントの基本的な構文は同じです。つまり、それぞれ 、動詞と単一もし くは複数の句で 構成されます。また、それぞれ 、独自の機能があります。. SQL ガ イド dbMAGIC Ver.8.2. 1.5 SQL の構造と特徴 1–5.
(14) リレーショナルデータベースと SQL の基本要素. テーブル テーブルは 2 次元の表で、表のセルそれぞれにデータが格納されます。RDBMS の場合、テーブルは一意の 名前で識別されます。また、ISAM ファイルシステムでは、テーブルとファイルの内容を比較することができ ます。テーブルでは、データは、カラム( 列またはフィールド )と行(レコード )を使用して配置されます。 行 テーブルの行にはデータが横方向に並びますが 、この 1 行分のデータをレコード といいます。行を構成する データの種類と数は、同一のテーブルですべて同じです。SQL ステート メントは、テーブルの単一の行また は複数の行に対して機能します。なお、ISAM ファイルマネージャの場合、ステート メントで処理できるの は 1 行に限られます。. カラム テーブルの行は、複数のカラム(列、フィールド )で構成されています。ISAM ファイルマネージャでは、カ ラムはフィールド と呼ばれます。テーブルでは、特定のカラムに置かれるデータはすべて、その属性(デー タ型)とサイズが同じです。たとえば 、顧客のデータが格納されているテーブルの場合、テーブルは、顧客 番号のカラム( 6 桁の数値の列)、顧客名( 30 桁の文字列の列)などの列で構成されます。. NULL 値 テーブルのデータのうち、格納されるべきデータが見つからなかったときや、データが認識不可能だったと き、そのデータは NULL になります。SQL データベースではすべて、NULL 値がサポートされています。ま た、ISAM でも、NULL 値は空白とは区別されます。NULL は、値が不明であることを示しており、NULL 値には特別な扱いが必要です。たとえば 、数値カラムに対して数値計算を行うとき、そのカラムに単一もし くは複数の NULL 値が入っていた場合、計算結果は、NULL となります。また、テーブルのレコード のうち、 文字列カラムの値が空白のレコード をすべて取り出すとします。ここで、その文字列カラムのいずれかの行 の値が空白ではなく、NULL 値のときには、取り出される文字列カラムの値が空白のレコードだけです。値 が NULL 値のレコード は取り出されません。. ビュー ビューは、仮想データベースオブジェクトです。データは物理的には内部構造体(テーブルまたはファイル ) に格納されますが 、そういったデータを論理的に取り出して仮想テーブルとして表示できます。これをビュー と呼んでおり、このビューは 、データを見るのに便利です。 ビューには、複数のテーブルのデータを抽出して表示することもできます。ビューの定義は、SELECT ステー ト メントで行うことができ、その機能を持った SELECT ステート メントは名前を付けて保存しておくこと もできます。したがって、ビューは、特殊な SELECT ステート メントとも考えられますが 、通常は、実際の データのないテーブルと考えた方がいいようです。これは、ビューは一般にテーブルとして扱うことが多く、 カラムも SELECT ステート メントで作成したカラムが表示されるためです。. カーソル カーソルは 、SQL ステート メントを指すシンボルです。言い換えれば 、SQL ステート メントがカーソルの 本体ということになります。カーソルをオープンすると、カーソルの本体( SQL ステート メント )が実行さ れ 、結果セットが生成されます。アプリケーションでは、カーソルを使用してデータを取り出すことができ ます。この場合、データは 、結果セットの行を 1 つずつフェッチするという方法で取り出します。. 1–6 概要. SQL ガ イド dbMAGIC Ver.8.2.
(15) 1.6. 1. データベースアプリケーション開発の基本 データベースアプリケーションは、通常、2 つの言語を使用して開発を行います。2 つの言語とは、データ定 義言語( DDL )とデータ操作言語( DML )をいいます。これは、開発ツールが言語ベースであるかど うか、 手続き型であるかど うか、また、オブジェクト指向であるかど うかとは無関係です。 ■ SQL データ定義言語( DDL ) … データの定義を行うときに使う言語をいいます。 ■ SQL データ操作言語( DML ) … データの取り出しに関する処理を行うときに使う言語です。複数のレ コード をグループ 化して取り出すこともできますし 、レコード を 1 つ ずつ取り出すこともできます。また、取り出したデータを操作するこ とも可能です。. SQL データ定義言語( DDL ) DDL は 、データベーステーブルの構造の定義や変更のための処理コマンド の集合で 、たとえば 、CREATE TABLE や ALTER TABLE は、この DDL のコマンド です。DDL のコマンド としては、このほか、CREATE VIEW など 、テーブルに対して細かい操作を行えるものもあります。CREATE VIEW では、実際のテーブル のウィンド ウ(ビュー)を作成することができます。. SQL データ操作言語( DML ) DML は、データの変更に関する処理コマンド の集合です。DDL のコマンド ではテーブルの構造の定義と変 更が可能なのに対して、DML のコマンド では、テーブルに格納されているデータについて操作を行うこと. . ができます。たとえば 、DML のコマンドを使用して、データベースのデータを照会したり更新したりできま す。SQL の場合、DML のコマンド の構文は、一般に簡単で全体的にも統一されています。 注意:. このガ イドでは例を示して説明していますが 、例では、変数はカッコでくくっています。実際に SQL ス テート メントを入力するときには、このカッコの部分を実際の変数に置き換えてください。. . データベースの照会 データベースのデータは 、仮想テーブルの形で返ります。この仮想テーブルは 、複数の行で構成されます。 また、行は照会( DML のコマンド )の条件にしたがって並べられます。指定する条件は各コマンド で異な り、次のようになります。 ■ SELECT. … カラム( 列)のリストを指定します。. ■ FROM. … テーブルのリストを指定します。ここで指定したテーブルから、データが取り出される ことになります。. ■ WHERE. … ど ういったデータを取り出すか、その条件を指定します。指定した条件に合致するデー タ(レコード )が選択されます。. ■ GROUP BY … カラムのリストを指定します。指定したカラムをもとに、内容が似ている行がグループ 化され 、そのグループが 1 行で出力されます( サマリークエリとも言います) 。 ■ HAVING. … 条件を指定します。 GROUP BY で出力されたグループのうち、この条件に合致するグ ループだけがクエリの結果として出力されます。. ■ ORDER BY … カラムのリストを指定し ます。ここで指定したカラムを基準にして、クエリの結果が ソートされます。ORDER BY を使わないときには、結果はソートされません。. SQL ガ イド dbMAGIC Ver.8.2. 1.6 データベースアプ リケーション開発の基本 1–7.
(16) データベースの更新 リレーショナルデータベースでは、一度に 1 つのテーブルに対してだけデータの更新が可能です。データの 更新には、次のコマンド を使います。 ■ INSERT INTO. … テーブルに単一もしくは複数の行(レコード )を追加できます。. ■ UPDATE. … テーブルのデータを変更できます。. ■ SET. … カラム設定ステート メントです。更新対象のカラムを指定できます。また、更新の 方法を指定することもできます。. ■ WHERE. … 条件のリストです。更新対象となる行(レコード )を限定できます。. ■ DELETE FROM … テーブルの行(レコード )を削除できます。 ■ WHERE. 1.7. … 条件のリストです。削除対象となる行(レコード )を限定できます。. SQL データベース管理者 データベースでは、物理ディスクへのデータベースのインストール、ファイルのバックアップや復旧、シス テムへのアクセスの管理といった作業が必要になりますが 、こういった作業を担当するのがデータベース管 理者です。そのほか、要望に応じて、データの提供をオプティマイズ( 最適化)するのもデータベース管理 者の仕事になります。 データのオプティマイズには、インデックスを使うのも有効です。データベースのデータは、インデックス なしでも表示したり取り出したりできますが 、インデックスを使うことで処理が高速になります。インデッ クスは、通常、開発段階で設定されますが 、インデックスの最終的な設定や調整はデータベース管理者が行 います。 データベース管理者には、一般に RDBMS に関して非常に詳しい知識が必要になります。また、データベー スの設計変更は、データベース管理者にだけ許されます。一方、ISAM データベースの場合には、それほど 厳しい条件はなく、ファイルの作成と変更ができるユーザであれば 、システムマネージャを務めることがで きます。. 1–8 概要. SQL ガ イド dbMAGIC Ver.8.2.
(17) . 章目次. 第 2 章 データ型 2.1 ANSI/ISO のデータ型 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2.2 拡張データ型 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2.3 データ型と制限 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2.4 データ型の相違 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2.5 定数 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2.6 RDBMS の主要データ型 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2.7 まとめ : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 2–2 2–2 2–3 2–3 2–4 2–5 2–5.
(18) 第2章. データ型. ANSI/ISO の SQL 標準規格では、各種のデータ型が定義されています、データは 、こういったデータ型を使 用して SQL データベースに格納でき、また、SQL 言語で操作できます。ただし 、SQL 標準規格で定義されて いるデータ型は最低限のもので、出荷されている SQL 製品では、ほとんどの場合、このほかにも各種のデー タ型が用意されています。また、似たようなデータ型が提供されていることもあります。以下、ANSI/ISO の. SQL 標準規格で定められているデータ型を照会します。. 2.1. ANSI/ISO のデータ型 ■ 固定長文字列. … テキストデータの場合、このデータ型で格納します。たとえば 、個人や企業の名前、 住所、摘要などは、このデータ型を使います。. ■ 整数. … 数、量、年齢などは、このデータ型を使います。たとえば 、顧客番号、社員番号、受 注番号などの識別番号は、このデータ型で格納します。. ■ 小数. … 小数があり、正確に計算しなければならない数値は、このデータ型を使います。たと えば 、率、パーセント、通貨などには、このデータ型を使います。. ■ 浮動小数点数値 … 重量や距離など 、数値が大きく、計算はおおよそでいい場合、このデータ型にし ま す。通常、小数数値より桁数が多く、四捨五入もそれほど 正確でなくてもかまわない 場合、このデータ型を使います。 データ型. 内容. CHAR (長さ). 固定長文字列. CHARACTER (長さ) INTEGER. 整数. INT SMALLINT. スモール整数. NUMERIC (precision,scale) DECIMAL (precision,scale) DEC (precision,scale) FLOAT (precision) REAL DOUBLE PRECISION. 2.2. 小数. 浮動小数点数値 ( 8ビット ) 浮動小数点数値 (4ビット ) 倍精度の浮動小数点数値 (16 ビット ). 拡張データ型 市販されている SQL 製品( SQL データベース)では、そのほとんどに ANSI/ISO の標準データ型以外のデー タ型が用意されています。こういったデータ型を拡張データ型などと呼んでいます。以下は、拡張データ型 の例です。 ■ 可変長文字列. … VARCHAR と呼ばれるデータ型で、ほとんどの SQL 製品でサポートされ ています。 このデータ型の場合、実際に入力されている( または、入力 する)文字列のサイズが項目のサイズになります。ただし 、サイズに上限 はあります。ANSI/ISO 標準では、固定長文字列だけが定められています。 このデータ型の場合、項目のサイズは決まっており、文字列の右側には空 白( スペース)が入れられます。. 2–2 データ型. SQL ガ イド dbMAGIC Ver.8.2.
(19) ■ 通貨. … MONEY または CURRENCY などと呼ばれるデータ型で、このデータ型 がサポートされている SQL 製品も少なくありません。このデータ型では、 値は通常、小数または浮動小数点数値で格納されます。このデータ型を使 うことで、通貨の値を必要な桁数や形式で表示できます。. ■ 日付と時刻. … SQL 製品では、細かいところは違いがありますが 、通常、日付と時刻も 扱えるようになっています。また、日付と時刻のほか、タイプ スタンプ、 時間の長さ、日付/時刻の計算も行えるのが普通です。. ■ 論理データ. … 論理値( TRUE 、FALSE )がサポートされています。. ■ ロングテキスト. … SQL データベースの中には、サイズの大きいテキスト、たとえば 、2 ギガ バイトといった大きいテキストを格納できるデータ型が用意されているこ ともあります。ただし 、こういったデータ型の項目に対しては、照会や検 索はできないのが普通です。. ■ 非構造化バイト スト リーム … Oracle などでは 、可変長の非構造化バイト ストリームの格納や取り出し が可能なデータ型が用意されています。このデータ型の項目には 、圧縮 ビデオイメージや実行可能コード 、その他の非構造化データを格納でき ます。こういったデータとしては、Microsoft SQL の IMAGE や Oracle の. LONGRAW などがあります。 ■ アジア文字. … 漢字などのアジア文字は 、文字数が多いため 16 ビット( 2 バイト )で表 現されます。ただし 、アジア文字の検索やソートはできません。. 付録 A に、主要 SQL データベースでサポートされているデータ型の一覧がありますので参考にしてください。. 2.3. データ型と制限 データ型にはそれぞれ 、使用上の制限があります。たとえば 、SQL データベースではいずれも、日付は有効 な値しか格納できません。 例: ■ Oracle. … DATE. ■ MS-SQL Server … DATETIME 上記のど ちらの場合も、日付の値として 0 は無効です。DATE には、通常、日付のほか時刻も含まれます。. 2.4. データ型の相違 データ型は各種 SQL データベースにより異なりますが 、これが 、SQL ベースのアプ リケーションを作成す るときの障害となります。各 SQL データベース間でデータ型の違いがわずかであっても、実際に 、SQL ス テート メントでデータ型を使う場合には、その相違は見過ごせないものになります。たとえば 、同じ SQL ク エリでも、データベース管理システムが異なる場合、その SQL クエリで返る結果は異なります。. SQL データベースは、移植性に優れているといわれますが 、これは一般的なレベルで移植性があるというこ とにすぎ ません。つまり、特定の SQL データベース用のアプ リケーションは、別の SQL データベース用の アプ リケーションに移植できますが 、データ型と SQL ステート メントの部分は調整しなければなりません。 したがって、SQL ベースのアプ リケーションの完璧な移植性というのは、現在のところ目標でありますが 、 現実的ではありません。. SQL ガ イド dbMAGIC Ver.8.2. 2.3 データ型と制限 2–3. 2.
(20) 2.5. 定数 SQL ステート メントでは、定数を使うことができます。定数は、行(レコード )の項目に格納することもで きますし 、項目に格納されている値と比較を行う場合に使うこともできます。また、SELECT ステート メン トで何らかの値を選択するときに使用できます。定数としては、数値、文字、日付のいずれかが使えます。 また、複数の SQL コンテキストで使うこともできます。 定数の挿入と比較は、どこでも可能です。ただし 、定数が文字または日付の場合、その値を一重引用符で囲 まなければなりません。これで、定数である文字または日付が 、項目名や予約語と識別されることになりま す。なお、定数が数値の場合、一重引用符で囲む必要はありません。これは 、項目名やテーブル名は必ず、 文字で始まるためです。たとえば 、次のようになります。. INSERT INTO SALESREP (EMPL_NUM, NAME, QUOTA, HIRE_DATE, SALES) VALUES (115, ’Dennis Irving’, 175000.00, ’21-JUN-90’, 0.00) INSERT ステート メントでは、挿入したい値を VALUES 句を使用して指定します。また、定数は、式を使用 して指定することもできます。以下は、SELECT ステート メントで式を使用して定数を指定している例です。. SELECT CITY FROM OFFICES WHERE TARGET (1.1 * SALES) + 10000.00 ANSI/ISO の SQL 標準では、数値定数と文字定数、リテラルのフォーマットが定義されています。この定義 は、ほとんどの SQL データベース製品で有効です。. 数値定数 数値定数としては、整数定数と小数( 10 進数)定数があります( 厳密数値リテラルなどとも呼ばれます)。 ど ちらも、SQL ステート メントでは、通常の整数または小数と同じように指定できます。したがって、プラ ス記号、マイナス記号を付けることもできます。. 2–4 データ型. SQL ガ イド dbMAGIC Ver.8.2.
(21) 2.6. RDBMS の主要データ型 データ型1. Oracle 2. MS-SQL Server. 固定長文字列. CHAR(n). CHAR(n). 可変長文字列 ロングテキスト. VARCHAR2(n) LONG. VARCHAR(n) TEXT. 整数. NUMBER(p). TINYINT SMALLINT. 2. INT 小数. NUMBER(p,s). 通貨. MONEY FLOAT. 浮動小数点 日付/時刻. DATE 3. 論理データ. DATETIME BIT BINARY(n) VARBINARY(n). バイトストリーム. RAW LONG. IMAGE SYSNAME. RAW. USER TYPE NAME. その他 1 大半の SQL データベースでは、独自のデータ型のほか、ANSI/ISO で定められているデータ型も使用できます。 2 Oracle では、数値はすべて、独自の内部フォーマットで格納されます。プレシジョンは、40 桁です。 3 Oracle の DATE データ型は、実質上はタイプスタンプです。Oracle では、Oracle の関数を使用してタイムスタンプ の中の日付と時刻の部分を分割できます。. 2.7. まとめ ANSI/ISO の SQL 標準では、Character( 文字)、Integer( 整数)、SmallInt( スモールインテジャ )、Numeric ( 数値)、Decimal( 小数)、Float( 浮動小数点)、Real( 実数)、Double Precision( 倍精度)の各データ型が 定められています。一方、データベースにも通常、拡張データ型が用意されています。こういった拡張デー タ型としては、Varchar( 可変長文字列)、Money( 通貨)、Date( 日付)、Boolean( 論理) 、Long(ロング ) 、. Raw( ロー)などがあります。拡張データ型は、ユーザの要求に応える形で用意されていますが 、逆に、異 なるデータベース間の移植という点では不利になります。. SQL ガ イド dbMAGIC Ver.8.2. 2.7 まとめ 2–5.
(22) 2–6 データ型. SQL ガ イド dbMAGIC Ver.8.2.
(23) . 章目次. 第 3 章 データベースへの接続 3.1 3.2 3.3. SQL サーバとデータベース SQL ユーザインタフェース 接続文字列 : : : : : : : : :. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. 3–2 3–2 3–3.
(24) 第3章. データベースへの接続. RDBMS は、サーバとデータベースで構成されます。ユーザからデータベースに対しては、接続文字列を使 用して接続できます。. 3.1. SQL サーバとデータベース SQL コマンド は、SQL サーバに送られ 、処理されます。SQL サーバ上では RDBMS ソフトウエアが動作し ており、ここでデータの同時並行処理が実行されます。 SQL サーバはデータベース管理を行うソフトウェアです。一方、クライアントは、サーバに対してデータを 要求するためのアプ リケーションです。サーバが起動すると、メモリ領域が割り当てられると同時に、サー バのバックグラウンドプロセスが開始されます。 データベースシステムでは、ほとんどの場合、サーバ上に複数のデータベースを置いておくことができます。 なお、データベースシステムのうち Oracle は、ほかのデータベースシステムとは用語の使い方が多少変わっ ています。つまり、Oracle サーバでは、インスタンスを複数起動させることができ、このインスタンスがそ れぞれ 、ほかの SQL サーバのデータベースに相当します。これは、インスタンスにそれぞれ 、データベース が置かれる形式になっているためです。このため、Oracle では、データベースはインスタンスと呼ばれるこ ともあります。また、単一のサーバマシンに Oracle のインスタンスを複数起動することもできます。インス タンスは、SID で識別されます。. 3.2. SQL ユーザインタフェース RDBMS にはそれぞれ 、対話型のユーザインタフェースが用意されています。ユーザは 、このユーザインタ フェースに対して接続することになり、接続後、ユーザは SQL ステート メントを実行することができます。 この場合、実行する SQL ステート メントは 、接続先となる RDBMS に対応してなければなりません。ユー ザは 、この対話型ユーザインタフェースを介して SQL スクリプトファイルを実行することもできます。ま た、ストアドプロシージャの作成も可能です。 対話型ユーザインタフェースは、データベースシステムによって異なり、それぞれ次のようになっています。 ■ MS SQL Server … ISQL/W ■ Oracle. … SQL*Plus. 上記の対話型ユーザインタフェースのほか、C などの第 3 世代言語を使用して SQL コマンドを実行すること もできます。. 3–2 データベースへの接続. SQL ガ イド dbMAGIC Ver.8.2.
(25) 3.3. 接続文字列 SQL データベースに対して SQL コマンドを実行したい場合、まず、ユーザは SQL サーバに接続することが 必要です。この接続は、接続文字列をデータベースに対して送信することで行えます。接続文字列には、デー タベースサーバのパラメータとしてサービ ス名を指定しなければなりません。 接続文字列の構造は、データベースによって異なります。. 3. 例: ■ Oracle … (ローカル ) 指定しません。 ( リモート ) サービ ス名 以上のようにして SQL サーバへの接続が完了すれば 、ユーザは、使用するデータベースを選択することがで きるようになります。なお、ほとんどの RDBMS では、GUI インタフェースを使用して接続ができるように なっています。ただし 、通常、接続コマンド ラインによる接続も実行できます。. SQL ガ イド dbMAGIC Ver.8.2. 3.3 接続文字列 3–3.
(26) 3–4 データベースへの接続. SQL ガ イド dbMAGIC Ver.8.2.
(27) . 章目次. 第 4 章 データベースオブジェクト の作成 4.1 4.2 4.3 4.4. データベースの作成. 4–2 4–2 データ定義言語( DDL ) : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4–2 ビュー : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4–4 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. データベースのパラメータの変更. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :.
(28) 第4章. データベースオブジェクトの作成. SQL の場合、ユーザは 、普通はデータベースの作成にはあまり関係しなくても済みます。これは 、SQL で は、対話型のユーザインタフェースがすでに用意されているためで、ユーザは、このユーザインタフェース を介してデータベースなどを扱うことができます。 ただし 、ユーザにとっても、売り上げ予測表など 、主に個人用途のテーブルを作成して利用したいこともあ ります。また、マルチユーザ環境では、テーブルやデータベースを作成し 、ほかのユーザと共有したい場面 も出てきます。そのほか、データベースを個人的に使いたい場合、専用のデータベースを作成し 、専用のア プ リケーションで使用したいこともあります。こういったときには、ユーザがそれぞれ 、データベースを作 成するという必要性も起こります。. 4.1. データベースの作成 データベースは、一般に 、データモデルに関係する要素で構成されています。つまり、データベースとは 、 テーブル、ビュー、インデックス、その他、データベースに関係するオブジェクトで構成されているものを いいます。データベースは、このように複数の要素の集まりですが 、データベースを作成する場合、まず、 データベース自体を作成することが必要です。 データベースは、オペレーティングシステムでは操作することはできません。理由は、データベースのレコー ドは RDBMS により管理され 、逆に、このレコード によりデータベースの存在が RDBMS によって確認され るためです。また、レコード はディスクに置かれて管理されるため、オペレーティングシステムには認識さ れることはありません。 データベースオブジェクトの物理位置は直接チェックすることはできませんが 、物理位置を指定することは できます。また、オブジェクトのパラメータを指定することもできます。さらに、データベースオブジェク トの格納位置の範囲を指定することも可能です。データベースオブジェクトの物理位置に関連する用語とし ては、テーブルスペース、データベーススペース、セグ メント、デバイスなどがあります。. SQL では 、データベースは、CREATE DATABASE コマンド を使用して作成できます。このコマンド では 、 位置( 格納場所)などのパラメータ(オプション )を指定することもできます。たとえば 、次のようになり ます。. MS-SQL Server CREATE DATABASE dbname ON device1=16 LOG ON logdev 1=10. 4.2. データベースのパラメータの変更 データベースの作成時にはパラメータを指定することができますが 、その後、指定したパラメータを変更し たいことも出てきます。そういった場合、ALTER DATABASE コマンド を使用してデータベースのパラメー タを変更することができます。これで、データベースの機能は拡張や変更が可能になります。. 4.3. データ定義言語(DDL) SQL ステート メントのうち、データベースの構造自体を操作できるステート メントを DDL 言語( DDL ス テート メント )と呼んでいます。. DDL ステート メントでは、次のようなことが可能です。 ■ 新規のテーブルやビューの定義と作成 ■ 既存テーブルやビューの名前の変更. 4–2 データベースオブジェクトの作成. SQL ガ イド dbMAGIC Ver.8.2.
(29) ■ テーブルやビューの削除 ■ 既存のテーブルやビューの定義の変更 ■ データベースのセキュリティの制御 ■ インデックスの作成と削除 ■ データの格納場所の変更 主な DDL ステート メントとしては、CREATE 、DROP 、ALTER 、RENAME があります。以下、機能を簡単 に紹介します。. 4. ■ CREATE … データベースオブジェクトの定義と作成が可能です。 構文:. CREATE [TABLE,INDEX] 名前 (カラム定義) 「 カラム定義」には 、カラム名( 項目名)とデータ型を対で指定し ます。データ型の右に. NOT NULL オプションを付加しておくと、NULL の入力が禁止されます。デフォルトは 、 NOT NULL になっています。 例:. CREATE TABLE custs (custno INTEGER, custname CHAR(30), hire date DATETIME) CREATE を使用してテーブルを作成する場合、カラム名( 項目名)とデータ型の対は、コ ンマで区切って複数指定できます。カラム定義に指定する要素は、まとめると次のようにな ります。 ・ カラム名( 項目名) ・ データ型 - 文字列、日付、数値など ・ 長さ なお、データベースによっては、独自のデータ型があることもあります。ただし 、ANSI 標 準のデータ型は、通常、どのデータベースでもサポートされています。. RDBMS によっては、SELECT ステート メントの結果( 項目)を使用して新規のテーブルを 作成できることもあります。この場合、作成されたテーブルのフィールド( 項目)構成は、 SELECT ステート メントの実行先のテーブルと同じになります。 CREATE [UNIQUE] [CLUSTERED] INDEX インデックス名 ON テーブル名 (カラム名 [, カ ラム名]) CREATE ステート メントではインデックスを作成することもできますが 、その場合、複数 のカラムに対して単一のインデックスを定義することができます。複数のカラムに対してイ ンデックスを作成したときには 、物理データは 、インデックスが設定されたカラムの順に したがって格納されます。この方法は、とくに一意なインデックスを頻繁に使うときに有効 です。 ■ DROP. … 既存のデータベースオブジェクトを削除できます。 構文:. DROP TABLE (テーブル名) テーブルが不要になったり、テーブルをもう一度作り直したいときには、DROP TABLE ス テート メントでテーブルを削除できます。DROP TABLE でテーブルを削除すると、そのテー ブルに関連するインデックスもすべて削除されます。. SQL ガ イド dbMAGIC Ver.8.2. 4.3 データ定義言語( DDL ) 4–3.
(30) ■ ALTER. … データベースオブジェクトの定義の変更が可能です。 構文:. ALTER TABLE (テーブル名) ADD カラム名 カラム定義 場合によっては 、アプ リケーションで使用しているテーブルの項目を追加したり、内容を 変更したいときもあります。そんなときには、ALTER TABLE ステート メントが使えます。. ALTER TABLE ステート メントでは、次のような処理が可能です。 ・ 項目の追加 ・ 既存の項目の定義の変更 ■ RENAME…. オブジェクトの名前の変更が可能です。 構文:. RENAME TABLE 既存のテーブル名 新規のテーブル名 データベースの中のオブジェクトの名前を変更したいときもあります。オブジェクトの名前 は RENAMEっを使用して変更できます。このステート メントでは、テーブル、カラム、ス トアドプロシージャトリガの名前を変更できます。. RENAME は、RDBMS の種類によっては使えないこともあります。たとえば 、Microsoft SQL の場合、オブジェクトの名前は、RENAME ステート メントではなくストアドプロシージャ. . . ( sp rename )を使用して変更しなければなりません。 注意:. DDL ステート メントを実行すると、ほとんどの場合、データデ ィクショナリにロック. . がかけられます。ただし 、DDL ステート メントで変更されるのはテーブルの定義だけ で、行の内容は変更されません。. 4.4. . ビュー テーブルと併せて、ビューを作成しておくと、テーブルのデータの閲覧に便利です。ビューは、DML ステー ト メントのうち、テーブル名の代わりにビュー名が指定できるステート メントであれば 、作成が可能です。 また、ビューを使うことで、セキュリティの確保や DML ステート メントの簡略化、処理速度の向上も見込 めます。 なお、ビューにはいくつか制限もあります。たとえば 、複数のテーブルをもとに作成したビューでは、デー タを挿入することはできませんし 、データの更新や削除も不可能です。また、SELECT ステート メントでカ. . ラム名のほかに式を使用してカラムを指定し 、その SELECT ステート メントでビューを作成した場合、作成 されたビューでは、内容の更新はできません。 注意:. . 既存のビューに対して SELECT ステート メントを実行した場合、必ずしも、その SELECT ステート メン トによるデータが表示されるとは限りません。つまり、テーブルの代わりにビューを指定して SELECT. . ステート メントを実行すると、その SELECT ステート メントに、ビューの SELECT ステート メントが追. 加されて実行されます。このため、実行した SELECT ステート メントの結果は、予測とは異なります。. 4–4 データベースオブジェクトの作成. . SQL ガ イド dbMAGIC Ver.8.2.
(31) . 章目次. 第 5 章 カラムの取得とソート 5.1 5.2 5.3 5.4. テーブルのすべてのカラムの取得. 5–2 5–3 重複行の取り出しのカット : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 5–4 結果のソート - ORDER BY 句 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 5–5 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :. テーブルのカラムを指定して取り出し. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :.
関連したドキュメント
め測定点の座標を決めてある展開図の応用が可能であ
(2) カタログ類に記載の利用事例、アプリケーション事例はご参考用で
私たちの行動には 5W1H
その後、徐々に「均等範囲 (range of equivalents) 」という表現をクレーム解釈の 基準として使用する判例が現れるようになり
l 「指定したスキャン速度以下でデータを要求」 : このモード では、 最大スキャン速度として設定されている値を指 定します。 有効な範囲は 10 から 99999990
スライド5頁では
この課題のパート 2 では、 Packet Tracer のシミュレーション モードを使用して、ローカル
(約13万店)は、一般廃棄物に ついて収集運搬業の許可不要 で、収集運搬費用徴収可能(処 分費用は預り金).