SQL2
はじめに
データベースは、情報システムに欠かすことのできない存在です。 データベースに指示を送り操作するものがSQLです。 このSQLについて2回にわたってご紹介します。
第1回目となる今回は、以下の内容をご紹介します。
今回例として用いるテーブルをご紹介します。
また、DBMSは、SQLPlusを使用しております。
商品コード CHAR(5) |
商品名 VARCHAR(200) |
代金 INTEGER |
00001 | ○○○小説 | 800 |
00002 | ABC資格 参考書 | 2500 |
00003 | ABC資格 問題集 | 2800 |
00004 | △△△技術書 | 4200 |
00005 | □□□漫画全巻 | 3200 |
(1)4大命令文
1-1 データの検索(SELECT文)
データベース内にあるテーブルから目的のデータを取得する場合にSELECT文を用います。FROM テーブル名 /*このテーブルから*/
(WHERE 修飾)
(その他の修飾)
SELECTの後ろに取得したいデータの列を記述します。また、列名の代わりにアスタリスク「*」を付けると全ての列を指定した場合と同じ効果になります。
2行目はFROM 句です。 FROMの後ろにデータを取得するテーブルを記述します。「SELECT」と「FROM」はセットで記述します。
3行目はWHERE 句です。WHEREの後ろにデータを取得する条件(条件式)を記述します。
3行目以降は必須ではないですが、修飾語を追加することで、複雑な処理が可能になります。
FROM 商品一覧;
実行結果
商品コード 商品名 代金
--------------- -------------------- ----------
00001 ○○○小説 800
00002 ABC資格 参考書 2500
00003 ABC資格 問題集 2800
00004 △△△技術書 4200
00005 □□□漫画全巻 3200
代金が2500より大きいものを取得*/
SELECT *
FROM 商品一覧;
WHERE 代金 > 2500 ;
実行結果
商品コード 商品名 代金
--------------- -------------------- ----------
00003 ABC資格 問題集 2800
00004 △△△技術書 4200
00005 □□□漫画全巻 3200
1-2 データの更新(UPDATE文)
テーブルに既にあるデータを更新する場合にUPDATE文を用います。SET 列名1 = 値1 , 列名2 = 値2… /*このデータに*/
(WHERE 修飾)
UPDATEの後ろに更新したいデータがあるテーブル名を記述します。
2行目はSET 句です。 SETの後ろにデータを取得するテーブルを記述します。
3行目のWHERE 句は必須ではないですが、
条件を指定しないと指定した列全てのデータが書き換わってしまうため注意が必要です。
UPDATE 商品一覧
SET 代金 = 9999;
SELECT *
FROM 商品一覧;
実行結果
商品コード 商品名 代金
--------------- -------------------- ----------
00001 ○○○小説 9999
00002 ABC資格 参考書 9999
00003 ABC資格 問題集 9999
00004 △△△技術書 9999
00005 □□□漫画全巻 9999
UPDATE 商品一覧
SET 代金 = 9999;
WHERE 商品コード >= '0003';
SELECT *
FROM 商品一覧;
実行結果
商品コード 商品名 代金
--------------- -------------------- ----------
00001 ○○○小説 800
00002 ABC資格 参考書 2500
00003 ABC資格 問題集 9999
00004 △△△技術書 9999
00005 □□□漫画全巻 9999
1-3 データの削除(DELETE文)
テーブルに既にある行を削除する場合にDELETE文を用います。FROM テーブル名 /*このテーブルから*/
(WHERE 修飾)
DELETEの後ろは、列名を指定する必要がないため何も記述しません。
2行目はSELECT文と同様にFROM 句を記述します。
3行目のWHERE 句は必須ではないですが、
条件を指定しないと全ての行が削除対象なるため注意が必要です。
WHERE 句のないDELETE文の実行は、ためらうクセを身に着けてください。
DELETE
FROM 商品一覧;
WHERE 商品コード >= '0003';
SELECT *
FROM 商品一覧;
実行結果
商品コード 商品名 代金
--------------- -------------------- ----------
00001 ○○○小説 800
00002 ABC資格 参考書 2500
1-4 データの追加(INSERT文)
テーブルに新しいデータを追加する場合にINSERT文を用います。VALUES (値1 , 値2 …) /*この値を*/
INSERT INTOの後ろにデータを追加したいテーブル名を記述します。
さらに、テーブル名の後ろにデータを追加したい列名を記述します。尚、全ての列にデータを追加する場合は、列名の省略が可能です
3行目はVALUES 句です。VALUESの後ろに列名に対応させた追加したいデータを記述します。
INSERT INTO 商品一覧(商品コード , 代金)
VALUES ('00003' , 3200);
SELECT *
FROM 商品一覧;
実行結果
商品コード 商品名 代金
--------------- -------------------- ----------
00001 ○○○小説 800
00002 ABC資格 参考書 2500
00003 3200
INSERT INTO 商品一覧
VALUES ('00004' , 'XYZゲーム攻略' , 2700);
SELECT *
FROM 商品一覧;
実行結果
商品コード 商品名 代金
--------------- -------------------- ----------
00001 ○○○小説 800
00002 ABC資格 参考書 2500
00004 XYZゲーム攻略 2700
00003 3200
商品コードが、バラバラになっているので、商品コードの昇順に並べ替えてみましょう。
ORDER BY 句をSELECT文の最後に記述することで昇順(降順)に並べ替えることができます。
尚、並び順(昇順・降順)は、ORDER BY 句内で指定します。
FROM テーブル名 /*このテーブルから*/
(WHERE 修飾)
ORDER BY 列名 並び順(※)
/*《※並び順》
昇順→ASC または 並び順を省略
降順→DESC
*/
INSERT INTO 商品一覧
VALUES ('00004' , 'XYZゲーム攻略' , 2700);
SELECT *
FROM 商品一覧;
ORDER BY 商品コード;
実行結果
商品コード 商品名 代金
--------------- -------------------- ----------
00001 ○○○小説 800
00002 ABC資格 参考書 2500
00003 3200
00004 XYZゲーム攻略 2700
まとめ
「SQLの概要」について2回にわたってご紹介しました。
まだまだご紹介できていないことがたくさんあるので、またの機会にご紹介していきたいです。
お役に立てると幸いです。