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!
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
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.
[3] Comentário enviado por JLAUDIRT em 24/09/2008 - 10:03h
Infelizmente ainda estou preso ao window por ter de utilizar o delphi para desenvolver aplicativos para os meus clientes.
Estou estudando o mysql e percebi que ele nao aceita muitos selects (uns dentro dos outros) por exemplo:
"select table1.campo1,table1.campo2,(select table2.campo2 from table2 where table2.campo1 = table1.campo1) as descricao from table1 order by campo1;"
[4] Comentário enviado por jose.freitas.rj em 24/09/2008 - 11:56h
pessoal sou novo no linux e uso fedora 8 e mexo um pouco com mysql e postgresql. com o postgresql consigo fazer qualquer maquina da rede acessar meu banco de dados, já com o mysql não sei fazer por que ainda não encontrei nenhum tutorial explicando isso. alguém sabe configurar o mysql no fedora 8 pra ser acessado por qualquer maquina da rede?
abraços...
[9] Comentário enviado por andre_asn em 24/09/2008 - 17:13h
Gostei muito do seu artigo mas tive um probleminha uso o debian 4.0 e logo de cara deu este :
download@MATRIX:~$ su
Password:
MATRIX:/home/download# apt-get mysql mysql-server mysql-client
E: Operação mysql inválida
Mudando um pouco o comando para instalar da este outro erro :
MATRIX:/home/download# apt-get install mysql mysql-server mysql-client
Lendo lista de pacotes... Pronto
Construindo árvore de dependências... Pronto
E: Impossível achar pacote mysql
MATRIX:/home/download#
[14] Comentário enviado por marcosmiras em 25/09/2008 - 09:46h
@andre_asn: Houve um erro de digitação no artigo, o comando correto é:
apt-get install mysql mysql-server mysql-client
Faltou o "install", vou pedir para a equipe de moderação corrigir!
[22] Comentário enviado por francislei bowen em 11/03/2010 - 19:19h
Olá,tenho que criar um site em que sua estrutura é silmples mas....não tenhu um conhecimento bom com banco de dados,e uql seria o melhor a ser inserido no site....e como fazer a configuração se vcs, se disponibilizarem algum material disponivel eu agradeço muito muito mesmo....estou ferrado se não criar um quanto antes....desde já agradeço a todos pela atenção.
Francislei
[23] Comentário enviado por pais em 22/05/2011 - 17:02h
root@alencar-desktop:/home/sistema# groupadd mysql
root@alencar-desktop:/home/sistema# useradd -g mysql mysql
root@alencar-desktop:/home/sistema# cd /usr/local
root@alencar-desktop:/usr/local# tar -zxvf mysql-4.0.13.tar.gz
tar: mysql-4.0.13.tar.gz: Não é possível open: Arquivo ou diretório não encontrado
tar: Erro não é recuperável: saindo agora
tar: Child returned status 2
tar: Saindo com estado de falha devido a erros anteriores.
Eu já tinha tentado instalar antes destes comandos.
Cheguei até aquele ponto onde a tela fica azul e uma barra do lado direito vermelha cliko em ok mas a tela não envia nenhum resultado .
Todo comando de instalação ou de remoção da esta mensagem.
Impossível travar o diretório de administração (/var/lib/dpkg/), está em uso por outro processo?
Adriano: minha distro é o Kubuntu 10.4
[25] Comentário enviado por FOCADECKIII em 13/09/2012 - 20:35h
Boa noite!!
Sou novo aqui, já li e tentei trabalhar com bancos de dados de uma forma autodidática, mas devido a complexidade de alguns comando e regras a serem implementadas aos dados fica que meio confuso aprender. Alguém sabe um meio de aprender sobre banco de dados de uma forma mais simples?
Agredecido.