SQLでは、columns
列に関する情報を返す情報スキーマビューは、ほとんどの主要なRDBMSでサポートされているISO標準ビューです。このビューを使用して、列のデータ型に関する情報を取得できます。
主要なRDBMのほとんどは、列情報を取得するための他の方法も提供します。
さまざまなSQLデータベースで列のデータ型を取得する例を次に示します。
information_schema.columns
表示
前述のように、ほとんどの主要なRDBMSはinformation_schema.columns
をサポートしています。 ビュー。
そのビューを使用して列のデータ型情報を返す例を次に示します。
SELECT
COLUMN_NAME,
DATA_TYPE,
CHARACTER_MAXIMUM_LENGTH AS MAX_LENGTH,
CHARACTER_OCTET_LENGTH AS OCTET_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Products'
AND COLUMN_NAME = 'ProductName';
Products
を置き換えます およびProductName
それぞれテーブルと列の名前で。必要に応じて、返される列の数を追加/削減します。
ほとんどの主要なRDBMSは、テーブルと列の情報を取得するためのより簡潔な方法を提供します。これらのいくつかを以下に示します。
SQLite
上記はSQLiteでは機能しません。
SQLiteでこれを行う最も速くて簡単な方法は、PRAGMA table_info()
を使用することです。 ステートメント:
PRAGMA table_info(Regions);
または、sqlite_schema
にクエリを実行することもできます テーブル。 SQLiteでは、すべてのデータベースにsqlite_schema
が含まれています そのデータベースのスキーマを格納するテーブル。 Regions
に関する情報を取得する例を次に示します。 Northwind
のテーブル データベース:
SELECT sql
FROM Northwind.sqlite_schema
WHERE tbl_name = 'Regions';
これを行う別の方法は、.schema
を使用することです。 コマンド:
.schema Regions
その他のオプションについては、SQLiteで列のデータ型を確認する5つの方法を参照してください。
MySQL
MySQLはinformation_schema.columns
をサポートしています ビューですが、DESCRIBE
などの別の方法を使用する方が簡単な場合があります ステートメント:
DESCRIBE Pets;
Pets
というテーブルに関する情報が返されます 。
列名を追加して、1つの列に絞り込むことができます:
DESCRIBE Pets PetName;
PetName
に関する情報が返されます Pets
の列 テーブル。
DESCRIBE
ステートメントは、実際にはSHOW COLUMNS FROM
のDESCRIBE
を置き換えることができます SHOW COLUMNS FROM
必要に応じて。
その他のオプションと例については、MySQLで列のデータ型を確認する4つの方法を参照してください。
MariaDB
MariaDBはMySQLと非常によく似ているため、DESCRIBE
を使用することもできます。 MariaDBでのステートメント。
また、MySQLと同様に、DESCRIBE
SHOW COLUMNS FROM
のショートカットです。 。
したがって、その構文の使用例を次に示します
SHOW COLUMNS FROM Pets
WHERE Field = 'PetName';
ご覧のとおり、DESCRIBE
構文ははるかに簡潔ですが、少なくとも私たちはオプションを知っています。
MariaDBはinformation_schema.columns
もサポートしていることにも言及する必要があります ビュー。
その他のオプションについては、MariaDBで列のデータ型を確認する4つの方法をご覧ください。
SQL Server
SQL Serverは、information_schema.columns
もサポートしています。 ビューですが、他にもいくつかのオプションがあります。
簡単なオプションの1つは、sp_help
を使用することです。 ストアドプロシージャ:
EXEC sp_help Products;
これにより、指定されたテーブル(この場合はProducts
)に関する多くの情報が返されます。 表)。
その他のオプションと例については、SQL Server(T-SQL)で列のデータ型を取得する3つの方法を参照してください。
PostgreSQL
Postgresはinformation_schema.columns
もサポートしています ビューですが、他にもいくつかのオプションがあります。
psqlを使用している場合は、\d
を使用できます テーブル、ビュー、マテリアライズドビュー、インデックス、シーケンス、および外部テーブルに関する情報をすばやく取得するコマンド:
\d public.actor
これにより、特定の列のデータ型だけでなく、少なくともオプションが返されます。
詳細については、PostgreSQLで列のデータ型を確認する3つの方法を参照してください。
Oracle
Oracleでは、DESC
を使用できます コマンド:
DESC HR.COUNTRIES;
COUNTRIES
に関する情報を取得します HR
が所有するテーブル 。
または、ALL_TAB_COLUMNS
をクエリすることもできます ビュー:
SELECT
COLUMN_NAME,
DATA_TYPE,
DATA_LENGTH,
DATA_PRECISION,
DATA_SCALE
FROM ALL_TAB_COLUMNS
WHERE OWNER = 'HR'
AND TABLE_NAME = 'COUNTRIES';
詳細については、Oracleで列のデータ型を確認する3つの方法を参照してください。