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

Fazendo um backup e restaurando um banco de dados MySQL pelo phpMyAdmin
Exportar banco de dados SQLite para arquivo .sql e importar no MySQL
Tutorial MySQL: Executando um script
Conceitos rápidos sobre MySQL - Administração e utilização
Selecionando parte de uma string no MySQL com a função SUBSTRING()
Entendendo alguns métodos de funcionamento do MySQL
Replicação com o MySQL
Alterar diretório base de dados do MySQL
Tutorial MySQL: Criando tabelas
Comparando a estrutura de banco de dados MySQL com o MySQLdiff

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:




  

Quinta, 27 de Novembro de 2014




Leitura recomendada

Sistema de Banco de Dados

Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
aça um Site


Capa do livro
Gramática Inglesa para Leigos


Capa do livro
Desenvolvendo Websites com PHP - Aprenda a Criar Websites Dinâmicos e Interativos com PHP e Banco de Dados





Hostnet

IMD