Per i vari sistemi di database popolari, come si elencano tutte le colonne in una tabella?
Per i vari sistemi di database popolari, come si elencano tutte le colonne in una tabella?
Risposte:
Per MySQL, utilizzare:
DESCRIBE name_of_table;
Questo funziona anche per Oracle finché si utilizza SQL * Plus o Oracle Developer SQL.
DESCRIBE
name_of_table``;
DESCRIBE
non è un'istruzione Oracle PLSQL ma un comando SQL * Plus e come tale non funziona nella maggior parte degli IDE SQL.
Per Oracle (PL / SQL)
SELECT column_name
FROM user_tab_cols
WHERE table_name = 'myTableName'
Per MySQL
SHOW COLUMNS FROM table_name
DESCRIBE name_of_table
.
user_tab_cols
tua domanda?
Per MS SQL Server:
select * from information_schema.columns where table_name = 'tableName'
information_schema.columns
la vista di sistema fa parte dello ANSI SQL
standard ( collegamento ).
select COLUMN_NAME from information_schema.columns where table_name = 'tableName' and table_schema = 'databaseName'
(5 anni laters, per l'onore di PostgreSQL, il DDBB più avanzato del Regno)
In PostgreSQL:
\d table_name
Oppure, usando SQL:
select column_name, data_type, character_maximum_length
from INFORMATION_SCHEMA.COLUMNS
where table_name = 'table_name';
So che è tardi ma uso questo comando per Oracle:
select column_name,data_type,data_length from all_tab_columns where TABLE_NAME = 'xxxx' AND OWNER ='xxxxxxxxxx'
server 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'
o
SELECT
COLUMN_NAME
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'Table_Name'
Il secondo modo è uno standard ANSI e quindi dovrebbe funzionare su tutti i database conformi ANSI.
[
]
intorno ad esso, quindi la query non deve usarli, solo il nome della tabella normale. Se questa non era l'intenzione del PO, almeno esserne consapevole.
<Table Name>
avrebbe evitato l'ambiguità. Comunque, mi sono reso conto che avresti potuto intendere che mentre scrivevo il commento --- non fa male avvertire gli altri nel caso.
Microsoft SQL Server Management Studio 2008 R2:
In un editor di query, se si evidenzia il testo del nome della tabella (ex dbo.MyTable) e si preme ALT+ F1, verrà visualizzato un elenco di nomi di colonna, tipo, lunghezza, ecc.
ALT+ F1mentre hai evidenziato dbo.MyTable
è l'equivalente di correre EXEC sp_help 'dbo.MyTable'
secondo questo sito
Non riesco a far funzionare le variazioni sulla query di INFORMATION_SCHEMA.COLUMNS, quindi lo uso invece.
server SQL
Per elencare tutte le tabelle definite dall'utente di un database:
use [databasename]
select name from sysobjects where type = 'u'
Per elencare tutte le colonne di una tabella:
use [databasename]
select name from syscolumns where id=object_id('tablename')
Solo una leggera correzione sugli altri in SQL Server (il prefisso dello schema sta diventando più importante!):
SELECT name
FROM sys.columns
WHERE [object_id] = OBJECT_ID('dbo.tablename');
Esempio:
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
Solo il mio codice