MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

3 façons d'obtenir le classement d'une colonne dans MariaDB

Voici trois façons de renvoyer le classement d'une colonne dans MariaDB.

Le SHOW COLUMNS Déclaration

Le SHOW COLUMNS l'instruction a un FULL facultatif mot-clé, qui, lorsqu'il est utilisé, affichera le classement et les commentaires des colonnes, ainsi que les privilèges dont vous disposez pour chaque colonne.

Voici un exemple d'exécution de cette instruction sur une table appelée Events :

SHOW FULL COLUMNS FROM Events;

Exemple de résultat :

+-----------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
| Field     | Type         | Collation         | Null | Key | Default | Extra          | Privileges                      | Comment |
+-----------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
| EventId   | int(11)      | NULL              | NO   | PRI | NULL    | auto_increment | select,insert,update,references |         |
| EventName | varchar(255) | latin5_turkish_ci | YES  |     | NULL    |                | select,insert,update,references |         |
+-----------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+

Les information_schema.columns Tableau

Une autre option consiste à interroger le information_schema.columns table. Dans ce cas, nous pouvons choisir uniquement les colonnes qui nous intéressent :

SELECT
    column_name, 
    character_set_name, 
    collation_name 
FROM information_schema.columns
WHERE table_name = 'Events'
AND column_name = 'EventName';

Exemple de résultat :

+-------------+--------------------+-------------------+
| column_name | character_set_name | collation_name    |
+-------------+--------------------+-------------------+
| EventName   | latin5             | latin5_turkish_ci |
+-------------+--------------------+-------------------+

Le SHOW CREATE TABLE Déclaration

Une autre option consiste à utiliser SHOW CREATE TABLE , qui renvoie le CREATE TABLE relevé de notre table.

Cependant, le jeu de caractères et les informations de classement d'une colonne ne sont renvoyés que s'ils diffèrent du classement par défaut de la table.

Voici un exemple d'exécution de cette instruction sur une table appelée Pets , où les colonnes ne diffèrent pas de la valeur par défaut du tableau :

SHOW CREATE TABLE Pets;

Résultat :

+-------+------------------------------+
| Table | Create Table                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
+-------+------------------------------+
| Pets  | CREATE TABLE `Pets` (
  `PetId` int(11) NOT NULL,
  `PetTypeId` int(11) NOT NULL,
  `OwnerId` int(11) NOT NULL,
  `PetName` varchar(60) NOT NULL,
  `DOB` date DEFAULT NULL,
  PRIMARY KEY (`PetId`),
  KEY `PetTypeId` (`PetTypeId`),
  KEY `OwnerId` (`OwnerId`),
  CONSTRAINT `pets_ibfk_1` FOREIGN KEY (`PetTypeId`) REFERENCES `PetTypes` (`PetTypeId`),
  CONSTRAINT `pets_ibfk_2` FOREIGN KEY (`OwnerId`) REFERENCES `Owners` (`OwnerId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |
+-------+-------------------------------+

Dans cet exemple, les informations de classement n'ont pas diffèrent, et donc aucune information de classement n'a été renvoyée pour les colonnes.

Changeons le classement sur le PetName colonne :

ALTER TABLE Pets 
MODIFY PetName VARCHAR(255) 
    CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL;

Et exécutez SHOW CREATE TABLE encore :

SHOW CREATE TABLE Pets;

Résultat :

+-------+------------------------------+
| Table | Create Table                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
+-------+------------------------------+
| Pets  | CREATE TABLE `Pets` (
  `PetId` int(11) NOT NULL,
  `PetTypeId` int(11) NOT NULL,
  `OwnerId` int(11) NOT NULL,
  `PetName` varchar(255) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,
  `DOB` date DEFAULT NULL,
  PRIMARY KEY (`PetId`),
  KEY `PetTypeId` (`PetTypeId`),
  KEY `OwnerId` (`OwnerId`),
  CONSTRAINT `pets_ibfk_1` FOREIGN KEY (`PetTypeId`) REFERENCES `PetTypes` (`PetTypeId`),
  CONSTRAINT `pets_ibfk_2` FOREIGN KEY (`OwnerId`) REFERENCES `Owners` (`OwnerId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |
+-------+-------------------------------+

Cette fois, nous pouvons voir le nouveau jeu de caractères et les paramètres de classement par rapport au PetName colonne.