Introdução ao MySQL
No fórum do Viva o Linux tenho percebido diversas perguntas sobre o MySQL, dúvidas sobre conexão, direitos de usuários, dentre outros detalhes básicos. Se você não conhece nada ou quase nada sobre o MySQL, chegou a hora de aprender um pouco mais sobre ele!
Parte 4: Manipulando a tabela
Bom, aprendemos a criar uma base, criar uma tabela e manipular dados dentro dessa estrutura, agora veremos algumas funções que podemos utilizar em nossa tabela.
mysql> ALTER TABLE tabela1 ADD COLUMN sexo varchar(1) AFTER email;
Ou seja, estou dizendo para que ele modifique a tabela chamada "tabela1" adicionando o campo "sexo", com tipo de dado 1 caractere de texto, depois da coluna "email".
Podemos também atualizar um campo já existente de uma tabela:
mysql> ALTER TABLE tabela1 CHANGE email mail VARCHAR(40);
Veja como a estrutura de nossa tabela mudou:
mysql> DESC tabela1;
mysql> ALTER TABLE tabela1 DROP sexo;
mysql> LOCK TABLES tabela1 READ;
O comando acima faz com que só haja a leitura dessa tabela, entre as funções podemos mesclar o lock tables com:
mysql> FLUSH TABLES;
Requer o flush para que todas as informações sobre índices sejam gravados em disco.
Adicionando, renomeando e excluindo uma coluna na tabela
Bom pessoal, pode acontecer que depois de você criar toda sua estrutura haja uma falha de raciocínio lógico e acabe esquecendo de alguma coluna, claro que é recomendável que crie uma estrutura num papel e depois execute-a para que tudo possa estar certinho, mas caso você não alertou para esse fato, pode resolver esse problema utilizando o "alter table".mysql> ALTER TABLE tabela1 ADD COLUMN sexo varchar(1) AFTER email;
Ou seja, estou dizendo para que ele modifique a tabela chamada "tabela1" adicionando o campo "sexo", com tipo de dado 1 caractere de texto, depois da coluna "email".
Podemos também atualizar um campo já existente de uma tabela:
mysql> ALTER TABLE tabela1 CHANGE email mail VARCHAR(40);
Veja como a estrutura de nossa tabela mudou:
mysql> DESC tabela1;
+--------+----------------+-------+-----+---------+--------+ | Field | Type | Null | Key | Default | Extra | +--------+----------------+-------+-----+---------+--------+ | nome | varchar(20) | YES | | NULL | | | mail | varchar(40) | YES | | NULL | | | sexo | varchar(1) | YES | | NULL | | | data | date | YES | | NULL | | +--------+----------------+------+------+---------+--------+Para excluirmos uma coluna podemos utilizar o seguinte:
mysql> ALTER TABLE tabela1 DROP sexo;
Bloqueando uma tabela
Em alguns casos é necessário que haja um bloqueio da tabela para determinada tarefa, isso ocorre em situações de transações, exportação de backup, alterações em grande volume de dados e assim adiante:mysql> LOCK TABLES tabela1 READ;
O comando acima faz com que só haja a leitura dessa tabela, entre as funções podemos mesclar o lock tables com:
- READ - Como vimos, só deixa fazer consulta (ler).
- READ LOCAL - Permite que inserções não-conflitantes sejam realizadas (não funciona em tabelas InnoDB).
- WRITE - Permite que a thread que solicitou o bloqueio possa escrever e atualizar registros e as demais threads possam somente ler.
- LOW_PRIORITY WRITE - Bloqueia a tabela para inserção e alteração, permite que outros processos bloqueiem essa tabela para leitura. A thread que solicitar o bloqueio de escrita deverá esperar a thread que bloqueou a leitura acabe seu processamento.
Desbloqueando uma tabela
mysql> UNLOCK TABLES;mysql> FLUSH TABLES;
Requer o flush para que todas as informações sobre índices sejam gravados em disco.
Ainda não li tudo, porém, estou ancioso para poder chegar em casa e ler com calma, já esta impresso :)
Show de bola velinho, não conheço nada de Banco de Dados, e isso ai, já irá ser uma bela porta de entrada,
Parabéns, é isso ae, 10!
Abraços