さまざまな一般的なデータベースシステムで、テーブル内のすべての列をどのようにリストしますか。
MySQLの場合は、次のように使用します。
DESCRIBE name_of_table;
これは、SQL * PlusまたはOracleのSQL Developerを使用している限り、Oracleでも機能します。
Oracleの場合(PL/SQL)
SELECT column_name
FROM user_tab_cols
WHERE table_name = 'myTableName'
MySQLの場合
SHOW COLUMNS FROM table_name
MS SQL Serverの場合
select * from information_schema.columns where table_name = 'tableName'
(5年後、PostgreSQLの名誉、王国の最も先進的なDDBB)
PostgreSQLの場合:
\d table_name
あるいは、SQLを使用します。
select column_name, data_type, character_maximum_length
from INFORMATION_SCHEMA.COLUMNS
where table_name = 'table_name';
私はそれが遅れていることを知っています、しかし私はOracleのためにこのコマンドを使います:
select column_name,data_type,data_length from all_tab_columns where TABLE_NAME = 'xxxx' AND OWNER ='xxxxxxxxxx'
SQLサーバー
SELECT
c.name
FROM
sys.objects o
INNER JOIN
sys.columns c
ON
c.object_id = o.object_id
AND o.name = 'Table_Name'
または
SELECT
COLUMN_NAME
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'Table_Name'
2番目の方法はANSI規格なので、all ANSI準拠のデータベースでshouldが動作します。
MS SQL Server:
sp_columns [テーブル名]
Microsoft SQL Server管理スタジオ2008 R2:
クエリエディタで、テーブル名(ex dbo.MyTable)のテキストを強調表示してヒットした場合 ALT+F1カラム名、型、長さなどのリストが得られます。
ALT+F1 dbo.MyTable
を強調している間はEXEC sp_help 'dbo.MyTable'
を実行するのと同じです このサイトによると
INFORMATION_SCHEMA.COLUMNSに対するクエリのバリエーションが機能しないため、代わりにこれを使用します。
SQL Serverの場合
sp_help tablename
SQL Serverの他の部分を少し修正するだけです(スキーマプレフィックスがより重要になりつつあります)。
SELECT name
FROM sys.columns
WHERE [object_id] = OBJECT_ID('dbo.tablename');
例:
select Table_name as [Table] , column_name as [Column] , Table_catalog as [Database], table_schema as [Schema] from information_schema.columns
where table_schema = 'dbo'
order by Table_name,COLUMN_NAME
私のコードだけ
SQLサーバー
データベースのすべてのユーザー定義テーブルを一覧表示するには
use [databasename]
select name from sysobjects where type = 'u'
テーブルのすべての列を一覧表示するには
use [databasename]
select name from syscolumns where id=object_id('tablename')