#はじめに
MiluDBViewer(JavaFXを使ったGUI DBクライアント)を
作ったときの内容を忘れてきたのでメモします。
今回は、テーブル一覧を取得するSQLについてです。
Oracle - 12c Release 2
select object_name, status from all_objects
where
object_type = 'TABLE'
and
owner = 'スキーマ名'
order by owner, object_name
statusの値域
VALID
INVALID
MySQL - 8.0.11/SQLServer - 2017
select table_name from information_schema.tables
where
table_type='BASE TABLE'
and
table_schema = 'スキーマ名'
order by table_name
MySQLとSQLServerが同じSQLで取得できる!!
PostgreSQL - 10.4
select
c.relname
from
pg_class c join
pg_namespace n on n.oid = c.relnamespace
where
n.nspname = 'スキーマ名'
and
c.relkind = 'r'
order by c.relname
SQLite
select name from sqlite_master
where
type = 'table'
order by name
Cassandra - 3.9.0
select table_name from system_schema.tables
where
keyspae_name = 'スキーマ名'
order by table_name
上記以外のDB
後から知ったのですが、JDBCが実装していれば、
java.sql.DatabaseMeataDataのgetTables()メソッドで、
java.sql.ResultSetが返ってくるので、
resultset.getString("TABLE_NAME")でとれます。
参考URL
https://avaldes.com/jdbc-statement-databasemetadata-gettables-example/