MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

3 maneiras de obter o agrupamento de uma coluna no MariaDB


Aqui estão três maneiras de retornar o agrupamento de uma coluna no MariaDB.

O SHOW COLUMNS Declaração


O SHOW COLUMNS instrução tem um opcional FULL palavra-chave, que, quando usada, produzirá agrupamento de colunas e comentários, bem como os privilégios que você tem para cada coluna.

Aqui está um exemplo de execução desta instrução em uma tabela chamada Events :
SHOW FULL COLUMNS FROM Events;

Exemplo de resultado:
+-----------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
| 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 |         |
+-----------+--------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+

O information_schema.columns Tabela


Outra opção é consultar o information_schema.columns tabela. Nesse caso, podemos escolher apenas as colunas que nos interessam:
SELECT
    column_name, 
    character_set_name, 
    collation_name 
FROM information_schema.columns
WHERE table_name = 'Events'
AND column_name = 'EventName';

Exemplo de resultado:
+-------------+--------------------+-------------------+
| column_name | character_set_name | collation_name    |
+-------------+--------------------+-------------------+
| EventName   | latin5             | latin5_turkish_ci |
+-------------+--------------------+-------------------+

O SHOW CREATE TABLE Declaração


Outra opção é usar SHOW CREATE TABLE , que retorna o CREATE TABLE declaração de nossa tabela.

No entanto, as informações do conjunto de caracteres e da ordenação de uma coluna só serão retornadas se forem diferentes da ordenação padrão da tabela.

Aqui está um exemplo de execução desta instrução em uma tabela chamada Pets , onde as colunas não diferem do padrão da tabela:
SHOW CREATE TABLE Pets;

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

Neste exemplo, as informações de agrupamento não diferem e, portanto, nenhuma informação de agrupamento foi retornada para nenhuma coluna.

Vamos alterar o agrupamento no PetName coluna:
ALTER TABLE Pets 
MODIFY PetName VARCHAR(255) 
    CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL;

E execute SHOW CREATE TABLE novamente:
SHOW CREATE TABLE Pets;

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

Desta vez, podemos ver o novo conjunto de caracteres e configurações de agrupamento em relação ao PetName coluna.