社畜ゲートウェイ

京成・京急を中心に取り上げる阪急ファンのブログです。日本一遅い速報を届けます。

MENU

【スポンサーリンク】

【Oracle】SELECT文の基本

【スポンサーリンク】

OracleにおけるSELECT文の基本的な使い方です。

基本的なSELECT文

SELECT文はテーブルからデータを取得するための基本的なSQLです。テーブルからデータを取得することを「選択」「射影」と言います。

「選択」や「射影」は資格試験で出題されますが、初心者の方は特に意味を理解していなくても大丈夫です。気になったら調べて下さい。

難しいことは今は置いておいて、SELECTの基本的な構文は以下の様に記述します。

SELECT
 列名のリスト
FROM
 テーブル名;

基本構文は上記なのですが、もう少し具体的に書くと、以下の様に記述します。

SELECT1
 ,列2
 ,列3FROM
 テーブル名;

SELECT句で取得したい列(カラム)をカンマ区切りで並べます。FROM句には取得したいテーブル名を記述します。テーブルの全ての列の情報を取得したい場合は、次の様に記述します。

SELECT * FROM テーブル名;

SELECT句に列を記述する代わりに「*」(アスタリスク)を記述することで、テーブルの全ての列を取得できます。

 

使用例

では、実際に使用してみましょう。SQL確認用のテーブルを用意しました。山手線の駅番号(STATION_NO)、駅名称(STATION_NAME)、駅名カナ(STATION_KANA)の情報を持つテーブルです。このテーブルに対してSELECTを実行してみます。

f:id:neko_britannia:20200722213830j:plain

全てのカラムを指定してみます。

SELECT
  STATION_NO
 ,STATION_NAME
 ,STATION_KANA
FROM
 TAB_YAMANOTE_STATION;

ちゃんと出てきましたね。

f:id:neko_britannia:20200722215705j:plain

例えば、「駅番号と駅名だけ出したい」という場合は、次の様に列名を指定します。

SELECT
  STATION_NO
 ,STATION_NAME
FROM
 TAB_YAMANOTE_STATION;

SELECT句の列名を駅番号(STATION_NO)と駅名称(STATION_NAME)だけに指定します。そして実行。

f:id:neko_britannia:20200722220038j:plain

実行すると、駅番号と駅名称だけ取得できましたね。

 

アスタリスクは使うべきか?

先ほど、

SELECT句に列を記述する代わりに「*」(アスタリスク)を記述することで、テーブルの全ての列を取得できます。

と述べましたが、個人的にはアスタリスクの使用は控えた方が良い認識です。速度的な問題についてはインターネット上で議論されていますが、個人的には可読性が落ちるのでアスタリスクの使用は控えています。自分で作成したSQLを久しぶりに見返した時に、「あれ?なんだっけこれ?」となってしまうからです。自分で作成したSQLでさえそういう状態なので、当然、他の人が作成したSQLを見た時にアスタリスクが混じっているだけで解読に時間がかかるという経験は何度もしてきました。私に対して「あんたのスキルが足りてない」と言われたらそれまでですが。

 

関連記事

www.stellacreate.com

www.stellacreate.com