sql >> Database teknologi >  >> RDS >> Mysql

4 måder at kontrollere en kolonnes datatype i MySQL

Her er fire måder at få datatypen for en kolonne i MySQL.

SHOW COLUMNS Erklæring

SHOW COLUMNS sætning viser information om kolonnerne i en given tabel eller visning. Vi kan videregive navnet på tabellen eller visningen for at returnere oplysninger om dens kolonner:

SHOW COLUMNS FROM Pets;

Resultat:

+-----------+-------------+------+-----+---------+-------+
| 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    |       |
+-----------+-------------+------+-----+---------+-------+

Vi kan indsnævre det til kun én kolonne, hvis det kræves:

SHOW COLUMNS FROM Pets
WHERE Field = 'PetName';

Resultat:

+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| PetName | varchar(60) | NO   |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+

DESCRIBE / DESC Erklæring

DESCRIBE statement er en genvej til SHOW COLUMNS FROM syntaks:

DESCRIBE Pets;

Resultat:

+-----------+-------------+------+-----+---------+-------+
| 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    |       |
+-----------+-------------+------+-----+---------+-------+

Du skal blot tilføje kolonnenavnet for at indsnævre det til én kolonne:

DESCRIBE Pets PetName;

Resultat:

+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| PetName | varchar(60) | NO   |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+

Du kan også bruge jokertegn:

DESCRIBE Pets 'Pet%';

Resultat:

+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| PetId     | int         | NO   | PRI | NULL    |       |
| PetTypeId | int         | NO   |     | NULL    |       |
| PetName   | varchar(60) | NO   |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+

Du kan også forkorte den til DESC :

DESC Pets PetName;

Resultat:

+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| PetName | varchar(60) | NO   |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+

information_schema.columns Vis

information_schema.columns visningen indeholder oplysninger om kolonner:

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';

Resultat:

+-------------+-----------+------------+--------------+
| COLUMN_NAME | DATA_TYPE | MAX_LENGTH | OCTET_LENGTH |
+-------------+-----------+------------+--------------+
| PetName     | varchar   |         60 |          240 |
+-------------+-----------+------------+--------------+

I dette tilfælde brugte jeg DATABASE() funktion for at returnere navnet på den aktuelle database. Du kan alternativt bruge navnet på en specifik database.

mysqlshow Hjælpeprogram

mysqlshow værktøj viser strukturen af ​​en MySQL-database (databaser, tabeller, kolonner og indekser).

Dette hjælpeprogram køres på egen hånd. Med andre ord, kør ikke dette inde fra MySQL. Åbn i stedet et nyt terminal-/kommandolinjevindue og kør det derfra.

Eksempel:

mysqlshow -u root PetHotel Pets PetName

Resultat:

+---------+-------------+--------------------+------+-----+---------+-------+---------------------------------+---------+
| Field   | Type        | Collation          | Null | Key | Default | Extra | Privileges                      | Comment |
+---------+-------------+--------------------+------+-----+---------+-------+---------------------------------+---------+
| PetName | varchar(60) | utf8mb4_0900_ai_ci | NO   |     |         |       | select,insert,update,references |         |
+---------+-------------+--------------------+------+-----+---------+-------+---------------------------------+---------+

I dette eksempel, PetHotel er navnet på databasen, Pets er tabellen, og PetName er den kolonne, jeg er interesseret i.

Jeg har også angivet det brugernavn, som jeg skal oprette forbindelse til. Værktøjet accepterer en hel del muligheder. Se MySQL-dokumentationen for mere information.


  1. PostgreSQL-streamingreplikering - et dybt dyk

  2. NullPointerException på getReadableDatabase()

  3. Hvorfor kan jeg ikke tvinge Oracle 11g til at forbruge flere CPU'er for en enkelt SQL-forespørgsel

  4. Hvordan finder man fremmednøgleafhængigheder i SQL Server?