現場で使える便利なSQL4選!〜基礎から具体例まで分かりやすく解説〜

+17

皆さんこんにちは!広報チームの寺原です!突然ですが、皆さんは現場で『SQL』を使った事はありますか?現代は情報社会といわれているだけあり、データを扱うSQLを使用している方は多いのではないでしょうか。私自身も、現在新規開発の現場に参画させて頂き、スーパーや店舗などの売上管理をするシステムをつくるなかで、以前よりもSQLを使用する機会が多くなりました。そこで、実際に現場でSQLを使用して、『知ってたら活用できるな』『早く知りたかった』と感じる事がありましたので紹介させてください!

こちらの記事は、SQLに関する基礎知識から実際に現場で使用するレベルのSQLまで知る事ができます!

基礎的なところはわかっているよって方は、現場で使えるSQLまで飛んじゃって大丈夫です!

↑クリックで読みたいところへ飛べます!

1.SQLとは(基礎)

SQLは、データベースへのデータ入力・更新・削除をする際に用いられます。データベースには、数百万件ものデータが保存されていることもあるため、SQLを使用することで効率よくデータベースを使いこなす事が出来ます。また、SQLは国際的に標準化されているデータベース言語のため、さまざまなデータベースで利用できる汎用性があります。例えば、『Oracle Datebase』『MySQL』『PostgreSQL』『Microsoft SQL Server』などよく実務現場で使用されるデータベースでは、SQLを利用する事ができます。このことからも、SQLの汎用性の高さが伺えます。

2.SQLの種類と具体例(基礎)

SQLで出来ることを以下にまとめてみました!これらに使用する命令文を簡単に紹介していきます☆

①SQLの種類

データ操作言語

データベース利用者あるいはアプリケーションソフトウェアが、コンピュータのデータベースに対してデータの検索・追加・更新・削除を行う

◯データの検索(SELECT

◯データの追加(INSERT

◯データの更新(UPDATE

◯データの削除(DELETE

データ定義言語

データベース内の表、ビューやインデックスなどの各種オブジェクトの作成や変更を行う

◯テーブルの作成(CREATE

◯テーブルの設定変更(ALTER

◯テーブルの削除(DROP

◯テーブルデータの削除(TRUNCATE

データ制御言語

利用者へのデータベースへのアクセス権の制御やデータベースの状態管理などを行う

◯権限付与(GRANT

◯権限剥奪(REVOKE

②SQLの具体例

今回は、今後エンジニアとしてSQLを使用するなかで、一番使うであろうSELECT文を紹介します!

この辺全然わかるよって方は飛ばしちゃってください☆

SELECT文はデータの検索をする文で、基本的な構文は以下の通りです。

例題を準備しましたので、具体的な使い方を見てみましょう☆

例題

Q.以下の表からぶどうだけ抽出するSELECT文は?

◯テーブル名(SHOKUHIN_KOMOKU)

項目番号(KOMOKU)食品名称(SHOKUMEI)金額(KINGAKU)
0001ぶどう398
0002たまご198
0003いちご400

A.SELECT SHOKUMEI FROM SHOKUHIN_KOMOKU WHERE KOMOKU=’0001′

SELECT 列名 FROM テーブル名 WHERE 抽出条件=ぶどうの項目番号

これで”ぶどう”を抽出する事ができます☆

3.現場で使える便利なSQL4選!!(応用)

では、さっそく現場で実際に利用しているSQLについて紹介していきます!簡単な具体例も含めて解説していきますので、ぜひ参考にしてくださると嬉しいです!分かりにくい点とか、質問等あればコメント欄に記載して頂ければ答えていきます‼︎

①ASでテーブル名やカラム名を別名に変更する

テーブル名やカラム名を別名に変更するには、ASキーワードを使います。「列名 AS 別名」や「テーブル名 AS 別名」この様に、列名やテーブル名を別名に変更する事ができます。

構文例

SELECT 列名[ AS カラムの別名] FROM テーブル名[ AS テーブルの別名]

SELECT * FROM tab1 AS A;

ASを使用する事で tab1の読み方をAに変更する事ができます。

実は…

SELECT * FROM tab1 A;

上記のようにスペースを開けて別名を記入する事で変更する事もできます…!

②INNER JOIN でテーブルを内部結合する

テーブルとテーブルを結合するためのSQL構文です。そして、INNER(内部)であることの特徴は、テーブルとテーブルの互いの条件に一致するレコード(データ行)をのみを抽出するという点です。

構文例

SELECT a.列名,b.列名 FROM テーブルa INNER JOIN テーブルb ON a.列名 = b.列名 –結合条件

▼INNER JOINの使い方

Q.NAME_LISTとKINGAKU_LISTのお互いの条件に一致するレコードを結合しなさい。

◯テーブル名(NAME_LIST)

KOUBANNAME
0001田中
0002高橋

◯テーブル名(KINGAKU_LIST)

KOUBANKINGAKU
00012000
00023000

A.SELECT * FROM NAME_LIST AS a INNER JOIN KINGAKU.LIST AS b ON a.KOUMOKU = b.KOUMOKU

上記のように結合した時の結合イメージは以下の表になります。

KOMOKUNAMEKINGAKU
0001田中2000
0002高橋3000

③IN句で条件判定をまとめて行う

SQLのSELECTでIN句を使用すると、指定した複数の値に合致するデータを抽出することができます。

構文例

SELECT 列名 FROM 表名 WHERE 列名 IN(‘値1’, ‘値2’, …, 値n);

▼IN句の使い方

Q.いちごとぶどうの情報を抽出しなさい。

◯テーブル名(SYOKUHIN_LIST)

KOUBANSYOKUHINKINGAKU
0001いちご1000
0002ぶどう2000
0003レモン3000

A.SELECT * FREM SYOKUHIN_LIST FROM SYOKUHIN IN (’いちご’,’ぶどう’);

実行結果

KOUBANSYOKUHINKINGAKU
0001いちご1000
0002ぶどう2000

④複数の検索結果を結合し1つの結果にするUNION/UNION ALL

複数の検索結果を統合し、1つの結果にする時に使用します。

『UNION』は次の図の様に和集合を求める構文となっています。

また、『UNION』と『UNION ALL』の違いは、重複を含めるかになります。違いを以下にまとめました!

構文例(UNION)

SELECT 列名 FROM 表名1 UNION SELECT 列名 FROM 表名2

構文例(UNION ALL)

SELECT 列名 FROM 表名1 UNION ALL SELECT 列名 FROM 表名2

UNIONとUNION ALLの使い方

Q.2つのテーブルのKOUBANをまとめなさい。

◯テーブル名(NAME_LIST)

KOUBANNAME
0001田中
0003高橋

◯テーブル名(KINGAKU_LIST)

KOUBANKINGAKU
00012000
00023000

①UNIONを使って検索結果を結合した場合

A.SELECT KOUBAN FROM NAME_LIST UNION SELECT KOUBAN FROM KINGAK_LIST

実行結果

KOUBAN
0001
0003
0002

②UNION ALLを使って検索結果を結合した場合

A.SELECT KOUBAN FROM NAME_LIST UNION ALL SELECT KOUBAN FROM KINGAK_LIST

実行結果

KOUBAN
0001
0003
0001
0002

上記の表の違いから、UNIONは重複しているものが表示されないのが分かりますよね。大量のDBから重複してないリストを抽出したいときなどに使えます!機会があったらぜひ使ってみてくださいね☆

4.まとめ

皆さんここまでお疲れ様でした!SQLで知ってるもの使ってるものはいくつありましたか?まだまだ、SQLで使える知ってたら便利な構文沢山あります!また記事で紹介させて頂きますね☆開発の現場ではかなりSQLを使用する機会が増えますので、これから開発現場に行くって方は是非今回の内容を覚えてくださると嬉しいです!

↓メンバーが二人増えたので書き替えます…笑

最近の投稿

+17
    MUROFUSHI
    Freeeks

    現場で使うときに、スッと抽出できるとかっこいいですよね!!

    TODA

    ちょうど復習したいと思っていたのでいいタイミングでした😆広報バナーも楽しみにしてます💓

    KOYAMA
    研修生

    勉強になります!!

    YAMADA
    SES

    説明がわかりやすくていいですね!忘れたら復習しに戻ってきます!笑

    TAMAGAWA
    人事部

    SQLは使う現場が多いので必見です♪( ´θ`)ノ

    MASUDA
    広報

    SQL勉強したいと思ってました! 最高です!