Manipulando tabelas no MySQL


Autor/fonte: Marcos Miras
E-mail/Url: http://www.vivaolinux.com.br/artigo/Introducao-ao-MySQL
Tags: [ mysql ]



Digg del.icio.us

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.

Adicionando, renomeando e excluindo uma coluna na tabela

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.




Enviado por xKuRt em 18/11/2008 às 16:06


Itens relacionados

Gerando uma consulta randômica no MySQL
Gerenciador de base de dados MySQL para Mac
PostgreSQL para usuários do MySQL
Instalando o MySQL no Slackware
Problemas com alias no MySQL
MySQL Workbench no Slackware 14.0
Selecionando parte de uma string no MySQL com a função SUBSTRING()
Tutorial MySQL: Entrando no MySQL
Cache de consultas do MySQL
Backup diário das bases do MySQL

Listar todos itens relacionados

Avaliação

Esta publicação ainda não foi avaliada!


Avaliar:


A avaliação de publicações é restrita a membros cadastrados e logados no nosso site.



Comentários

Este artigo ainda não foi comentado ou o(s) comentário(s) que foi(ram) enviado(s) a ele ainda não foi(ram) publicado(s).


Envio de comentário:




  

Sexta, 31 de Outubro de 2014




Leitura recomendada

Livro - Java Efetivo

Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
Fundamentos de Informática - Geometria Analítica para Computação


Capa do livro
Asterisk na Prática


Capa do livro
Desenhando com o Google SketchUp





Hostnet

IMD