.net column
.NET開発者のためのブログメディア

表

SQLを扱う際に知っておくべきこと8選|テーブル一覧を取得する方法3選も紹介

2020年03月16日
SE
SQL Serverでテーブルの一覧を確認したいのですが、どんな方法がありますか?
PM
SQL Server Management Studio(以下SSMS)で確認する方法とクエリで取得する方法があります。いずれも簡単なので、サクッと覚えてしまいましょう。

SQLについて


SQLは「Structured Query Language」を略した言葉で「構造化された問い合わせ言語」という意味です。Queryは「問い合わせ」という意味ですが「コマンド」という意味が強いと言えるでしょう。

多くのデータベースエンジンへの指示はこのSQLの規格に沿ったコマンドを記述します。データベースのテーブル一覧などの状態の表示や制御などもSQL文を使用することが多いようです。

データベースと関係性とは

現在、一般的に利用されているデータベースは「リレーショナルデータベース」と言われているシステムです。

これは、データを一覧表のような形で持ち、それぞれのデータを関連付けて運用するためリレーショナル(relational:関係のある、相関的な)という言葉が入っています。

データの関連付けには、データの内容を数値などのコード値に置き換えて、そのコード値を使用するなどの使用方法があります。

テーブルについて

テーブルとは、データをスプレッドシートのように体系的に一覧表にしたものです。

テーブルの各行はレコードと呼ばれる1件分のデータになります。そして、各列はフィールドまたはカラムと呼ばれるデータの詳細を表します。テーブル自体やテーブルの各列には、格納できる値を指定する、「データがない状態」を許可するか否かなどを指定できます。

多くのデータベースでは、データを一意に決めるためにインデックス(索引)を定義します。

SQLを扱う際に知っておくべきこと9選


SQLを使用したデータベースを使用、または管理するにはSQLの表記方法や文法を知る必要があります。SQL文は簡単な英単語を並べて表記します。また、よく使われるSQL文や表記はごく限られます。

ここでは頻度の高いSELECT、条件を指定するWHERE、順序を指定するSORT、複数のテーブルを参照する方法、NULLという特別な値、集計方法、データの挿入(追加)、更新、削除などを見ていきましょう。

SQLを扱う際に知っておくべきこと1:SELECT文を理解する

SELECTはデータを取得するSQLで、頻度の高いSQL文と言えるでしょう。SELECT文は一般的には取得するデータの条件や取得したデータの並び順を指定して使います。また、テーブル一覧の取得にも使います。

SELECTは取得したデータを任意の条件で区分けして数値の小計を計算する、条件に合ったデータの件数を数える、などにも使い、「条件に合ったデータの上位10件」など取得件数を限定することも可能です。

SQLを扱う際に知っておくべきこと2:WHEREについて理解する

WHEREは条件を指定する語句です。指定できる条件式は1つとは限らず、複数の条件を組み合わせることもでき、また条件の否定(○○でないとき)も指定できます。

複数の条件を組み合わせるときは、指定した全ての条件を満たさなければならない「AND」、1つ以上の条件を満たせばよい「OR」でそれぞれの条件をつなぎます。否定を指定するときは条件の先頭にNOTを指定します。優先順位はNOT、AND、ORの順です。

SQLを扱う際に知っておくべきこと3:ソートの機能を理解する

ソートはSELECT文で取得したデータを、任意に指定した項目の順序で並べ替える方法で「ORDER BY」を使います。

ソートは取得したデータをソートする項目と昇順、降順のどちらの順序にするかを指定しますが、複数の項目を指定して、それぞれについて昇順、降順の指定も可能です。SQLでは数値データだけでなく文字データもソートの対象にできます。文字でのソート順はそのテーブルで使用している文字コードに依存します。

SQLを扱う際に知っておくべきこと4:データベースの結合と正規化を理解する

データベースを運用していくと「正規化」が必要になることがあります。

データベースの運用を続けていくとデータの重複などが起こってくることがあります。正規化とは、運用で発生した重複したデータを統一する、コード化するなどで簡潔な構造にする、などのことです。

正規化には(他のデータベースを含む)テーブルを結合する、値をコード化したテーブルを作りそのテーブルを参照する、などがあります。

SQLを扱う際に知っておくべきこと5: NULLを理解する

データベースに格納されるデータにはNULLと呼ばれる、「データなし(値なし)」の状態が入ることがあります。NULLという特別な値があるのは、「値なし」、「値が不明」という状態を取れるようにするためです。

NULLは「値なし」、「値が不明」という状態のため、数値項目であれば(0ではないため)四則計算はできません。また、日時の項目であれば日付や時刻の計算ができないという制約が起こります。

SQLを扱う際に知っておくべきこと6:クエリ式を理解する

クエリとは、「データベースシステムへの命令文」です。クエリとSQL文は同じものと考えてよいでしょう。

クエリは「データベースエンジンに何をさせたいのか」を記述するため、SQLの文法を知らなければなりません。SQL文はコマンド(SELECTなど)、対象にするテーブル、検索などの条件、ソート順などを指定します。また、一度のクエリで複数のテーブルを参照でき、そのときの参照方法には注意がいります。

SQLを扱う際に知っておくべきこと7:集計関数を理解する

SQLには、取得したデータについて様々な集計計算用の関数が用意されています。集計計算の関数は、合計、平均、最大値、最小値などがあります。これらの集計関数はテーブル一覧を得るSQLには使用しません。

また集計関数のほかに取得したデータ数を求める関数も用意されています。データ数を求めるときはグループ化する「GROUP BY」と組み合わせて、そのグループごとのデータ数も求められます。

SQLを扱う際に知っておくべきこと8:手順を把握する

SQLを使用してデータベースにアクセスするときには独自の特性があります。

SELECT文でデータを取得したときは、そのデータのセットを解放するまで同じテーブルからデータを取得できません。また、SQLにはトランザクション(transaction)と呼ばれる処理単位があり、これは排他制御と共に使用します。
SQLの特性からどのような手順でアクセスすればよいかを考えなければなりません。

SQLを扱う際に知っておくべきこと9:行の挿入・更新・削除を理解する

SQLでSELECTの次に使用頻度が多いものはデータ挿入(追加)のINSERT、行のデータ更新のUPDATE、データ削除のDELETEの3つが挙げられるでしょう。

INSERTでは規定値以外の全データの指定が必要で、UPDATEとDELETEは対象となる行をWHEREで指定しなければなりません。
UPDATEやDELETEで対象行の指定がないと、テーブルの全データが更新や削除の対象になってしまいます。

SQL ServerでSSMSを使ってテーブル一覧を確認する


SSMSでのテーブル一覧は、取得というよりも確認です。GUIに表示されている任意のデータベースから、「テーブル」左の”+”をクリックするだけでテーブル一覧が表示されます。

データベースsample_1のテーブル一覧を表示させます。テーブル左の”+”をクリックすると上記のようにデータベース内にあるすべてのテーブルが表示されるのです。

[dbo.]で始まるテーブルはユーザーテーブルといわれており、ユーザーが作成したものになります。その他にシステムテーブルなどが存在していますが、ディレクトリ内はデフォルトでは空になっています。
SSMSでテーブル一覧を確認する方法は以上です。複数のデータベースのテーブル一覧を同時に表示させることも可能なので、画面の許す限り、網羅的に確認ができます。

SQL Serverでクエリを使ってテーブル一覧を取得する方法3選


次にクエリを使って、テーブル一覧を取得してみます。テーブル取得のクエリは複数あるので、それぞれ見ていきましょう。

テーブル一覧を取得する方法1:サンプルデータを作成する

データベースシステムを構築するときにはサンプルデータが必要になることもあります。

ごく少量であればさほど手間にはなりませんが、システムによっては大量のデータが必要になることもあるでしょう。
インターネット上にはテストデータを自動生成するツールが公開されていて、個人情報に特化したデータを生成するサービスもあるようです。大量のデータが必要であれば、データの自動生成のサービスを利用するのもよいでしょう。

テーブル一覧を取得する方法2:全テーブルの取得する

以下、取得結果です。見覚えのないテーブルが表示されていますが、これはユーザーテーブルに限らず取得されているためです。よって、GUIでは表示されていなかったシステムテーブルなども表示されています。

テーブル一覧を取得する方法3:ユーザーテーブルの取得する

以下、取得結果です。こちらは意図的に作成したユーザーテーブルのみを取得します。

基本的にテーブル一覧を取得したい場合は、こちらのクエリを使うことになるでしょう。
また、取得結果にあったフィールドに対してWHERE句で条件を指定すれば、様々な形でのテーブル取得が可能です。必要に応じて、使い分けてください。

SQLで正規表現を使う際のポイント


SQL文のWHEREの文字列の比較には、正規表現と呼ばれる「文字の出現や並び順のパターン」を指定できます。

一般的な条件式は「特定の文字列との比較」、「特定の文字列で始まる、または終わる」ですが、正規表現を使うと柔軟に指定できます。

正規表現は柔軟な指定ができますが指定方法に煩雑な面があり、想定した条件にならないことがあるため、どのように指定すればよいかを十分考える必要があるでしょう。

SE
テーブル一覧の取得って、本当に簡単なんですね!
PM
そうですね。先にも述べた通り、使う機会は多くないと思いますが、知っておけばいずれ役立つかもしれませんよ。

SQL Serverでのテーブル一覧取得は簡単に可能


SSMSを使えば、マウスをクリックするだけでテーブル一覧が確認できます。
クエリを使う場合も、簡単な構文に沿ってSQL文を書けば良いので、誰にでもすぐできるものです。
SQL Serverを利用するエンジニアであれば、頭の片隅に留めておきましょう。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags