SQL(Structured
Query Language)
構造化問い合わせ言語
◆SQLとは
関係データベースにおいてデータの定義、操作を行う言語。
データ定義言語、データ操作言語で構成
<データ定義言語(SQL-DDL)>
・スキーマ定義(CREATE SCHEMA)
データベースの構造を定義するSQL文の集合
・表定義(CREATE TABLE)
表の名前、項目の名前、データの型、大きさを定義
・ビュー表定義(CREATE VIEW)
仮想の表。利用者が必要とする表を作成することができる。
・権限定義(GRANT)
参照、更新などの権限を制御する。
<データベース操作言語(SQL-DML)>
・SELECT文
データを取り出す時に使用
下の問題で説明すると
SELECT 商品番号
←商品番号の列を表示
FROM 商品
←商品の表から
WHERE 商品名 LIKE '%めん' ←商品名が“***(任意)めん”の語句で
AND 単価<330
←かつ、単価が330円以下の行
・INSERT文
データの挿入
下の問題の商品表に‘500、オムレツ、600’のデータを追加するために
INSERT INTO 商品
(商品番号、商品名、単価)
VALUES
(500、N‘オムレツ’、600)
・ DELETE文
データの削除
商品表から商品番号100を削除するためには
DELETE FROM 商品
WHERE 商品番号=100
・UPDATE文
データの変更、更新
商品表の商品番号100を商品名とんかつ、単価1000に変更
UPDATE 商品
SET 商品名=N‘とんかつ’、単価=1000
WHERE 商品番号=100
★★★宿題:二種向け・J検2級向け★(1999/12/11)
“商品”表に対して,次の SQL文によって得られる結果はどれか。
SELECT 商品番号 FROM 商品
WHERE 商品名 LIKE '%めん'
AND 単価<330
商品
| 商品番号 | 商品名 | 単価 |
| 100 | ラーメン | 305 |
| 130 | きしめん | 285 |
| 205 | チャーシューメン | 700 |
| 267 | おかめうどん | 300 |
| 307 | 八宝めん | 350 |
| 390 | カレーライス | 400 |
| 401 | チャーハン | 320 |
| 420 | きつねうどん | 298 |
ア
| 商品番号 |
| 100 |
| 130 |
イ
| 商品番号 |
| 100 |
| 130 |
| 267 |
| 420 |
ウ
| 商品番号 |
| 130 |
エ
| 商品番号 |
| 130 |
| 267 |
■解答■(宿題メールより)
二種午前平成11年秋問51
> 商品名の最後に「めん」が含まれる、単価が\330以下の商品の商品番号を抽出す
> る必要があります。
> この条件に当てはまるのは、商品番号「130」のきしめん(\285)のみです。
どうもありがとうございました。
> 商品表から”*めん”というのをさがすと、130のきしめんと307の八宝めんが該
> 当。
> ただし、もう一つの条件として単価が330より小さいものなので、選択される商
> 品番号は130と考えました。
> 100は、らーめんという表記なら、該当すると思うのですが、文字として異なる
> ものではないかと思います。
どうもありがとうございました。
> 最初、ウかな〜?と思ったのですが、
> 実際にSQLでクエリーしてみたらアの結果になりました。
??。そうですか?
>たしかANYCHARAは、ACCESSだと *
>Oracle,SQLseverだと % を使いますね。
どうもありがとうございました。
>日本語に約してみました。
>商品名が検索条件<最後の2文字に”めん”がつく任意の長さの文字列>に当て
>はまるもので、かつ、単価が330未満の商品番号を商品表から選択しなさい。
>どうでしょうか?
いいですよ。
> 1年ほど前から,MS-Accessを仕事でいじるようになりました。
> Accessでは,クエリーに,
> 直感的に操作できるデザインビューと,
> SQLビューというのがあり,両方見比べているうちに,
> 自然にSQLを覚えてしまいました。
>
それで,わりとデーターベース関連の問題は得意です。
> (逆にExcelを触らなくなり,
> 初級シスアド試験では,入れ子になったIF関数などで,
> 頭がこんがらがっていた。^^;)
表計算とデータベース,利用法がうまく使えると,いいですよね。
> 「めん」という文字を含み、尚且つ単価が330円より安いものを
>
表「商品」から、「商品番号」を抽出せよ!ということなので、
> 該当するのは 「130 きしめん 285」のみで、その商品番号の
> 130とだけ書かれている表の「ウ」を選びました。
どうもありがとうございました。きしめんと言えば,名古屋ですね。大垣駅の
うどんもおいしいですが,そこで,話題になったのは,JR
金山駅(名古屋の近く)
のきしめんはおいしいそうですよ。
> 4月の試験のときには、'ラーメン'はカタカナ表記なのに選んでしまって『ア』
> を選択してしまいました。(;_;)
この問題,そうおもうと結構遊んでますよね。
★★★宿題:二種(基本情報技術者)向け★(2000/7/3) 関係データベースの表操作において,表 1 と表 2 から表 3 を作る操作はど れか。 表 1 表 2 表 3 ┌――┬――――――┐┌――┬――――┐┌――┬――――――┬――――┐ │番号│ 品名 ││番号│発注先 ││番号│ 品名 │発注先 │ ├――┼――――――┤├――┼――――┤├――┼――――――┼――――┤ │ 010│パソコン本体││ 010│ A 社 ││ 010│パソコン本体│ A 社 │ ├――┼――――――┤├――┼――――┤├――┼――――――┼――――┤ │ 011│ディスプレイ││ 011│ B 社 ││ 011│ディスプレイ│ B 社 │ ├――┼――――――┤├――┼――――┤├――┼――――――┼――――┤ │ 020│プリンタ ││ 020│ C 社 ││ 020│プリンタ │ C 社 │ ├――┼――――――┤├――┼――――┤├――┼――――――┼――――┤ │ 025│キーボード ││ 025│ D 社 ││ 025│キーボード │ D 社 │ ├――┼――――――┤├――┼――――┤├――┼――――――┼――――┤ │ 030│モデム ││ 030│ E 社 ││ 030│モデム │ E 社 │ └――┴――――――┘└――┴――――┘└――┴――――――┴――――┘ ア 結合 イ 射影 ウ 選択 エ 包含
(解答例)
結合(Join):複数の表から条件に合致した、列同士を結合して、新しい表を作成
射影(Projection):条件に合う、列だけを取りだし、新しい表を作成
選択(Selection):条件に合う、行だけを取りだし、新しい表を作成
上記3つの項目を覚えるだけで十分。
■解答■(宿題メールより)
二種午前平成12年春問48
> 結合
> 複数の表をまとめて一つの表にすること
>
> 射影
> 表の中から条件に合った列を抜き出すこと
>
> 選択
> 表の中から条件に合った行を抜き出すこと
> (第二種情報処理技術者試験直前整理特大号
P110より)
どうもありがとうございました。
>[jhomework] 19990921より
>このページが簡潔にまとめられていました。
>http://home.highway.ne.jp/kogure/syllabus/database/c03.html
どうもありがとうございました。
>先日の1種向け宿題(6月20日分宿題メールに解説あり)で
>結合をすると、2つの表の行数でかけ算をして
WHERE条件で
>指定するというジャン先生の解説がとても役にたっています。
>なんで WHERE 表1.番号 = 表2.番号
のように指定するか
>恥ずかしながら、よくわかっていませんでした。
どうもありがとうございました。