エンジニアの転職を支援するFEnetインフラのテックブログ。ネットワークなどのITインフラ情報を中心に発信中。

  1. FEnetインフラ
  2. FEnetテックマガジン
  3. データベース
  4. SQLのSELECT文とは?技術力を一歩上げるオプションと使用頻度の高い関数

SQLのSELECT文とは?技術力を一歩上げるオプションと使用頻度の高い関数

  • データベース
  • テクノロジー
公開日時:   更新日時:
SQLのSELECT文とは?技術力を一歩上げるオプションと使用頻度の高い関数
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    SQLのSELECT文とは?


    SELECT文とは、SQL ServerやOracleといったデータベースから指定したデータを取り出すための構文です。またAccessなどにも使用出来る事から、システム関係のエンジニアだけでなく、昨今はリサーチ担当者や営業スタッフも使用する頻度は増えています。

    特にSELECT文は、データ抽出における基本的な構文と言えることから、SQLに多少の違いはあれど一度慣れてしまえばどのデータベースでも使用していけるでしょう。

    しかしながらどんな物事も基本や基礎が一番大事と言われているように、SQLもそれは同じです。

    SELECT文の記載の仕方一つで、SQLのデータを抽出するためのスピードが大きく変わります。

    今回は、そんなSELECT文の書き方についてご紹介します。

    基本構文でデータを抽出してみよう!

    それではまず基本的なSQL構文を見てみましょう。

    SELECTに続いて、取得するデータの列名を記載します。この部分をSELECT句と言います。更に、FROMに続いて、取得するデータが入っているテーブル名を記載します。この部分をFROM句と言います。

    具体的なSQLの例がこちらとなります。社員の情報が入っている社員テーブル(Table_Shain)から、社員名(ShainName)を抽出できます。

    このように、SELECT句の後に列名、FROM句の後にテーブル名を記載するSQLの構文が基本となります。

    複数データの抽出方法とは

    先程の章では、一つのデータを抽出するための基本的なSQL構文をご紹介しました。続いては、複数のデータを取り出すための方法についてです。方法としては、大きく二つあるため分割してご紹介します。

    複数の列名を指定しよう

    SELECT句に列名を指定しましたが、ここに複数の列名を記載する事が出来ます。

    記載方法はカンマ( , )で区切る事です。

    具体的に記載した、以下の例を見てみましょう。

    実際にSQLのSELECT文を使用しデータを抽出するケースでは、単一よりもこのように複数の列を指定し、欲しいデータを取り出す場合が多々あります。

    今回は社員テーブル(Table_Shain)から、社員名(ShainName)と社員番号(ShainNo)と住所(ShainAddress)という複数の情報を取り出せます。

    なお、複数の列名を指定するときは、次の列名の前にカンマをつけるようにしましょう。最後の列名の後にカンマは不要です。

    全ての列名を指定しよう

    複数の列名をカンマ区切りで指定する事が出来ると記載しましたが、抽出したいテーブルによっては膨大な列名が存在する事もあります。その場合、*(アスタリスク)を使用する事で、全ての列を抽出する事が可能となります。

    このようにSELECT句のあとに、アスタリスクを記載すると全てという意味になります。

    技術力を一歩上げるオプション

    SELECT句にはSELECTと列名の間に、様々なオプションをつけることが可能です。これにより膨大なデータの中から選ばれたレコードのみを抽出する事が出来るようになります。まずは、以下の二つをご紹介します。

    ALL/DISTINCTの指定

    DISTINCTとは、テーブル内に同じ内容のデータが複数存在する場合、重複を除いた1行のデータを抽出してくれます。

    例えば、りんご、というデータが3件ある場合は同じデータとみなし、りんご、という1件のデータが抽出されます。

    ALLとは、DISTINCTの逆でテーブル内に同じ内容のデータが複数あっても、そのまま全てのデータを抽出します。例えば、りんご、というデータが3件ある場合でも、そのまま3件のデータが抽出されます。

    SELECT文は指定がない場合、基本はALLオプションが自動でついています。

    TOPの指定

    続いて、TOP句についてです。

    Microsoftが提供している SQL Serverというデータベースでは、SQLのSELECT文にTOP句という構文を使用する事が可能です。

    TOP句とは、結果となるデータの先頭から、指定した数値の行数のみを抽出します。

    このように記載することで社員テーブル(Table_Shain)から、社員番号順の先頭5行を抽出できます。

    使用頻度の高い関数の紹介

    SELECT句に指定する列名には、関数を使用する事が出来ます。関数は列名の型(文字列や数値、日付など)に応じて様々な効果を発揮し、抽出したデータをより見やすく、より使いやすいものにしてくれます。

    文字列関数

    文字列関数は、データの型が文字の場合に使用する事が出来る関数です。文字列の置換や切り取り、抜き出しを行う関数が存在します。

    関数名 説明
    LEFT(抽出した文字列, 指定文字数) 抽出した文字列の左から、指定した文字数分を抽出する
    RIGHT(抽出した文字列, 指定文字数) 抽出した文字列の右から、指定した文字数分を抽出する
    RTRIM(抽出した文字列) 抽出した文字列の右から、空白を覗いた文字列を抽出する
    LTRIM(抽出した文字列) 抽出した文字列の左から、空白を覗いた文字列を抽出する
    REPLACE(抽出した文字列, 置換前文字, 置換後文字) 抽出した文字列を指定の文字に置換する
    SUBSTRING(抽出した文字列, 開始位置, 指定文字数) 抽出した文字列から、指定した文字数を抽出する
    UPPER(抽出した文字列) 抽出した文字列から、英字を大文字に変換する
    LOWER(抽出した文字列) 抽出した文字列から、英字を小文字に変換する
    LEN(抽出した文字列) 抽出した文字列の文字数を取得する

    数値関数

    数値関数は、データの型が数値の場合に使用する事が出来る関数です。数値に対する操作を行うため、小数点を含む数値に対して、切り捨てや切り上げ、四捨五入を行う関数が存在します。

    関数名 説明
    CEILING(抽出した値) 抽出した値の小数点を切り上げる
    FLOOR(抽出した値) 抽出した値の小数点を切り捨てる
    ROUND(抽出した値, 桁数) 抽出した値を指定した桁数で四捨五入する

    日付関数

    日付関数は、データの型が日付の場合に使用する事が出来る関数です。年月日の年だけや月だけを取り出したり、日付と日付の足し算や引き算を行う関数が存在します。

    関数名 説明
    GETDATE() データベースが入っているマシンの日付を取得する
    YEAR(抽出した日付) 抽出した日付の、年の部分のみ抽出する
    MONTH(抽出した日付) 抽出した日付の、月の部分のみ抽出する
    DAY(抽出した日付) 抽出した日付の、日の部分のみ抽出する
    DATEPART(日付の種類, 抽出した日付) 日付の種類で指定した箇所の値を抽出する
    DATEADD(日付の種類, 加算値, 抽出した日付) 日付の種類で指定した箇所へ加算した値を抽出する
    DATEDIFF(日付の種類, 開始日付, 終了日付) 日付の種類分、開始日付と終了日付の差分を計算する

    SELECT文まとめ

    いかがでしたでしょうか。それでは最後に今回ご紹介した内容のポイントをおさらいしましょう。

    ・SELECT文によって抽出スピードは大きく変わる
    ・SELECT句とFROM句にて基本構文を作成する
    ・カンマやアスタリスクを使用することで、複数のデータ抽出を行う事が可能
    ・DISTINCTやTOPで、抽出するデータの数を操作する事が出来る
    ・SELECT句の列名には、文字列・数値・日付のなどの関数を使う事が可能

    SELECT文についての基本的な使い方を上記にまとめましたが、これらはデータベースの基礎ながら重要となる部分の一つです。

    SQLにはFROM句やWHERE句などまだまだ使用頻度の高い構文がたくさんありますが、SELECT文の構文を機に他の構文を学ぶきっかけや参考にしてください。

    FEnet経験者優遇! 最短10秒!

    FEnetを運営しているネプラス株式会社はサービス開始から10年以上
    『エンジニアの生涯価値の向上』をミッションに掲げ、
    多くのインフラエンジニア・ネットワークエンジニアの就業を支援してきました。
    ネプラス株式会社ロゴ

    ネプラス株式会社はこんな会社です

    秋葉原オフィスにはネプラス株式会社をはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • インフラ業界に特化

      インフラ業界に特化

      ネットワーク・サーバー・データベース等、ITインフラ業界に特化。Cisco Systemsプレミアパートナーをはじめ各種ベンダーのパートナー企業です。

      業界を知り尽くしているからこそ大手の取引先企業、経験豊富なエンジニアに選ばれています。

    • 正社員なのにフリーランスのような働き方

      正社員なのにフリーランスのような働き方

      正社員の方でも希望を聞いたうえでプロジェクトをアサインさせていただいており、フリーランスのような働き方が可能。帰社日もありません。

      プロジェクト終了後もすぐに次の案件をご紹介させていただきますのでご安心ください。

    • 大手直取引の高額案件

      大手直取引の高額案件

      案件のほとんどが大手SIerやエンドユーザーからの直取引のためエンジニアの皆様へに高く還元できています。

      Ciscoをはじめ、Juniper、Azure、Linux、AWS等インフラに特化した常時300件以上の案件があります。

    • スキルアップ支援

      スキルアップ支援

      不要なコストを削減し、その分エンジニアの方へのスキルアップ支援(ネットワーク機器貸出、合格時の受験費用支給など)や給与で還元しています。

      受験費用例)CCNP,CCIE:6-20万円、JNCIS:3-4万円、AWS:1-3万円など

      ※業務に関連する一定の資格のみ。各種条件がありますので詳しくは担当者へにお尋ねください。

    • 現給与を保証します!

      100%現給与保証

      前職の給与保証しており、昨年度は100%の方が給与アップを実現。収入面の不安がある方でも安心して入社していただけます。

      ※適用にはインフラエンジニアの業務経験1年以上、等一定の条件がございます。

    • インセンティブ制度

      インセンティブ制度

      ネットワーク機器の販売・レンタル事業等、売上に貢献いただいた方にはインセンティブをお支払いしています。

      取引先企業とエンジニア側、双方にメリットがあり大変好評をいただいています。

    • 社会保険・福利厚生

      社会保険・福利厚生

      社員の方は、社会保険を完備。健康保険は業界内で最も評価の高い「関東ITソフトウェア健康保険組合」です。

      さらに様々なサービスをお得に利用できるベネフィットステーションにも加入いただきます。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      ネプラスは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    ネプラス株式会社に興味を持った方へ

    ネプラス株式会社では、インフラエンジニアを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    ネプラス株式会社へのご応募はこちら↓
    ネプラス株式会社へのご応募はこちら↓

    SQLServer新着案件New Job

    人気記事Popular Posts