it-swarm.it

Come mostrare i nomi delle colonne di una tabella?

Il caso è semplice: hai un database MySQL in cui hai solo un'interfaccia di query SQL e vuoi conoscere la struttura del database con le query. Puoi elencare le tabelle con show tables; comando, ma come vedi i nomi delle singole colonne?

(L'istruzione SELECT mostra Empty set se non sono presenti dati e NON possono essere utilizzati in questo modo.)

17
mico

La migliore soluzione che ho scoperto da solo era il desc table_name comando. Maggiori informazioni su Elenca tabelle MySQL. Questo comando fornisce la descrizione di una tabella di database, che è esattamente quello che stavo cercando di scoprire.

6
mico
select column_name from information_schema.columns where table_name='table'
37
msi77

Per assicurarti di elencare le colonne in una tabella nel database corrente, sa la funzione DATABASE () o SCHEMA () . Restituisce NULL se non ci si trova in un database corrente. Questa query mostrerà le colonne in una tabella nell'ordine in cui sono state definite le colonne:

SELECT column_name,column_type
FROM information_schema.columns
WHERE table_schema = DATABASE()
AND table_name='table'
ORDER BY ordinal_position;
6
RolandoMySQLDBA

Non sono sicuro di capire cosa intendi con i titoli di tabella , ma puoi ottenere la maggior parte delle informazioni sulle tabelle e sulle loro colonne dal INFORMATION_SCHEMA

3

come vedi i titoli delle singole tabelle?

Intendi commenti tabella ?

use stack;
create table t(v integer primary key) comment 'My Special Table';

show tables;
+-----------------+
| Tables_in_stack |
+-----------------+
| t               |
+-----------------+

select table_name, table_comment from information_schema.tables where table_name='t';
+------------+------------------+
| table_name | table_comment    |
+------------+------------------+
| t          | My Special Table |
+------------+------------------+
SHOW COLUMNS FROM mydb.mytable;

dove mydb - è il database che contiene la tabella necessaria

mytable - è la tabella necessaria

Restituisce informazioni sulle colonne (ad esempio nomi di colonne, tipo, ecc)

2
Rolya Chuma

Devi iscriverti a information_schema.tables e information_schema.columns insieme per ottenere l'elenco delle tabelle e i dettagli delle loro colonne.

information_schema.columns mostra non solo i dettagli delle tabelle ma anche le viste. Non è possibile filtrare solo i dettagli della tabella da questa vista del sistema.

Quindi devi unirti.

Quesito di esempio:

select t.TABLE_SCHEMA, t.TABLE_NAME, c.COLUMN_NAME, c.COLUMN_TYPE, c.DATA_TYPE
from information_schema.tables t , information_schema.columns c where 2=2 
and t.table_schema=c.table_schema
and t.table_name=c.table_name
and t.table_type ='BASE TABLE' 
order by t.table_schema, t.table_name, c.column_name 
;
0
Sundar Kannan