【SQL】””特定テーブル””の全カラムデータ取得する

SQLで全てのカラムデータを取得する際に 「*」を利用されると思います。

SELECT
*
FROM
table

複数のテーブルをJOINしている際の、特定のテーブルだけの全てのカラムデータを取得したい場合はどうするでしょうか??

下記のように、「テーブル名.*」です。

SELECT
a.*
FROM
tableA a
LEFT JOIN
tableB b
ON a.id = b.a_id

これで、特定のテーブルの、全カラムデータを取得出来ます。

Sequel Aceでcopy with column nameが操作出来ない問題

SQLクライアントサービスは何を使っていますでしょうか。
Macであれば、Sequel Ace が非常に使い勝手が良いかと思います。

SQL書き出しした後に、データと一緒にカラム名も一緒にコピーしたいことがあるかと思います。 デフォルト機能でカラムと一緒にコピーが可能です。

しかし、グレースケールしており、選択出来ない状態となっていました。

そこで、解決方法としては、ショートカットを利用するとコピー出来ましたので紹介します。

下記にてCopy selected row(s) with column namesの機能が使えます。

⌥ ⌘ C

SequelAceショートカットはこちらに様々ありましたので、ご確認頂けたらと思います。

SQLのインデックス確認方法 / インデックス対象のカラム

SQLのパフォーマンスを向上させたい場合に、重要な変数であるインデックス。インデックスを作成してパフォーマンス向上していく場合もあるかと思います。

それらを確認する方法を解説します。

show index from テーブル名;

非常にシンプルです。

Q デフォルトで存在するインデックス

出力されたデータを確認頂けると注目して頂きたいのは、Key_nameです。

まず、必ずインデックスがついているのが、PRIMARY KEYです。
デフォルトだと、Tableのidに該当します。

また、PRIMARY KEYでなくても、インデックスが存在している場合があります。
それは、他のTableのPRIMARY KEYに紐付いている外部キー カラムです。

下記2カラムは、
インデックスを作成しなくても、デフォルトでインデックスとなっています。

  • PRIMARY KEY
  • PRIMARY KEYに紐付いている外部キー カラム