Comments
Description
Transcript
20151116 SQL.pages
データベース論 資料 2015.11 SQL 表1 販売表 表2 客先表 表3 品目表 SQLとは データベースを操作する(データの読み書き等)目的で作られた言語。文法は英語によく似ている。 もともとは Structured Query Language (構造化クエリ[問い合わせ]言語)の略から来ている。現 在では ISO, ANSI, JIS 等で標準化されている。 SQL 文法で作られた文のことを「クエリ」という。 データベースファイルは,データ管理プログラム経由で操作することが多いが,外部からの基本的な 操作は SQL で行うことが多い。 管理プログラムには, Base が標準で利用する HSQLDB をはじめ,商用の Oracle, Access, Microsoft SQL Server などに含まれていたり, フリーソフトの MySQL, PostgreSQL, SQLite などがあ る。 SQL の最大の利点は, RDBMS (relational database management system) の種類にかかわらず,統 一された文法で,データを読み書きできるように定められていることである。 Baseなど DBフロン トエンド DBMS 管理プログラム データベース ファイル web サーバ php など データ管理 ファイル隠 アクセス制御など 経 で直接 1/4 で データベース論 資料 2015.11 SQLでできること/できないこと SQLでできること:データベースの作成・読み書き・アクセス権の設定など SQLでできないこ:データベースのバックアップ・格納形式の変更など SQLの基本文法 文はセミコロン ; で終了すること。命令文の大文字・小文字は区別しない。 テーブル名,フィールド名が日本語の場合は " (ダブルクオート)で囲む。 文字列データの場合は ' (シングルクオート)で囲む。 DB操作 SQL命令 命令文の例 選択 SELECT SELECT "フィールド名" [FROM "テーブル名"] [WHERE 検索条件]; 加えて ORDER BY "フィールド名" ASC/DESC で昇順/降順に並べ替え 挿入 INSERT INSERT INTO "テーブル名" VALUES(データ, データ, ...); 更新 UPDATE UPDATE "テーブル名" SET "フィールド名"=値 WHERE 検索条件; 削除 DELETE DELETE FROM "テーブル名" WHERE 検索条件; 作成 CREATE CREATE TABLE テーブル名(フィールド名 型, ...); CREATE VIEW ビュー名 AS SELECT フィールド名 FROM テーブル名 ...; 検索条件の比較演算子 演算子 意味 例 = 等しい '金額' = 1000 <> 等しくない '金額' <> 1000 > より大きい '金額' > 1000 < より小さい '金額' < 1000 >= 以上 '金額' >= 1000 <= 以下 '金額' <= 1000 部分一致(%で囲む) '住所' LIKE '%東京都%' / ACCESS では % のかわりに * null との比較 氏名' IS NULL / フィールドに値がない場合 LIKE IS 検索条件の論理演算子 論理演算子 AND OR NOT 意味 例 かつ '金額' > 1000 AND '金額' < 2000 または '金額' > 1000 OR '個数' > 2 ∼でない NOT '金額' = 1000 2/4 データベース論 資料 2015.11 検索条件の範囲指定子 範囲指定子 意味 例 BETWEEN 下限 AND 上限 下限から上限までに含まれるデータ BETWEEN 0 AND 10000 IN (値1, 値2, ,,,) 値のいずれかと等しいデータ IN (15000, 25000) SQLの関数 関数名 機能 例 SUM 合計 SELECT SUM("フィールド名") FROM "テーブル名"; AVG 平均 SELECT AVG("フィールド名") FROM "テーブル名"; COUNT 行数 SELECT COUNT("フィールド名") FROM "テーブル名"; MAX 最大値 SELECT MAX("フィールド名") FROM "テーブル名"; MIN 最小値 SELECT MIN("フィールド名") FROM "テーブル名"; Base で SQL を使う 「ツール」メニューの SQL... を選択して SQL 文でデータベースを操作することができる。 また,クエリーの中で SQL 文で編集することができる。 3/4 データベース論 資料 2015.11 (練習) 以下の課題を SQL で書いて Base のクエリーで実行してみなさい。(わからない時は,デザ イン表示でクエリを作成して,SQLで表示してみる) 1. 1つの表から特定の列(フィールド)のみ取り出す a) 販売表から,品目番号と販売数量の列(フィールド)のみ取り出した表を作りなさい。 b) 販売表を品目番号の昇順に並べ替えなさい。 2. 1つの表から特定の(条件に合う)行(レコード)のみ取り出す a) 品目表から在庫が10未満のレコードのみ取り出しなさい。 b) 客先表から住所が東京都の客のレコードのみ取り出しなさい。 c) b) で得られた表から氏名のみの表を取り出しなさい。 3. 表の結合 a) クエリーで販売表と客先表を結合しなさい。 b) クエリーの編集画面で表間のリレーションを切ってクエリを実行してみなさい。どうなるか。 4. レコードの挿入 a) 客先表に自分のデータを挿入しなさい。 5. レコードの更新 a) 4 で挿入したデータの住所を変更しなさい。 6. レコードの削除 a) 4 で挿入したレコードを削除しなさい。 4/4