Escolar Documentos
Profissional Documentos
Cultura Documentos
Apresentação SQL
Apresentação SQL
Controle acadmico
Resultado solicitado
Soluo tradicional
PROCEDURE EXIBIR_NOTAS;
BEGIN
TABAVALIACAO.FIRST;
WHILE (NOT TABAVALIACAO.EOF) DO
BEGIN
IF NOT TABASP.FINDKEY([TABAVALIACAO['NASP'])
THEN SHOWMESSAGE(ASPIRANTE NO EXISTE)
ELSE
IF NOT TABDISCI.FINDKEY([TABAVALIACAO[CODDISC'])
THEN SHOWMESSAGE(DISCIPLINA NO EXISTE)
ELSE
LISTBOX1.ITEMS.Add(TABASP['NOMEASP']+'
+TABDISCI['NOMEDISCI'] +
+ TABAVALIACAO[TIPO'] +
+ FLOATTOSTR(TABAVALIACAO[NOTA']));
TABAVALIACAO.NEXT;
END;
END;
Algumas Questes
Existe uma maneira de obter informaes
em um banco de dados de forma mais
fcil?
O sistema existente no fornece certa
informao. O que fazer?
SQL
S o qu?
SQL
Structured Query Language, ou Linguagem de Consulta
Estruturada ou SQL, uma linguagem de pesquisa para
banco de dados relacional. Muitas das caractersticas
originais do SQL foram inspiradas na lgebra relacional.
Consulta SQL
Select Numasp, Nomeasp, Nomedisci,
Peso,Nota*Peso as Notapeso
From Aspirantes, Disciplinas, Avaliacoes, Tipoteste
Where Avaliacoes.Numasp = Aspirantes.Numasp
And Avaliacoes.Coddisci = Disciplinas.Coddisci
And Avaliacoes.Teste = Tipoteste.Teste
And Avaliacoes.NumAsp = 2002
Order By Aspirantes.Numasp, Avaliacoes.Coddisci;
Consultas SQL
SELECT Seleciona os campos a serem exibidos, usamos
* para exibir todos os campos (deve ser evitado para no
sobrecarregar a rede.
FROM Informamos as tabelas envolvidas na consulta.
AS Para modificar um nome de campo ou nomear um
campo calculado.
ORDER BY Ordena a consulta pelos campos informados.
WHERE Seleciona as linhas a serem exibidas de acordo
uma condio.
LIKE Usamos para pesquisar parte de uma string em uma
condio.
Exemplos
Select * From Aspirantes;
Select NomeAsp, TelAsp From Aspirantes;
Select NomeAsp as Nome, TelAsp as Tel
From Aspirantes;
Select Descricao, (Preco * Estoque) as Total
From Produtos
Order By Descricao;
Select Descricao From Produtos
Where Preco Between 10 and 20;
Exemplos
Select * From Aspirantes
Where NumAsp = 2001;
Select NomeAsp
From Aspirantes
Where Nome LIKE F% Or Nome LIKE % DE %;
Select Descricao, (Preco * Estoque) as Total
From Produtos
Where Total > 5000;
Relacionamento
Quando a clusula FROM especfica mais de uma
tabela devemos colocar o relacionamento na
clusula WHERE.
Select NomeAsp, CodDisci,TipoTeste, Nota
From Aspirantes, Avaliacoes
Where Aspirantes.NumAsp = Avaliacoes.NumAsp;
Evitando Repeties
Comandos de Agregao
Select COUNT(*) as TotAsp From Aspirantes;
Select SUM(Estoque) From Produtos;
Select AVG(Preco) From Produtos;
Select MIN(Preco) From Produtos;
Select MAX(Preco) From Produtos;
Exerccio de SQL
SQL em Delphi
Query1.Close;
Query1.SQL.Clear;
{Fecha a query}
{Limpa o contedo da
propriedade SQL}
Query1.SQL.Add(Select *);
{Adiciona}
Query1.SQL.Add(From Aspirantes);
Query1.SQL.Add(Where BairroAsp = TIJUCA );
Query1.Open;
{Abre e executa a Query}