にしのくえすと

情報処理技術者試験のお勉強ブログ


にしのくえすととは?
・「情報処理技術者試験大好き」「ICT資格取りたい」な人のためのブログです。
・あいぱす、セキュマネ、基本、応用、セキュスペ(安全確保支援士)、ネスペあたりの話題が中心です。
・申し述べる見解はあくまで私人としてのもので、勤務先とは一切関係ございません。
・資格試験に関する記事は、自己責任でご利用ください。


・作者のプロフィールはこちら
・にしの作「資格本」電子書籍についてはこちら
・作者の日記系ブログ(不定期)「みがまえるよりはやく」

・にしのくえすとプライバシーポリシー

第8回「SQL」その3

データ操作のSQL

重複せずに抽出する。

SELECT DISTINCT 分類 FROM 商品表 WHERE 商品番号 IN(1001,1002)

商品表から商品番号1001と1002の分類を同一データの重複なく抽出する


行の挿入

INSERT INTO 商品表 VALUE(1003,食料品,チョコボー,100)

表にデータを追加する


指定された行の更新

UPDATE 商品表 SET 価格=108 WHERE 商品番号=1003

商品番号1003の価格を108円に更新する。


指定された行の削除

DELETE FROM 商品表 WHERE 商品番号=1003

商品番号1003のデータを削除する。


EXISTS指定
副問合せを行い、その結果が存在する行だけを抽出する


1 主問合せと副問合せで参照する表が同じ場合
SELECT 商品番号 FROM 商品表 
WHERE EXISTS (SELECT * FROM 商品表 WHERE 価格>=100)

価格が100円以上の商品を抜き出し、その商品番号を抽出する
いやいやまてよ。

SELECT 商品番号 FROM 商品表 WHERE 価格>=100
これでよくない?ですが、これを主問い合せといいます。
別の表の内容を参照にするのを「副問合せ」といい、表の結合条件が
必要になります。


2 参照する表が違う場合
SELECT 商品番号 FROM 商品表 
WHERE EXISTS
(SELECT 商品番号 FROM 在庫表 WHERE 在庫>=10,商品表.商品
 番号=在庫表.商品番号)

在庫が10以上の商品番号を抽出する。別の表の結果をこちら側の検
索の条件にする。これが副問合せ。

3 NOT EXISTS
2とほぼ同じだが、NOT にしてみる

SELECT 商品番号 FROM 商品表 
WHERE NOT EXISTS
(SELECT 商品番号 FROM 在庫表 
 WHERE 在庫>=10,商品表.商品番号=在庫表.商品番号)

これだと、在庫が10以上の商品番号は抽出されない。

 

情報処理技術者試験お勉強ブログ「にしのくえすと」 Presented by にしのA&F