Ecco quattro modi per ottenere il tipo di dati di una colonna in MySQL.
Le SHOW COLUMNS
Dichiarazione
Le SHOW COLUMNS
istruzione visualizza informazioni sulle colonne in una determinata tabella o vista. Possiamo passare il nome della tabella o della vista per restituire informazioni sulle sue colonne:
SHOW COLUMNS FROM Pets;
Risultato:
+-----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+-------+ | PetId | int | NO | PRI | NULL | | | PetTypeId | int | NO | | NULL | | | OwnerId | int | NO | | NULL | | | PetName | varchar(60) | NO | | NULL | | | DOB | date | YES | | NULL | | +-----------+-------------+------+-----+---------+-------+
Possiamo restringerlo a una sola colonna, se necessario:
SHOW COLUMNS FROM Pets
WHERE Field = 'PetName';
Risultato:
+---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | PetName | varchar(60) | NO | | NULL | | +---------+-------------+------+-----+---------+-------+
Il DESCRIBE
/ DESC
Dichiarazione
Il DESCRIBE
istruzione è una scorciatoia per SHOW COLUMNS FROM
sintassi:
DESCRIBE Pets;
Risultato:
+-----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+-------+ | PetId | int | NO | PRI | NULL | | | PetTypeId | int | NO | | NULL | | | OwnerId | int | NO | | NULL | | | PetName | varchar(60) | NO | | NULL | | | DOB | date | YES | | NULL | | +-----------+-------------+------+-----+---------+-------+
Basta aggiungere il nome della colonna per restringerla a una colonna:
DESCRIBE Pets PetName;
Risultato:
+---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | PetName | varchar(60) | NO | | NULL | | +---------+-------------+------+-----+---------+-------+
Puoi anche utilizzare i caratteri jolly:
DESCRIBE Pets 'Pet%';
Risultato:
+-----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+-------+ | PetId | int | NO | PRI | NULL | | | PetTypeId | int | NO | | NULL | | | PetName | varchar(60) | NO | | NULL | | +-----------+-------------+------+-----+---------+-------+
Puoi anche abbreviarlo in DESC
:
DESC Pets PetName;
Risultato:
+---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | PetName | varchar(60) | NO | | NULL | | +---------+-------------+------+-----+---------+-------+
Il information_schema.columns
Visualizza
Il information_schema.columns
view contiene informazioni sulle colonne:
SELECT
COLUMN_NAME,
DATA_TYPE,
CHARACTER_MAXIMUM_LENGTH AS MAX_LENGTH,
CHARACTER_OCTET_LENGTH AS OCTET_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'Pets'
AND COLUMN_NAME = 'PetName';
Risultato:
+-------------+-----------+------------+--------------+ | COLUMN_NAME | DATA_TYPE | MAX_LENGTH | OCTET_LENGTH | +-------------+-----------+------------+--------------+ | PetName | varchar | 60 | 240 | +-------------+-----------+------------+--------------+
In questo caso ho usato il DATABASE()
funzione per restituire il nome del database corrente. In alternativa potresti usare il nome di un database specifico.
Il mysqlshow
Utilità
Il mysqlshow
utilità mostra la struttura di un database MySQL (database, tabelle, colonne e indici).
Questa utilità viene eseguita da sola. In altre parole, non eseguirlo da MySQL. Invece, apri una nuova finestra di terminale/riga di comando ed eseguila da lì.
Esempio:
mysqlshow -u root PetHotel Pets PetName
Risultato:
+---------+-------------+--------------------+------+-----+---------+-------+---------------------------------+---------+ | Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment | +---------+-------------+--------------------+------+-----+---------+-------+---------------------------------+---------+ | PetName | varchar(60) | utf8mb4_0900_ai_ci | NO | | | | select,insert,update,references | | +---------+-------------+--------------------+------+-----+---------+-------+---------------------------------+---------+
In questo esempio, PetHotel
è il nome del database, Pets
è la tabella e PetName
è la colonna che mi interessa.
Ho anche fornito il nome utente per il quale connettersi. L'utilità accetta alcune opzioni. Consulta la documentazione di MySQL per ulteriori informazioni.