Introdução ao MySQL

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!

[ Hits: 80.694 ]

Por: Marcos Miras em 24/09/2008


Criando tabela e inserindo, atualizando e excluindo dados



Particularmente eu considero a linha de comando do MySQL um pouco chatinha, prefiro uma interface gráfica. Pesquisando encontrei algumas, mas a que mais me agradou foi o MySQL Query Browser, que pode ser baixado no site do MySQL.

Já que criamos nossa base e compreendemos um pouco mais sobre o MySQL, vamos criar algumas tabelas:

Carregue a base:

mysql> USE minha_base;

Vamos criar uma tabela com os campos NOME, EMAIL, DATA:

mysql> create table tabela1 (nome VARCHAR(20), email VARCHAR(20), data DATE);

Vejamos se a mesma foi criada:

mysql> SHOW TABLES;
+-------------------------------+
| Tables_in_minha_base  |
+-------------------------------+
| tabela1                              |
+-------------------------------+
E vejamos os campos que ela possui:

mysql> DESC tabela1;
+-------+----------------+------+-----+---------+-------+
| Field  | Type               | Null  | Key | Default | Extra |
+-------+----------------+------+-----+---------+-------+
| nome | varchar(20) | YES  |         | NULL    |          |
| email | varchar(20) | YES  |         | NULL    |           |
| data   | date              | YES  |         | NULL    |           |
+-------+----------------+------+-----+---------+-------+
E vamos inserir dados nessa tabela:

mysql> INSERT INTO tabela1 VALUES ('Marcos Miras' , 'marcosmiras@atmsystem.com.br' , '2008-09-19');
mysql> SELECT * FROM tabela1;
+-----------------+-------------------------------------+---------------+
| nome               | email                                       | data              |
+-----------------+-------------------------------------+----------------+
| Marcos Miras | marcosmiras@atmsyste     | 2008-09-19 | 
+-----------------+-------------------------------------+----------------+

Vamos atualizar esse valor do campo "email":

mysql> UPDATE tabela1 SET email='marcos@atmsystem.com';
mysql> SELECT * FROM tabela1;
+-----------------+------------------------------------+----------------+
| nome               | email                                       | data             |
+-----------------+------------------------------------+----------------+
| Marcos Miras | marcos@atmsystem.com | 2008-09-19 | 
+-----------------+------------------------------------+----------------+

Excluindo a entrada de registro:

mysql> DELETE FROM tabela1;
mysql> SELECT * FROM tabela1;
Empty set (0.00 sec)

Porém, percebe-se que o comando insert atualiza o campo determinado de todos os registros da tabela e o comando "delete" exclui todos os dados da tabela, para resolver esse problema conheceremos a cláusula "where". Para testar vamos fazer várias inserções na tabela:

mysql> INSERT INTO tabela1 VALUES ('Joao Silva' , 'joao@dominio' , '2008-09-19');
mysql> INSERT INTO tabela1 VALUES ('Jose Pereira' , 'ze@dominio' , '2008-09-19');
mysql> INSERT INTO tabela1 VALUES ('Maria' , 'maria@dominio' , '2008-09-19');
mysql> INSERT INTO tabela1 VALUES ('Pedro' , 'pedro@dominio' , '2008-09-19');
mysql> SELECT * FROM tabela1;
+---------------+----------------------+----------------+
| nome            | email                    | data              |
+---------------+----------------------+----------------+
| Joao Silva    | joao@dominio    | 2008-09-19 | 
| Jose Pereira | ze@dominio        | 2008-09-19  | 
| Maria            | maria@dominio | 2008-09-19 | 
| Pedro            | pedro@dominio  | 2008-09-19 | 
+---------------+----------------------+----------------+

Utilizando o "where" vamos selecionar os registros da tabela1 que contenham "Pedro":

mysql> SELECT * FROM tabela1 WHERE nome="Pedro";
+--------+----------------------+----------------+
| nome  | email                     | data             |
+--------+----------------------+----------------+
| Pedro   | pedro@dominio | 2008-09-19 | 
+--------+----------------------+----------------+

Sendo assim podemos excluir e atualizar os dados que queremos:

mysql> UPDATE tabela1 SET email='pd@dominio2' where nome="Pedro";
mysql> UPDATE tabela1 SET nome='Maria Souza' where nome='Maria';
mysql> DELETE FROM tabela1 where nome='Joao Silva';

Verifique suas alterações com o "select".

O "delete" exclui os dados da tabela, agora se você deseja excluir a tabela você pode usar o "drop", assim como na exclusão do base (vista na página anterior).

mysql> DROP TABLE tabela1;

Página anterior     Próxima página

Páginas do artigo
   1. O software
   2. Armazenamento e criação
   3. Criando tabela e inserindo, atualizando e excluindo dados
   4. Manipulando a tabela
   5. Permissões
   6. Segurança e configuração
   7. Conclusão
Outros artigos deste autor

Ruby + Rails + Gem + Mongrel Cluster + Apache + MySQL n0 Red Hat EL

Integridade dos arquivos do sistema

Comunity ENTerprise Operating System, o CentOS

PhpPgAdmin e PhpMyAdmin

Leitura recomendada

A função DATE_FORMAT() do MySQL

Amarok: migrando de SQLite para MySQL

OcoMon 2.0RC6 no OpenSUSE 11.2 com PHP5 + MySQL5 + Apache2 com correção de acentuação

MariaDB + phpMyAdmin no Ubuntu 12.04 LTS

Gerenciando banco de dados com MySQL (parte 2)

  
Comentários
[1] Comentário enviado por maran em 24/09/2008 - 09:23h

WoW fala ai Marcos, tudo na paz?
Ainda não li tudo, porém, estou ancioso para poder chegar em casa e ler com calma, já esta impresso :)

Show de bola velinho, não conheço nada de Banco de Dados, e isso ai, já irá ser uma bela porta de entrada,

Parabéns, é isso ae, 10!

Abraços

[2] Comentário enviado por marcosmiras em 24/09/2008 - 09:32h

Tudo tranquilo Maran, obrigado pelo comentário e o que precisar estamos aí!

[]'s
Marcos Miras

[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;"


Qual seria a solução para este tipo de select?

[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...

[5] Comentário enviado por marcosmiras em 24/09/2008 - 11:59h

jfreitas23,
Releia a página 5 desse artigo:
http://www.vivaolinux.com.br/artigo/Introducao-ao-MySQL/?pagina=5

Que você vai encontrar como fazer o que deseja!

[]'s
Marcos Miras

[6] Comentário enviado por jose.freitas.rj em 24/09/2008 - 13:25h

marcos, show de bola!!! aieuaiueiaueiua...
funcionou!!!
valeu pela ajuda!!!
simples e eficaz!!!
valeu pela dica!!!
FIQUE COM DEUS!!!

[7] Comentário enviado por joaomc em 24/09/2008 - 13:28h

Lembrem-se: Multithreads *não* é o mesmo que uso de mais do que um processador.

[8] Comentário enviado por f_Candido em 24/09/2008 - 16:26h

Muito Bom. Parabéns.
Sem comentários.


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#

[10] Comentário enviado por grandmaster em 24/09/2008 - 18:21h

Parabéns, ficou realmente bem legal

---
Renato de Castro Henriques
CobiT Foundation 4.1 Certified ID: 90391725
http://www.renato.henriques.nom.br


[11] Comentário enviado por marcosmiras em 24/09/2008 - 21:53h

@andre_asn: Você deve adicionar o repositório correto! Dê uma lida nesse link http://www.howtoforge.com/mysql4.1-and-php4-on-debian-etch

@f_Candido: Muito obrigado!

@grandmaster: Muito obrigado!

[]'s
Marcos Miras.

[12] Comentário enviado por andre_asn em 24/09/2008 - 22:03h

Boa noite Marcos Miras mas ja instalei o repositório mas da sempre o mesmo problema:

download@MATRIX:~$ su
Password:
MATRIX:/home/download# apt-get mysql mysql-server mysql-client
E: Operação mysql inválida
MATRIX:/home/download#

[13] Comentário enviado por slacklex em 24/09/2008 - 22:55h

Show de bola, amanhã imprimo no serviço... :-)

[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!

@slacklex: Obrigado por seu comentário!

[]'s
Marcos Miras.

[15] Comentário enviado por andre_asn em 25/09/2008 - 09:56h

Bom dia apenas informando que não deu certo ainda ja estou com o source.list com o abaixo:

#
#deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 DVD Binary-1 20070407-11:40]/ etch contrib main

#deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 DVD Binary-1 20070407-11:40]/ etch contrib main

deb http://ftp.br.debian.org/debian/ etch main
deb-src http://ftp.br.debian.org/debian/ etch main

deb http://security.debian.org/">http://security.debian.org/ etch/updates main contrib
deb-src http://security.debian.org/">http://security.debian.org/ etch/updates main contrib

deb http://mirrors.kernel.org/debian etch main contrib non-free
deb-src http://mirrors.kernel.org/debian etch main contrib non-free
deb http://security.debian.org etch/updates main contrib non-free
deb-src http://security.debian.org etch/updates main contrib non-free
deb http://www.debian-multimedia.org etch main

deb http://www.debian-multimedia.org etch main

Quando dou o resto do comando:

Next we open /etc/apt/preferences and specify that apt should use the debian.mytso.net repository with priority over the default Debian repositories:

vi /etc/apt/preferences

Diz que não tenho permissão para adicionar mesmo usando o comando root

[16] Comentário enviado por brunocontin em 26/09/2008 - 08:53h

Show de bola, poderia ter uma continuidade rsss, Pois o material ficou muito bem explicado.

[17] Comentário enviado por fredcrs em 26/09/2008 - 08:55h

show de bola
+favoritos
+10

[18] Comentário enviado por marcosmiras em 26/09/2008 - 09:26h

Obrigado pelos comentários!

[]'s
Marcos Miras

[19] Comentário enviado por patriques em 05/04/2009 - 00:31h

Ótimo artigo.. parabéns!
luz e paz...

[20] Comentário enviado por cesar em 18/08/2009 - 14:57h

Muito bom!

Parabéns.

[21] Comentário enviado por dgnonline em 23/11/2009 - 15:10h

Parabéns cara ;D

VIVA O LINUX

[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

[24] Comentário enviado por fndiaz em 11/04/2012 - 08:55h

Parabéns pela iniciativa!! Artigo mto bom!

[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.

Att focadeckIII

[26] Comentário enviado por DebianWoman em 18/11/2012 - 18:57h

Muito bom!!!
Explicou melhor que o livro que estou lendo.
Muito obrigada pela sua contribuição.

Artigo excelente.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts