テーブルの列/構造を表示(describe)
Oracle
SELECT column_name, data_type, data_length, nullable
FROM user_tab_columns
WHERE table_name = 'EMPLOYEE'
ORDER BY column_id;
-- Shortcut (SQL*Plus): DESC employeeテーブル名は(引用符なしで作成した場合)大文字で格納される。
PostgreSQL
SELECT column_name, data_type, is_nullable, column_default
FROM information_schema.columns
WHERE table_name = 'customer'
ORDER BY ordinal_position;
-- psql shortcut: \d customer\d はインデックス、制約、外部キーも表示する。
MySQL
DESCRIBE customer;
-- or: SHOW COLUMNS FROM customer;完全な定義には SHOW CREATE TABLE customer; を使用する(下記の「DDL を生成」を参照)。
SQL Server
SELECT c.name, t.name AS type, c.max_length, c.is_nullable
FROM sys.columns c
JOIN sys.types t ON c.user_type_id = t.user_type_id
WHERE c.object_id = OBJECT_ID('dbo.customer')
ORDER BY c.column_id;
-- Shortcut: EXEC sp_help 'dbo.customer';sp_help は列に加えてインデックスと制約も一覧表示する。
MongoDB
// The schema is flexible; infer it from a sample document:
db.customer.findOne()
// For field coverage: db.customer.aggregate([{ $sample: { size: 100 } }])MongoDB には固定スキーマがなく、フィールドはドキュメントごとに異なり得る。$jsonSchema バリデータが定義されていれば db.getCollectionInfos で確認できる。
Redis
TYPE mykey # string | list | set | hash | zset | stream
OBJECT ENCODING mykey # internal encoding固定スキーマはなく、各キーの型とエンコーディングは個別に照会する。ハッシュのフィールドには HGETALL を使用する。