いつもお世話になっております。
RfromL.comです。
前回はSQLserver上にデータベースを作成する手順、およびテーブルを作成する手順(【SQL Srever】データベース作成手順とテーブル作成手順)について記載しました。
今回は作成したデータベース・テーブルを利用して、SQLの基本4機能「Select」「Insert」「Update」「Delete」を実際に実行しながら使用方法を記載します。
CONTENTS
1.はじめに
2.select文
3.insert文
4.update文
5.delete文
6.おわりに
1.はじめに
今回使用するSQLの命令文はSQLの基本となる以下の4つです。
No | 命令文 | 機能 |
1 | select | テーブルのデータを参照 |
2 | insert | テーブルにデータを追加 |
3 | update | テーブルのデータを更新 |
4 | delete | テーブルのデータを削除 |
データベースを扱ううえで必須の機能なので、必ず覚える必要があります。
実際にSQLを扱う現場に入った場合は何度も使うことになるので、早いうちに覚えておくことにこしたことはないです。
今回実際にSQL文を実行するにあたって使用するテーブルは以下の定義で作成されたテーブルを使用します。
[テーブル名:銘柄基本]
No | 項目名 | 型 | 桁 | Null | KEY項目 | 説明 |
1 | 銘柄コード | char | 4 | NG | 1 | 銘柄コードをセット |
2 | 銘柄名 | char | 60 | NG | 銘柄名を全角30文字でセット | |
3 | 銘柄区分 | char | 1 | NG | 銘柄の種類をセット 1:普通株 2:ETF 3:REIT 4:インフラファンド | |
4 | 運用資産区分 | char | 2 | NG | 運用資産の種類をセット 00:その他(※1) 01:事業所主体型 02:住居主体型 03:商業施設主体型 04:ホテル主体型 05:物流施設主体型 07:総合型 08:複合型 09:ヘルスケア施設主体型 ※1)銘柄区分=3(REIT)以外の場合に設定 | |
5 | 基準年月日 | char | 8 | NG | データの基準年月日 |
2.select文
「select」文はテーブルに格納されたデータを参照する命令文です。
様々な条件を指定することで、参照したいデータを絞り込んだり編集したりできますが今回は条件指定なしでテーブル内のデータを全て参照します。
[構文]
select カラム名1,カラム名2 ・・・カラム名X from テーブル名;
今回は実例として事前に以下のデータを「銘柄基本」テーブルに登録しておいた状態で実行します。
[銘柄基本テーブル登録データ]
銘柄コード | 銘柄名 | 銘柄区分 | 運用資産区分 | 基準年月日 |
2971 | エスコンジャパンリート投資法人 | 3 | 08 | 20220809 |
2972 | サンケイリアルエステート投資法人 | 3 | 01 | 20220809 |
2979 | SOSiLA物流リート投資法人 | 3 | 05 | 20220809 |
2989 | 東海道リート投資法人 | 3 | 07 | 20220809 |
3226 | 日本アコモデーションファンド投資法人 | 3 | 02 | 20220809 |
9281 | タカラレーベン・インフラ投資法人 | 4 | 00 | 20220809 |
9282 | いちごグリーンインフラ投資法人 | 4 | 00 | 20220809 |
9283 | 日本再生可能エネルギーインフラ投資法人 | 4 | 00 | 20220809 |
9284 | カナディアン・ソーラー・インフラ投資法人 | 4 | 00 | 20220809 |
9285 | 東京インフラ・エネルギー投資法人 | 4 | 00 | 20220809 |
実例として実行するSQL文は以下となります。
[SQL文]
select * from 銘柄基本;
表示するカラム名を指定する箇所には「*」(アスタリスク)を指定することで、テーブルの全項目を抽出対象とします。
上記のSQLを実際に実行すると以下のようにテーブル内のデータを参照することができます。
事前に「銘柄基本」テーブルに登録しておいた10件のデータレコードが表示されていることがわかります。
特定の項目だけ抽出したい場合は抽出したい項目のカラム名のみを記載します。
例として「銘柄基本」テーブルの「銘柄コード」項目と「銘柄名」項目のみを抽出する場合は以下SQL文の記載となります。
[SQL文]
select 銘柄コード,銘柄名 from 銘柄基本;
上記のSQL文を実行すると以下のように表示されます。
「銘柄基本」テーブルから、select文で指定した項目「銘柄コード」と「銘柄名」だけが抽出されていることがわかります。
3.insert文
「insert」文はテーブルにデータを追加する命令文です。
Insert文は1件ずつ登録する書き方、複数を一括で登録する書き方、別のテーブルのデータからコピーしてデータを挿入する書き方などいろいろありますが、今回は一番単純な1件ずつ登録する書き方を記載します。
[構文]
insert into テーブル名 values(カラム1のデータ,カラム2のデータ ・・・ );
今度は対象のテーブルの中身を事前にデータなし(空っぽ)の状態にしておきます。
登録するデータは、selectの説明の際に事前に登録していたデータと同じデータを使用します。
[SQL文]
insert into 銘柄基本 values ('2971','エスコンジャパンリート投資法人 ','3','08','20220809');
insert into 銘柄基本 values ('2972','サンケイリアルエステート投資法人 ','3','01','20220809');
insert into 銘柄基本 values ('2979','SOSiLA物流リート投資法人 ','3','05','20220809');
insert into 銘柄基本 values ('2989','東海道リート投資法人 ','3','07','20220809');
insert into 銘柄基本 values ('3226','日本アコモデーションファンド投資法人 ','3','02','20220809');
insert into 銘柄基本 values ('9281','タカラレーベン・インフラ投資法人 ','4','00','20220809');
insert into 銘柄基本 values ('9282','いちごグリーンインフラ投資法人 ','4','00','20220809');
insert into 銘柄基本 values ('9283','日本再生可能エネルギーインフラ投資法人 ','4','00','20220809');
insert into 銘柄基本 values ('9284','カナディアン・ソーラー・インフラ投資法人 ','4','00','20220809');
insert into 銘柄基本 values ('9285','東京インフラ・エネルギー投資法人 ','4','00','20220809');
では実際に実行していきます。
手順①対象のテーブルが空っぽになっていることを確認
以下のselect文を実行してテーブル内を参照します。
select * from 銘柄基本;
select文を実行した結果より、「銘柄基本」テーブルにデータが1件も登録されていないことを確認しました。
手順②insertの実行
insertのSQL文を実行します。
1件ずつデータレコードを挿入するinsertを連続して10回実行しているので、「1 行処理されました」のメッセージが10回表示されています。
手順③insert実行結果の確認
再度select文を実行して登録結果を確認すると以下の通りです。
insert文で登録したデータが参照できることで、insert文で正常にデータが登録できてきることが確認できました。
4.update文
「update」文はテーブル内のデータを更新する命令文です。
条件を指定して、特定のレコードに対してのみ更新を行うことができますが今回は単純な例として、レコード抽出の条件は無しで特定の項目に対し全件更新を行います。
[構文]
update テーブル名
set 項目名1 = 更新値1,
項目名2 = 更新値2,
・
・
・
項目名X = 更新値X;
今度はinsertで登録したデータに対し、以下の内容で値を更新します。
【更新対象テーブル】
・銘柄基本
【更新対象レコード】
・全件
【更新対象項目】
・「銘柄区分」の値を「1」に更新
・「基準年月日」の値を「20220820」に更新
上記の更新を行うSQL文は以下の通りです。
[SQL文]
update 銘柄基本
set 銘柄区分 = '1',
基準年月日 = '20220820';
では実際に実行していきます。
手順①更新前のテーブル内容を確認
以下のselect文を実行してテーブル内を参照します。
select * from 銘柄基本;
更新対象項目の値が以下に設定されていることを確認します。
「銘柄区分」 ⇒ 3 と 4
「基準年月日」⇒ 20220809
手順②updateの実行
用意したupdateのSQL文を実行します。
10レコードのデータが入っているテーブルに対し全件更新を行ったので「10 行処理されました」のメッセージが表示されています。
手順③update実行結果の確認
再度select文を実行して更新結果を確認すると以下の通りです。
更新対象項目の値が以下のように更新されていることが確認できます。
「銘柄区分」 ⇒ 1
「基準年月日」⇒ 20220809
5.delete文
「delete」文はテーブル内のデータを削除する命令文です。
条件を指定して、特定のレコードに対してのみ削除を行うことができますが、今回は単純な例として条件なしで、テーブル内のデータ全件削除を行います。
[構文]
delete テーブル名;
上記の削除を行うSQL文は以下の通りです。
[SQL文]
delete 銘柄基本;
手順①削除前のテーブル内容を確認
以下のselect文を実行してテーブル内を参照します。
select * from 銘柄基本;
削除前の状態では、テーブル内にデータレコードが10件入っていることを確認します。
手順②delete文の実行
用意したdeleteのSQL文を実行します。
10レコードのデータが入っているテーブルに対し全件削除を行ったので「10 行処理されました」のメッセージが表示されています。
手順③delete実行結果の確認
再度select文を実行して更新結果を確認すると以下の通りです。
select文を実行した結果、データレコードが0件で表示されていることでテーブル内のデータが全件削除されていることが確認できます。
6.おわりに
今回の内容ではSQL server を使用して説明していますが、SQLの基本4機能についてはOracleなど他のデータベースシステムでもほぼ構文が変わらないので、とりあえずSQL serverで扱えれば現場が変わって扱うデータベースシステムが変わっても使えます。
簡単な構文なのですぐに覚えられる内容ですが、仮にすぐに覚えられなくてもSQLを利用する現場に配属されると、幾度となく使うことになるので嫌でも覚えられます。
正直現場で作業している時は呼吸をするようにSQL文を書くレベルになるので、覚えるにはたくさん使うというのが一番早いです。
また、今回の4機能に限った話ではありませんが、一度でも扱った命令文なら構文までは覚えてなくても「たしかこういう機能の命令文あったよな」という風に機能の存在を知っているので、使いたくなった時に調べることが出来きます。
なので、一度でも使っておくというのは結構大事です。
以上です。
宜しくお願い致します。