MYSQL – ALTER, DROP, RENOMEAR, MODIFICAR

O que é o comando ALTER?

Como diz o ditado Mudança é a única constante

Com o tempo, os requisitos de negócios também mudam. À medida que os requisitos de negócios mudam, os designs de banco de dados também precisam mudar.

MySQL fornece o ALTERAR função que nos ajuda incorporar as mudanças no design do banco de dados já existente.

O comando alter é usado para modificar um banco de dados, tabela, visualização ou outros objetos de banco de dados existentes que possam precisar ser alterados durante o ciclo de vida de um banco de dados.

Suponhamos que concluímos o design do nosso banco de dados e ele foi implementado. Nossos usuários do banco de dados estão usando-o e então percebem que algumas informações vitais foram deixadas de fora na fase de design. Eles não querem perder os dados existentes, mas apenas incorporar as novas informações. O comando alter é útil em tais situações. Podemos usar o comando alter para alterar o tipo de dados de um campo de string para numérico, alterar o nome do campo para um novo nome ou até mesmo adicionar uma nova coluna em uma tabela.

Alterar – sintaxe

A sintaxe básica usada para adicionar uma coluna a uma tabela já existente é mostrada abaixo

ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;

AQUI

  • “ALTER TABLE `nome_tabela`” é o comando que diz MySQL servidor para modificar a tabela chamada `table_name`.
  • “ADICIONAR COLUNA `nome_coluna` `tipo_dados`” é o comando que diz MySQL servidor para adicionar uma nova coluna chamada `column_name` com tipo de dados `data_type'.

Suponhamos que o Myflix tenha introduzido faturamento e pagamentos online. Para esse fim, fomos solicitados a adicionar um campo para o número do cartão de crédito em nossa tabela de membros. Podemos usar o comando ALTER para fazer isso. Vejamos primeiro a estrutura da tabela de membros antes de fazermos qualquer alteração. O script mostrado abaixo nos ajuda a fazer isso.

SHOW COLUMNS FROM `members`;
Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
full_names varchar(350) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL

Podemos usar o script mostrado abaixo para adicionar um novo campo à tabela de membros.

ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR(25);

Executando o script acima em MySQL contra o Myflixdb adiciona uma nova coluna chamada número do cartão de crédito à tabela de membros com VARCHAR como o tipo de dado. Executar o script show columns nos dá os seguintes resultados.

SHOW COLUMNS FROM `members`;
Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
full_names varchar(350) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL
credit_card_number varchar(25) YES

Como você pode ver nos resultados retornados, o número do cartão de crédito foi adicionado à tabela de membros. Os dados contidos nos dados dos membros não são afetados pela adição da nova coluna.

O QUE É O COMANDO DE QUEDA?

O comando DROP é usado para

  1. Excluir um banco de dados de MySQL servidor
  2. Exclua um objeto (como Tabela, Coluna) de um banco de dados.

Vejamos agora exemplos práticos que fazem uso do comando DROP.

Em nosso exemplo anterior do Comando Alter, adicionamos uma coluna chamada número do cartão de crédito à tabela de membros.

Suponha que a funcionalidade de faturamento on-line demore algum tempo e queiramos CANCELAR a coluna do cartão de crédito

Podemos usar o seguinte script

ALTER TABLE `members` DROP COLUMN `credit_card_number`;

A execução do script acima remove a coluna credit_card_number da tabela de membros

Vamos agora dar uma olhada nas colunas da tabela de membros para confirmar se nossa coluna foi eliminada.

SHOW COLUMNS FROM `members`;

Executando o script acima em MySQL workbench contra o myflixdb nos dá os seguintes resultados.

Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
full_names varchar(350) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL

Observe que o número do cartão de crédito foi retirado da lista de campos.

RETIRAR TABELA

A sintaxe para DROP uma tabela do banco de dados é a seguinte –

DROP TABLE `sample_table`;

Vejamos um exemplo

DROP TABLE `categories_archive`;

A execução do script acima exclui a tabela chamada `categorias_archive` de nosso banco de dados.

O QUE É O COMANDO DE RENOMEAR?

O comando renomear é usado para altere o nome de um objeto de banco de dados existente (como Tabela, Coluna) para um novo nome.

Renomear uma tabela não faz com que ela perca nenhum dado contido nela.

Sintaxe:-

O comando rename possui a seguinte sintaxe básica.

RENAME TABLE `current_table_name` TO `new_table_name`;

Suponhamos que queremos renomear a tabela movierentals para movie_rentals, podemos usar o script mostrado abaixo para fazer isso.

RENAME TABLE `movierentals` TO `movie_rentals`;

A execução do script acima renomeia a tabela `movierentals` para `movie_rentals`.

Agora renomearemos a tabela movie_rentals de volta ao seu nome original.

RENAME TABLE `movie_rentals` TO `movierentals`;

ALTERAR PALAVRA-CHAVE

Alterar palavras-chave permite que você

  1. Alterar nome da coluna
  2. Alterar tipo de dados da coluna
  3. Alterar restrições de coluna

Vejamos um exemplo. O campo de nomes completos na tabela de membros é do tipo de dados varchar e tem largura de 150.

SHOW COLUMNS FROM `members`;

Executando o script acima em MySQL workbench contra o myflixdb nos dá os seguintes resultados.

Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
full_names varchar(150) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL

Suponha que nós queremos

  1. Altere o nome do campo de “nomes completos” para “nome completo
  2. Mude para o tipo de dados char com largura de 250
  3. Adicione uma restrição NOT NULL

Podemos fazer isso usando o comando change da seguinte forma –

ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;

Executando o script acima em MySQL workbench contra myflixdb e então executar o script show columns fornecido acima fornece os seguintes resultados.

Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
fullnames char(250) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL

MODIFICAR PALAVRA-CHAVE

A palavra-chave MODIFY permite que você

  1. Modificar tipo de dados da coluna
  2. Modificar restrições de coluna

No exemplo CHANGE acima, tivemos que alterar o nome do campo e também outros detalhes. Omitir o nome do campo da instrução CHANGE gerará um erro. Suponha que estejamos interessados ​​apenas em alterar o tipo de dados e as restrições do campo sem afetar o nome do campo. Podemos usar a palavra-chave MODIFY para fazer isso.

O script abaixo altera a largura do campo “nome completo” de 250 para 50.

ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;

Executando o script acima em MySQL workbench contra myflixdb e então executar o script show columns fornecido acima fornece os seguintes resultados mostrados abaixo.

Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
fullnames char(50) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL

APÓS A PALAVRA-CHAVE

Suponha que queiramos adicionar uma nova coluna em uma posição específica da tabela.

Podemos usar o comando alter junto com a palavra-chave AFTER.

O script abaixo adiciona “date_of_registration” logo após a data de nascimento na tabela de membros.

ALTER TABLE  `members` ADD  `date_of_registration` date NULL AFTER  `date_of_birth`;

Executando o script acima em MySQL workbench contra myflixdb e então executar o script show columns fornecido acima fornece os seguintes resultados mostrados abaixo.

Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
fullnames char(50) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
date_of_registration date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL
Note: The Hilighted row is added after date_of_birth cloumn

Resumo

  • O comando alter é usado quando queremos modificar um banco de dados ou qualquer objeto contido no banco de dados.
  • O comando drop é usado para excluir bancos de dados de MySQL servidor ou objetos dentro de um banco de dados.
  • O comando rename é usado para alterar o nome de uma tabela para um novo nome de tabela.
  • A palavra-chave Change permite alterar o nome da coluna, o tipo de dados e as restrições
  • A palavra-chave Modify permite modificar o tipo de dados e as restrições de uma coluna
  • A palavra-chave After é usada para especificar a posição de uma coluna em uma tabela