sql >> Databasteknik >  >> RDS >> Mysql

4 sätt att kontrollera en kolumns datatyp i MySQL

Här är fyra sätt att få datatypen för en kolumn i MySQL.

SHOW COLUMNS Uttalande

SHOW COLUMNS uttalande visar information om kolumnerna i en given tabell eller vy. Vi kan skicka namnet på tabellen eller visa för att returnera information om dess kolumner:

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 begränsa det till bara en kolumn om det behövs:

SHOW COLUMNS FROM Pets
WHERE Field = 'PetName';

Resultat:

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

DESCRIBE / DESC Uttalande

DESCRIBE statement är en genväg till SHOW COLUMNS FROM syntax:

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

Lägg bara till kolumnnamnet för att begränsa det till en kolumn:

DESCRIBE Pets PetName;

Resultat:

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

Du kan också använda jokertecken:

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 också förkorta den till DESC :

DESC Pets PetName;

Resultat:

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

information_schema.columns Visa

information_schema.columns vyn innehåller information om kolumner:

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 det här fallet använde jag DATABASE() funktion för att returnera namnet på den aktuella databasen. Du kan alternativt använda namnet på en specifik databas.

mysqlshow Verktyg

mysqlshow verktyget visar strukturen för en MySQL-databas (databaser, tabeller, kolumner och index).

Detta verktyg körs på egen hand. Med andra ord, kör inte detta inifrån MySQL. Öppna istället ett nytt terminal-/kommandoradsfönster och kör det därifrån.

Exempel:

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 det här exemplet, PetHotel är namnet på databasen, Pets är tabellen och PetName är kolumnen som jag är intresserad av.

Jag angav också användarnamnet som jag skulle ansluta till. Verktyget accepterar en hel del alternativ. Se MySQL-dokumentationen för mer information.


  1. Hur formaterar jag mina oracle-frågor så att kolumnerna inte lindas?

  2. MariaDB numeriska funktioner (fullständig lista)

  3. Lösning på underfrågan returnerar fler än 1 radfel

  4. Förbättringar av dolda prestanda och hanterbarhet i SQL Server 2012/2014