Esta parte do curso tratará de como extrair informações do banco de dados. Recomendo que as 4 seções abaixo sejam estudadas em cinco dias, no mínimo. Dois dias para "Selecionando Registros", um dia para "Junção de Tabelas", dois para "Agrupando Registros" e "Trabalhando com Conjuntos". Não se afobem, a qualidade é mais importante que o tempo, demorem o tempo que for necessário para compreender.
Selecionando Registros
![]() |
|
SELECT * FROM aluno
SELECT codaluno, nome FROM aluno
SELECT codaluno, nome FROM aluno WHERE codaluno=27
SELECT * FROM aluno WHERE nascdata > escoladata
SELECT codaluno, nome FROM aluno WHERE nome LIKE "%PIC%"
SELECT codaluno, nome FROM aluno WHERE nascdata BETWEEN “01-MAR-1975” AND “31-MAR-1975”
SELECT codaluno, nome FROM aluno WHERE nascdata >= “01-MAR-1975” AND nascdata <= “31-MAR-1975”
SELECT * FROM aluno WHERE pai "%MORENO" OR PAI LIKE "MARCOS%"
SELECT * FROM aluno WHERE IDENTIDADEESTADO IN ("AP","DF",”RR”)
SELECT * FROM aluno WHERE pai IN (SELECT pai FROM aluno WHERE pai LIKE “MARCOS%MORENO”)
SELECT * FROM aluno WHERE pai IS NULL
SELECT * FROM aluno WHERE NOT pai IS NULL
SELECT * FROM aluno WHERE sexo="F" AND estadocivil<>"C" AND nascdata>"01/01/1975" AND escoladata < nascdata+365*17 AND nascdata < escoladata
Junção de duas Tabelas
![]() |
|
SELECT ra, nome FROM aluno, matricula WHERE aluno.codaluno=matricula.codmatricula
SELECT ra, nome FROM aluno, matricula WHERE aluno.codaluno=matricula.codmatricula AND anoletivoatual=2003 AND codcurso=1
SELECT ra, nome FROM aluno JOIN matricula ON matricula.codaluno=aluno.codaluno
SELECT ra, nome FROM aluno LEFT OUTER JOIN matricula ON matricula.codaluno=aluno.codaluno
Agrupando Registros
![]() |
SELECT count(*) FROM aluno
SELECT count(*) FROM matricula WHERE anoletivoatual=2003 AND status="A"
SELECT sum(valor-desconto) FROM finparcelas WHERE tipoparc="M" AND anoref=2003 AND mesbase=3 AND vcto >= "today" AND pago IS NOT NULL
SELECT sum(valor) FROM finparcelas WHERE tipoparc="M" AND anoref=2003 AND mesbase=3 AND vcto < "today" AND pago IS NULL
SELECT avg(pago) FROM finparcelas WHERE tipoparc="M" AND anoref=2003 AND mesbase=3
SELECT sum(pago) FROM finparcelas WHERE pgto BETWEEN "01/01/2003" AND "03/31/2003"
SELECT DISTINCT nascestado FROM aluno
SELECT nascestado,count(*) FROM aluno GROUP BY nascestado
SELECT nascestado,count(*) FROM aluno GROUP BY nascestado ORDER BY nascestado
SELECT nascestado,count(*) FROM aluno GROUP BY nascestado HAVING count(*) <= 5 ORDER BY nascestado
SELECT nascestado,count(*) total FROM aluno GROUP BY nascestado HAVING count(*) <= 5 ORDER BY total DESC
SELECT ra,nome,count(*),sum(valor) FROM aluno alu JOIN matricula mat ON alu.codaluno=mat.codaluno JOIN finparcelas par ON par.codmatricula=mat.codmatricula WHERE pago IS NULL AND vcto < "today" GROUP BY ra,nome ORDER BY nome
Trabalhando com Conjuntos
SQL (Structured Query Language ou Linguagem de Consulta Estruturada) é uma linguagem padrão utilizada em vários RDBMS (Relational Database Management System, Sistemas Gerenciadores de Bancos de Dados Relacionais). RDBMS são programas que rodam geralmente em um outro computador na rede, onde estão armazenados os bancos de dados, recebem os comandos SQL de outros programas localizados em outras máquinas e respondem. Ele gerencia várias solicitações. São exemplos de RDBMS: Oracle, Interbase, Microsoft SQL Server, IBM DB/2 e muitos outros. Por ser uma linguagem, é razoavel imaginar que cada fabricante fale SQL com um sotaque peculiar. Por exemplo, LEFT OUTER JOIN existe apenas no Interbase. Existem três comandos muito úteis que fazem com que duas consultas tornem uma apenas: UNION, INTERSECT e MINUS. Infelizmente, o Interbase entende apenas o primeiro. Os exemplos abaixo são meramente ilustrativos.
SELECT nome FROM aluno UNION SELECT nome FROM funcionario
SELECT nome FROM aluno INTERSECT SELECT nome FROM funcionario
SELECT nome FROM aluno MINUS SELECT nome FROM funcionario
E assim finalizamos a primeira parte desse curso.