MySQL – Alterando Estruturas de Dados Com DDL
- #SQL
- #Banco de dados relacional
- #MySQL
Dando continuidade ao nosso tour pelos comandos DDL (Data Definition Language – subconjunto da linguagem SQL) no contexto dos bancos de dados MySQL, vamos verificar agora como podemos fazer uso desses comandos para dar manutenção em estruturas de dados, implementando alterações que se façam necessárias.
No artigo anterior (https://digitalinnovation.one/artigos/mysql-modelando-cadastro-de-dinossauros-com-ddl), vimos como modelar uma estrutura de dados simples, implementando um cadastro de informações sobre dinossauros.
Para os próximos exemplos, vamos criar e ampliar gradativamente uma única tabela, de forma a tornar o processo mais simples para o entendimento. Nossa tabela irá conter informações sobre pessoas e, inicialmente, vamos propositalmente criá-la apenas com dois campos: IdPessoa (chave primária da tabela) e Nome (irá armazenar o nome da pessoa).
Vamos supor agora que eu tenha cometido um erro na instrução acima. Eu criei o campo “Nome”, quando, na verdade, minha intenção era criar esse campo com a denominação “NomePessoa”.
Nossa primeira manutenção então será corrigir esse nome, fazendo uma pequena alteração (CHANGE COLUMN) na tabela:
Ao executar o comando acima, estou implementando uma mudança na coluna “Nome”, que passará a se chamar “NomePessoa”. Note que, logo após trocar o nome do campo, repetimos o mesmo tipo VARCHAR(80) NOT NULL, ou seja, mesmo mudando de nome, o campo continua sendo texto de no máximo 80 caracteres, e não aceita nulo. Se quiséssemos, poderíamos mudar isso também, mas vamos ver isso um pouco mais adiante.
Imagine agora que um novo requisito tenha surgido e que, para atendê-lo, precisássemos incluir uma nova coluna na tabela para armazenar a idade de cada pessoa. Novamente vamos utilizar o ALTER TABLE, mas agora adicionando uma coluna (ADD COLUMN), que será chamada de “Idade”.
Executando o comando acima, o novo campo será criado com sucesso, mas, olhando detalhadamente, você perceberá que novamente um erro foi cometido: cadastramos a idade, uma informação, por padrão, numérica, como sendo um texto -VARCHAR(3). Dessa forma, temos agora que corrigir essa falhar e mudar o tipo desse campo (MODIFY COLUMN):
Agora, nossa coluna “Idade” armazena números inteiros.
Ao inserir a coluna para as idades, você deve ter percebido que, por padrão, essa coluna foi adicionada como sendo a última coluna da tabela. Contudo, eventualmente você pode querer que o seu novo campo ocupe uma posição específica ao invés de ser inserido sempre no final.
Para exemplificar isso, vamos inserir uma coluna chamada “DataNascimento”, posicionando-a entre as colunas “NomePessoa” e “Idade”, complementando o comando ADD COLUMN com “AFTER NomePessoa” (o novo campo será inserido após o campo “NomePessoa”).
Note que nosso novo campo foi inserido após a coluna “NomePessoa”, ocupando a posição que desejávamos.
Se, por algum motivo, precisássemos alterar a posição desse campo, poderíamos movê-lo fazendo uso do “MODIFY COLUMN”, como no exemplo abaixo, onde estamos reposicionando o campo DataNascimento para depois da coluna “Idade”.
Analisando agora a nova estrutura, vemos que talvez não faça mais sentido manter o campo “Idade”, uma vez que podemos obter essa informação através de um simples cálculo a partir do campo “DataNascimento”. Sendo assim, vamos agora apagar (DROP COLUMN) essa coluna da nossa tabela de pessoas.
Com isso, embora não tenhamos explorado todas as possibilidades, passamos por boa parte das operações de alterações em estruturas de dados que você pode realizar usando o comando ALTER TABLE.
Espero que tenham gostado e nos vemos na próxima. Até lá.