Çeşitli popüler veritabanı sistemleri için bir tablodaki tüm sütunları nasıl listelersiniz?
Çeşitli popüler veritabanı sistemleri için bir tablodaki tüm sütunları nasıl listelersiniz?
Yanıtlar:
MySQL için şunları kullanın:
DESCRIBE name_of_table;
Bu, SQL * Plus veya Oracle'ın SQL Developer'ı kullandığınız sürece Oracle için de geçerlidir.
DESCRIBE
Tablo_adı_`` olmalıdır ;
DESCRIBE
bir Oracle PLSQL talimatı değil, bir SQL * Plus komutudur ve bu nedenle çoğu SQL IDE'de çalışmaz.
Oracle için (PL / SQL)
SELECT column_name
FROM user_tab_cols
WHERE table_name = 'myTableName'
MySQL için
SHOW COLUMNS FROM table_name
DESCRIBE name_of_table
.
user_tab_cols
sorgunuzda ne var ?
MS SQL Server için:
select * from information_schema.columns where table_name = 'tableName'
information_schema.columns
sistem görünümü ANSI SQL
standardın ( link ) bir parçasıdır .
select COLUMN_NAME from information_schema.columns where table_name = 'tableName' and table_schema = 'databaseName'
(Krallığın en gelişmiş DDBB'si PostgreSQL Onuruna 5 yıl kaldı)
PostgreSQL'de:
\d table_name
Veya SQL kullanarak:
select column_name, data_type, character_maximum_length
from INFORMATION_SCHEMA.COLUMNS
where table_name = 'table_name';
Geç olduğunu biliyorum ama Oracle için bu komutu kullanıyorum:
select column_name,data_type,data_length from all_tab_columns where TABLE_NAME = 'xxxx' AND OWNER ='xxxxxxxxxx'
SQL Server
SELECT
c.name
FROM
sys.objects o
INNER JOIN
sys.columns c
ON
c.object_id = o.object_id
AND o.name = 'Table_Name'
veya
SELECT
COLUMN_NAME
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'Table_Name'
İkinci yol nedenle bir ANSI standardı ve gerektiği üzerinde çalışmak tüm ANSI uyumlu veritabanları.
[
]
, bu nedenle sorgu bunları kullanmamalı, yalnızca düz tablo adını kullanmalıdır. OP'nin amacı bu değilse, en azından bunun farkında olun.
<Table Name>
belirsizliği önlemek olurdu. Her neyse, yorumu yazarken --- her ihtimale karşı başkalarını uyarmanın hiçbir zararı olmadığını düşünmüş olabilirsiniz.
Microsoft SQL Server Management Studio 2008 R2:
Bir sorgu düzenleyicide, tablo adı metnini (ör. Dbo.MyTable) vurgular ve ALT+ tuşuna basarsanız F1, sütun adlarının, türünün, uzunluğunun vb. Bir listesini alırsınız.
ALT+ F1vurguladığınız sırada bu siteye göredbo.MyTable
yayınlanmaya eşdeğerdirEXEC sp_help 'dbo.MyTable'
BİLGİ_CHEMA.COLUMNS sorgulamak için varyasyonları çalışamıyor, bu yüzden bunun yerine bunu kullanın.
SQL Server
Bir veritabanının kullanıcı tanımlı tüm tablolarını listelemek için:
use [databasename]
select name from sysobjects where type = 'u'
Bir tablonun tüm sütunlarını listelemek için:
use [databasename]
select name from syscolumns where id=object_id('tablename')
SQL Server'daki diğerleri üzerinde sadece küçük bir düzeltme (şema öneki daha önemli hale geliyor!):
SELECT name
FROM sys.columns
WHERE [object_id] = OBJECT_ID('dbo.tablename');
Misal:
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
Sadece kodum