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

Problemas com alias no MySQL
Criando tabelas temporárias em memória no MySQL
Tutorial MySQL: Excluindo registros
PostgreSQL para usuários do MySQL
Entendendo alguns métodos de funcionamento do MySQL
Sun lança o MySQL 5.4
Tutorial MySQL: Ordenando o resultado
Configurando e utilizando MySQL no Arch Linux
Configurando sistema de backup do banco de dados MySQL no Amazon S3 em 10 minutos
INSERT com SELECT na mesma query no 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:




  

Quarta, 01 de Outubro de 2014




Top 5 membros

Últimos membros online

  • 1em 01/10 às 15:49
  • kelexem 24/09 às 09:55
  • xKuRtem 23/09 às 20:00

Últimos membros cadastrados



Capa do livro
Como Detectar Invasão em Rede: Um Guia para Analistas


Capa do livro
Design Para a Internet


Capa do livro
PHP Programando com Orientação a Objetos





Hostnet

IMD