テーブル名の取得方法
MySQLで作成したテーブルのテーブル名を取得するには「SHOW TABLES文」を使います。
実際にクエリを実行して確認してみましょう。
mysql> SHOW TABLES; +----------------+ | Tables_in_mydb | +----------------+ | employee | | site_data | | user | +----------------+ 3 rows in set (0.00 sec)
上記のように、今まで作成したテーブル名を一覧で取得できました。
また、PostgreSQLでテーブル名を取得するには「\dt」コマンドを使います。
mydb=# \dt List of relations Schema | Name | Type | Owner --------+-----------------+-------+---------- public | class_table | table | postgres public | department | table | postgres public | employee | table | postgres public | kakeibo | table | postgres public | kakeibo_husband | table | postgres public | mytable | table | postgres public | sample | table | postgres public | sample_tb | table | postgres public | sample_tb100 | table | postgres public | sample_tb2 | table | postgres public | score_table | table | postgres public | score_tb | table | postgres public | tb0811 | table | postgres public | tect_table | table | postgres public | up2_table | table | postgres public | up_table | table | postgres public | user_tb | table | postgres (17 rows)
このようにテーブル名が取得できました。
public ではなく、スキーマに作成したテーブル名を取得する際は、引数に「スキーマ名.*」を指定しましょう。
¥dt スキーマ名.*
テーブル名の変更方法
作成したテーブル名を変更したい場合は「RENAME TABLE文」を使用します。
使い方は次の通りです。
RENAME TABLE 変更前のテーブル名 TO 変更後のテーブル名;
実際に確認してみましょう。
mysql> RENAME TABLE user TO user_list; Query OK, 0 rows affected (0.02 sec) mysql> SHOW TABLES; +----------------+ | Tables_in_mydb | +----------------+ | employee | | site_data | | user_list | +----------------+ 3 rows in set (0.01 sec)
テーブル名を確認してみると、ちゃんと変更されているのがわかります。
PostgreSQLでは次のように記述しましょう。
ALTER TABLE 変更前のテーブル名 RENAME TO 変更後のテーブル名;
実行結果は前述した通りです。
テーブル名に別名を設定する方法
テーブル名に別名を設定するには、「AS句」を使います。
使い方は簡単で「テーブル名 AS 別名」と記述しましょう。
具体的に記述すると、次のようになります。
SELECT * FROM employee AS e;
また、AS は省略も可能です。
SELECT * FROM employee e;
テーブルに別名を設定すると、テーブルを複数指定するSQL文で簡潔に記述できます!
AS句については、以下の記事でも詳しく説明しているので参考にしてみてください。
【関連記事】
▶︎SQLで別名をつけるならAS句を使いこなそう!つけ方をわかりやすく解説
テーブル名に命名規則はある?
テーブル名を決めるのに何か規則はあるんですか?
明確な規則はありませんが、よく利用される命名規則があります。ここで確認していきましょう!
テーブル名の命名規則の決まりはありません。
企業やプロジェクトによっては決められている場合もあるでしょう。
ここでは、一般的によく利用されている命名規則について紹介します。
具体的な内容は次の通りです。
- 大文字を利用しない
- 複数単語の連結はスネークケースを用いる
- 英語表記にする
- 略名は利用しない
- 基本は複数形(〜s)にする
1つずつ簡単に説明します。
①大文字を利用しない
大文字を利用しないのは、SQLの予約語との判別が煩わしくなるからです。
予約語については以下の記事で解説しているので参考までに。
【関連記事】
▶︎【SQL】予約語・キーワード完全保存版!予約語についての説明も。
②複数単語の連結はスネークケースを用いる
スネークケースとは、単語を小文字で記述し、単語の連結部分をアンダースコア文字に置き換えた記述方式です。
例えば「user_list」や「new_score_table」などのように記述します。
③英語表記にする
ローマ字表記や意味のない文字列ではなく、英語表記で記述するのが理想的です。
④略名は利用しない
略名でテーブル名を指定すると文字数が少なく済みますが、他の人が見て理解できるテーブル名にはなっていないかもしれません。
利便性の問題から略名は利用しない方がよいでしょう。
⑤基本は複数形(〜s)にする
テーブルにはさまざまなデータを格納することから、テーブル名は単数形よりも複数形にしておくとよいです。
例えば「list → lists」や「category →categories」のようになります。
複数単語を使うテーブルでは「user_list → users_lists」のように、すべての単語を複数形にする形です。
テーブル名に日本語は使える?
テーブル名に日本語を設定することは、DBMSによっては可能です。
MySQLでは日本語でテーブル名を設定できました。
mysql> create table テスト(id int, name varchar(10)); Query OK, 0 rows affected (0.01 sec) mysql> SHOW TABLES; +----------------+ | Tables_in_mydb | +----------------+ | employee | | site_data | | user_list | | テスト | +----------------+ 4 rows in set (0.00 sec)
ただし、日本語を使用することで予期せぬエラーや不具合が起こる可能性もあるので、使用はオススメしません。
まとめ
テーブル名の取得や変更方法について解説しました。
基本的な構文は同じですが、DBMSによって使い方が異なることもあるのでリファレンスを確認して使うのが確実です。
テーブル名に命名規則はありませんが、あまり自由に設定してしまうと他の人が利用する際に不便に感じるでしょう。
ぜひこの記事を参考に、テーブル名に関する知識を深めてもらえたら幸いです!