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

Selecionando parte de uma string no MySQL com a função SUBSTRING()
Exportar banco de dados SQLite para arquivo .sql e importar no MySQL
Configurando a variável max_connections no MySQL
Tutorial MySQL: Criando um banco de dados
Utilização de datas no MySQL
Erro ao conectar no servidor MySQL
Instalando um servidor MySQL para uso geral
Cálculo de datas no MySQL
Exportar e importar uma base de dados no PostgreSQL e MySQL
Segurança e configuração 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:




  

Segunda, 22 de Dezembro de 2014




Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
Cloud Computing - Computação em Nuvem - Uma Abordagem Prática


Capa do livro
Dominando Joomla: Do Iniciante ao Profissional


Capa do livro
Guerreiro SEO





Hostnet

IMD