Este artigo aborda por completo as funções SQL básicas de manipulação de tabelas, assim como as funções de manipulação de dados. Os comandos SQL foram executados sob MySQL, mas também podem ser utilizados em qualquer outro software gerenciador de banco de dados.
Agora que já temos a nossa estrutura de tabelas prontas, é hora de
começar a inserir dados nelas, pois é para isso que elas servem,
armazenar dados para que estes sejam trabalhados mais tarde.
Inserindo Dados
O comando utilizado para inserir dados nas tabelas é o INSERT, veja
a sintaxe abaixo para se usar este comando:
INSERT INTO tabela VALUES (valor_campo1, valor_campo2, ..., valorcampoN);
OBS: Insere valores na ordem correta de todos os campos da tabela.
Vamos agora para a inserção de dados. Iremos começar com a tabela
DISCIPLINAS, sendo assim, a partir do prompt do MySQL, digite os
comandos abaixo:
OBS: O uso de aspas simples é obrigatório por se tratar de um valor
não numérico. Lembre-se que '10' foi para o campo "coddisciplina" e
que 'Matematica' foi para o campo "nomedisciplina", de acordo com a
ordem dos campos da tabela.
mysql> insert into ALUNOS values ('400', 'Victor Estanislau da Silva', 'Rua Galdino do Valle - 200', 'Nova Friburgo', '02');
Query OK, 1 row affected (0.00 sec)
OBS: Lembre-se que '100' foi para o campo "matricula",
'Jefferson Estanislau da Silva' foi para "nome", 'Rua Alberto...'
para "endereco", 'Nova...' para "cidade" e '01' para "codcurso".
Muito bem! Acabamos de inserir dados em nossa base de dados. Mas e agora?
Visualizando dados
Não iria fazer sentido você armazenar dados se não pudesse
visualizá-los quando fosse preciso, correto? Por isso, iremos
aprender agora como visualizar estes dados. O comando a ser
utilizado é o SELECT, veja a sintaxe dele abaixo:
SELECT {campo(s)} FROM {tabela(s)}
WHERE {condição}
ORDER BY {campo(s)}
GROUP BY {campo(s)}
Esclarecendo as informações da sintaxe a cima:
SELECT
comando para se chamar a visualização de registros
campo(s)
campos da tabela, para referência da visualização dos registros
FROM
chamada para indicar a tabela
tabela(s)
tabela ou tabelas a serem utilizadas
WHERE
chamada para uma condição
condição
condição que deve ser verdadeira para que os registro sejam visualizados
ORDER BY
permite ordenar a visualização de registros em função de um campo especifico
GROUP BY
permite agrupar a visualização de registros em função de um campo especifico
Obs: O "*" (asterisco), terá um papel importante neste comando.
Exemplo1: Visualizar os nomes da tabela alunos quando a matricula
for igual a '100'.
mysql> select nome from ALUNOS
-> where matricula='100';
+-------------------------------+
| nome |
+-------------------------------+
| Jefferson Estanislau da Silva |
+-------------------------------+
1 row in set (0.46 sec)
Exemplo2: Visualizar os nomes da tabela alunos quando a codcurso for
igual a '01'.
mysql> select nome from ALUNOS
-> where codcurso='01';
+-------------------------------+
| nome |
+-------------------------------+
| Jefferson Estanislau da Silva |
| Leila Maria Muniz da Silva |
+-------------------------------+
2 rows in set (0.00 sec)
Exemplo3: Visualizar os nomes e endereço da tabela alunos quando
a cidade for igual a 'Nova Friburgo'.
mysql> select nome, endereco from ALUNOS
-> where cidade='Nova Friburgo';
+-------------------------------+----------------------------+
| nome | endereco |
+-------------------------------+----------------------------+
| Jefferson Estanislau da Silva | Rua Alberto Braune - 150 |
| Leila Maria Muniz da Silva | Rua General Osorio - 90 |
| Victor Estanislau da Silva | Rua Galdino do Valle - 200 |
+-------------------------------+----------------------------+
3 rows in set (0.00 sec)
Exemplo4: Visualizar todos os campos da tabela alunos.
mysql> select * from ALUNOS;
...
Exemplo5: Visualizar todos os campos da tabela alunos, ordenando-os
pelo campo nome.
mysql> select * from ALUNOS
-> order by nome;
...
Visualizando dados de várias tabelas
Para que isto ocorra, será fundamental o campo chave, que ajudará
a fazer a ligação com um campo comum de outra tabela, mas que tem
o mesmo tipo de dado. Veja a sintaxe a seguir:
select TABELA1.campo, TABELA2.campo from TABELAS
where TABELA1.campo_chave = TABELA2.campo_comum
and TABELA.campo = valor;
Esclarecendo as informações da sintaxe a cima:
tabela1.campo
campo a ser exibido
tabela2.campo
campo a ser exibido
tabelas
nome das tabelas a serem usadas
tabela1.campo_chave
campo chave para junção
tabela2.campo_comum
campo comum para junção
tabela.campo
qualquer uma das tabelas indicadas
valor
valor para referência da condição
Exemplo6: Visualizar o campo "nome" da tabela alunos e o campo
"nomecurso" da tabela cursos, retirado das tabelas alunos e cursos,
quando codcurso da tabela alunos for igual a codcurso da tabela
cursos e a cidade da tabela alunos seja igual a 'Nova Friburgo'.
mysql> select ALUNOS.nome, CURSOS.nomecurso from ALUNOS, CURSOS
-> where ALUNOS.codcurso = CURSOS.codcurso
-> and ALUNOS.cidade='Nova Friburgo';
+-------------------------------+--------------------+
| nome | nomecurso |
+-------------------------------+--------------------+
| Jefferson Estanislau da Silva | Ensino Medio |
| Leila Maria Muniz da Silva | Ensino Medio |
| Victor Estanislau da Silva | Ensino Fundamental |
+-------------------------------+--------------------+
3 rows in set (0.35 sec)
Alterando dados
Outra coisa importante é você poder alterar uma informação, quando
visualizado que esta foi cadastrada erroneamente, para isso iremos
utilizar o comando UPDATE, como mostra a sintaxe abaixo:
O exemplo acima significou que: usando a tabela alunos, altere a
cidade para 'Salvador' quando a matricula for igual a '300'.
Para ver a alteração, use o comando: select * from ALUNOS;
Neste próximo exemplo, usando a tabela alunos, iremos mudar o nome
para 'Joao Vieira da Silva' quando a cidade for igual a 'Salvador'.
mysql> update ALUNOS
-> set nome='Joao Vieira da Silva'
-> where cidade='Salvador';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
Para ver a alteração, use o comando: select * from ALUNOS;
Apagando dados
Como toda a informação pode se tornar inútil ou desnecessária,
devemos aprender como apagar um dado de nossa tabela. Para isso,
iremos utilizar o comando DELETE, veja a sintaxe a seguir:
DELETE FROM tabela
WHERE {condição};
Vamos a uma explicação prática desta sintaxe:
mysql> delete from ALUNOS
-> where matricula='300';
Query OK, 1 row affected (0.41 sec)
Observe que usei para esta condição o número da matrícula, mas
poderia ter usado o valor de qualquer campo.
[2] Comentário enviado por m0d em 19/11/2003 - 19:04h
opa, meu nome eh julio cezar, queria dizer que gostei muito do artigo, e gostaria de deixar aki tb o pedido ...
gostaria que escrevesse o quanto antes a parte 2 do artigo, pois achei mt massa.
obrigado
[3] Comentário enviado por removido em 17/04/2004 - 20:24h
legal essa de fazer um artigo sobre MySQL. amigo, tenho uma ideia e uma duvida pra ti, estou tentando conectar uma base de dados MySQL rodando remotamente em um sevidor red hat por meio de uma estação terminal server kurumin (as máquinas já estão se vendo e se conversando via rede) utilizando o Open Office org como front-end.
[6] Comentário enviado por juliomortandela em 30/08/2004 - 11:29h
Ótimo Artigo, estou começando a trabalhar com banco de dados em MySQL, já tenho em mente algumas implementações de PHP + MySQL para viabilizar o uso do sistema ERP aqui da empresa remotamente, e como não conheço "NADA" de MySQL nem de PHP, já notei que não será um bicho de sete-cabeças...
PS: E este modo de passar o conhecimento adiquirido por todos nós usuários Linux apenas pelo fato de poder auxiliar o próximo, sem pensar em reputação, ou dinheiro que me faz manter acesa a chama de "um dia em que a humanidade irá prosperar de fato."
[12] Comentário enviado por kl31n em 09/03/2005 - 00:13h
Ok......legal o artigo....
mas gostaria de saber tipo.....
se existem StoredProcedures no MySql
ou como o MySql trata as operações
para fazer com que realmente aconteça
o Client-Server
tipo...o sistema manda as informações e
o BG eh que grava elas e se vira com tudo.......
[14] Comentário enviado por Hernando em 03/05/2005 - 10:55h
Como sempre vejo a excelencia em seus artigos... Gosto de acompanhar todos mesmo que naum venha a ultiliza-los testo todos e nunca tive problemas com nenhum deles, parabenizo-o tambem pela preocupação demonstrada por ti a quem está iniciando no mundo linux... é isto que precisa para motivar a migração de qualquer usuário e assim atingir o dominio do mercado, sendo que o mesmo segue tendencias... e se a tendencia é o crescimento do linux é para isso que estamos aki...
[17] Comentário enviado por kernel_sys em 03/06/2006 - 02:43h
cara gostaria de agradecer por esses passo qeu vc passou..to fazendo a mateia de bamco de dados na facul...como não seria diferente o fila da P do meu professor so usa windows.., e como tambem não seria diferente eu compliquei e quis usa linux..heheh não abro mão disso jamais...valeu mesmo..