O QUE É O ALTER COMMAND?
Como diz o ditado, a mudança é a única constante
Com o tempo, os requisitos de negócios também mudam. Conforme os requisitos de negócios mudam, os designs de banco de dados também precisam ser alterados.
O MySQL fornece a função ALTER que nos ajuda a incorporar as mudanças ao design do banco de dados já existente .
O comando alter é usado para modificar um banco de dados existente, tabela, visão ou outros objetos de banco de dados que podem precisar ser alterados durante o ciclo de vida de um banco de dados.
Vamos supor que concluímos nosso design de banco de dados e ele foi implementado. Nossos usuários de banco de dados o estão usando e então percebem que algumas das 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 dizer string para numérico, alterar o nome do campo para um novo nome ou mesmo adicionar uma nova coluna em uma tabela.
Alter- 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 ao servidor MySQL para modificar a tabela chamada` nome_tabela`.
- "ADD COLUMN` column_name` `data_type`" é o comando que diz ao servidor MySQL para adicionar uma nova coluna chamada `column_name` com tipo de dados` data_type '.
Vamos supor que o Myflix introduziu o faturamento e os 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 fazer 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 | ||
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);
Executar o script acima no MySQL no Myflixdb adiciona uma nova coluna chamada número do cartão de crédito à tabela de membros com VARCHAR como o tipo de dados. Executar o script de colunas da mostra 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 | ||
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 DROP?
O comando DROP é usado para
- Exclua um banco de dados do servidor MySQL
- 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 no comando Alter, adicionamos uma coluna chamada número do cartão de crédito à tabela de membros.
Suponha que a funcionalidade de cobrança online leve algum tempo e queiramos DROP a coluna do cartão de crédito
Podemos usar o seguinte script
ALTER TABLE `members` DROP COLUMN `credit_card_number`;
Executar o script acima remove a coluna credit_card_number da tabela de membros
Vamos agora dar uma olhada nas colunas na tabela de membros para confirmar se nossa coluna foi eliminada.
SHOW COLUMNS FROM `members`;
Executar o script acima no ambiente de trabalho MySQL no 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 | ||
varchar(255) | YES | NULL |
Observe que o número do cartão de crédito foi retirado da lista de campos.
DROP TABLE
A sintaxe para DROP uma tabela do banco de dados é a seguinte -
DROP TABLE `sample_table`;
Vejamos um exemplo
DROP TABLE `categories_archive`;
Executar o script acima exclui a tabela chamada `categories_archive` do nosso banco de dados.
O QUE É O COMANDO RENAME?
O comando rename é usado para alterar 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 os dados contidos nela.
Sintaxe:-
O comando rename possui a seguinte sintaxe básica.
RENAME TABLE `current_table_name` TO `new_table_name`;
Vamos supor que queremos renomear a tabela movierentals para movie_rentals, podemos usar o script mostrado abaixo para fazer isso.
RENAME TABLE `movierentals` TO `movie_rentals`;
Executar o script acima renomeia a tabela `movierentals` para` movie_rentals`.
Agora vamos renomear 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ê
- Alterar o nome da coluna
- Alterar o tipo de dados da coluna
- 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`;
Executar o script acima no ambiente de trabalho MySQL no 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 | ||
varchar(255) | YES | NULL |
Suponha que queremos
- Altere o nome do campo de "full_names" para "fullname
- Altere para o tipo de dados char com largura de 250
- Adicione uma restrição NOT NULL
Podemos fazer isso usando o comando de mudança da seguinte maneira -
ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;
Executar o script acima no ambiente de trabalho MySQL em myflixdb e, em seguida, 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 | ||
varchar(255) | YES | NULL |
MODIFICAR PALAVRA-CHAVE
A palavra-chave MODIFY permite que você
- Modificar o tipo de dados da coluna
- Modificar restrições de coluna
No exemplo CHANGE acima, tivemos que alterar o nome do campo, bem como outros detalhes. A omissão do 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 no campo sem afetar o nome do campo, podemos usar a palavra-chave MODIFY para fazer isso.
O script abaixo altera a largura do campo "fullname" de 250 para 50.
ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;
Executar o script acima no ambiente de trabalho MySQL em myflixdb e, em seguida, 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 | ||
varchar(255) | YES | NULL |
APÓS A PALAVRA-CHAVE
Suponha que desejamos adicionar uma nova coluna em uma posição específica na 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`;
Executar o script acima no ambiente de trabalho MySQL em myflixdb e, em seguida, 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 | ||
varchar(255) | YES | NULL |
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 do servidor MySQL ou objetos em 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 que você altere um nome de coluna, tipo de dados e restrições
- A palavra-chave de modificação permite que você modifique um tipo de dados de coluna e restrições
- A palavra-chave Depois é usada para especificar a posição de uma coluna em uma tabela