Gerenciando banco de dados com MySQL (Parte 1) [Artigo] - página 9
[ Hits: 304.299 ]
Manipulando dados nas tabelas
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.
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:
mysql> insert into DISCIPLINAS values ('10','Matematica');
mysql> insert into DISCIPLINAS values ('20','Portugues');
mysql> insert into DISCIPLINAS values ('30','Quimica');
mysql> insert into DISCIPLINAS values ('40','Biologia');
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.
Vamos agora para a tabela CURSOS:
mysql> insert into CURSOS values ('01', 'Ensino Medio', '30', '40');
mysql> insert into CURSOS values ('02', 'Ensino Fundamental', '10', '20');
OBS: Lembre-se que '01' foi para o campo "codcurso", 'Ensino Medio' para "nomecurso", '30' para "coddisc1" e '40' para "coddisc2".
Vamos agora para a tabela ALUNOS:
mysql> insert into ALUNOS values ('100', 'Jefferson Estanislau da Silva', 'Rua Alberto Braune - 150', 'Nova Friburgo', '01');
mysql> insert into ALUNOS values ('200', 'Leila Maria Muniz da Silva', 'Rua General Osorio - 90', 'Nova Friburgo', '01');
mysql> insert into ALUNOS values ('300', 'Camila Silva Perez', 'Rua Barata Ribeiro - 570', 'Rio de Janeiro', '02');
mysql> insert into ALUNOS values ('400', 'Victor Estanislau da Silva', 'Rua Galdino do Valle - 200', 'Nova Friburgo', '02');
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?
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)}
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';
| Jefferson Estanislau da Silva |
Exemplo2: Visualizar os nomes da tabela alunos quando a codcurso for igual a '01'.
-> where codcurso='01';
| Leila Maria Muniz da Silva |
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 |
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;
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
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 |
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:
SET campo = valor
WHERE {condição};
Vamos a uma explicação prática desta sintaxe:
mysql> update ALUNOS
-> set cidade='Salvador'
-> where matricula='300';
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'.
-> set nome='Joao Vieira da Silva'
-> where cidade='Salvador';
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:
mysql> delete from ALUNOS
Observe que usei para esta condição o número da matrícula, mas poderia ter usado o valor de qualquer campo.