0% acharam este documento útil (0 voto)
18 visualizações72 páginas

Introdução ao SQL: Comandos e Usos

O documento apresenta uma introdução à SQL, detalhando sua origem, usos, vantagens e desvantagens. São discutidos os comandos principais, como criação e manipulação de tabelas, consultas de dados e operações de agrupamento e junção. Além disso, são fornecidos exemplos práticos de consultas SQL para ilustrar seu uso.

Enviado por

ripan28796
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
18 visualizações72 páginas

Introdução ao SQL: Comandos e Usos

O documento apresenta uma introdução à SQL, detalhando sua origem, usos, vantagens e desvantagens. São discutidos os comandos principais, como criação e manipulação de tabelas, consultas de dados e operações de agrupamento e junção. Além disso, são fornecidos exemplos práticos de consultas SQL para ilustrar seu uso.

Enviado por

ripan28796
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPT, PDF, TXT ou leia on-line no Scribd

SQL

Ana Carolina Salgado


Fernando Fonseca
Valéria Times
SQL
 SQL - Structured Query Language
Linguagem de Consulta Estruturada
 Fundamentada no modelo relacional, inclui
comandos para:
 definição de dados
 consulta
 atualização

10/13/25 © CIn/UFPE 2
Origem: SQL
 Primeira versão: SEQUEL, definida por Chamberlain

em 1974 na IBM
 Em 1975 foi implementado o primeiro protótipo

 Revisada e ampliada entre 1976 e 1977 e teve seu

nome alterado para SQL por razões jurídicas


 Em 1982, o American National Standard Institute

tornou SQL padrão oficial de linguagem em ambiente


relacional
 Utilizada tanto de forma interativa como incluída em

linguagens hospedeiras

10/13/25 © CIn/UFPE 3
SQL
Enfoques de SQL:
 Linguagem interativa de consulta (ad-hoc):

usuários podem definir consultas


independente de programas.
 Linguagem de programação para acesso a

banco de dados: comandos SQL embutidos


em programas de aplicação.
 Linguagem de administração de dados: o DBA

pode utilizar SQL para realizar suas tarefas.

10/13/25 © CIn/UFPE 4
Enfoques de SQL (cont):
SQL
 Linguagem cliente/servidor: os programas clientes

usam comandos SQL para se comunicarem e


compartilharem dados com o servidor.
 Linguagem para banco de dados distribuídos:

auxilia na distribuição de dados por vários nós e


na comunicação de dados com outros sistemas.
 Caminho de acesso a outros bancos de dados em

diferentes máquinas: auxilia na conversão entre


diferentes produtos em diferentes máquinas.

10/13/25 © CIn/UFPE 5
Usos de SQL
DDL

Criar (CREATE) Implementação


Destruir (DROP)
Modificar (ALTER) Ambiente

SQL
DML
Segurança Consultar (SELECT)
Controle Inserir (INSERT)
Remover (DELETE)
Administração Atualizar (UPDATE)

10/13/25 © CIn/UFPE 6
SQL

Vantagens:
 Independência de fabricante

 Portabilidade entre sistemas

 Redução de custos com treinamento

 Comandos em inglês

 Consulta interativa

 Múltiplas visões de dados

 Manipulação dinâmica dos dados

10/13/25 © CIn/UFPE 7
SQL
Desvantagens:
 A padronização inibe a criatividade

 Está longe de ser uma linguagem relacional

ideal
 Algumas críticas:

 falta de ortogonalidade nas expressões


 discordância com as linguagens hospedeiras
 não dá suporte a alguns aspectos do modelo
relacional.

10/13/25 © CIn/UFPE 8
Esquema Relacional dos
Exemplos
Empregado Cad Nome Sexo Salário Num-Dep Cad-Spv

Departamento Número Nome Cad-Ger Data-Ini

Locais Num-Dep Num-Loc

Projeto Número Nome Local Num-Dep

Trabalha-em Cad-Emp Num-Proj Horas

Dependente Cad Nome Data-nasc Grau-P


10/13/25 © CIn/UFPE 9
SQL

Comandos SQL (padrão ANSI):


 Criação e destruição de tabelas

 Extração de dados de uma tabela

 Inserção, modificação e remoção de


dados
 Definição de visões

 Definição de privilégios de acesso

10/13/25 © CIn/UFPE 10
SQL
Criação de Tabelas
CREATE TABLE <tabela>
(<descrição dos atributos>
<descrição das chaves>)
 Descrição dos atributos: lista dos atributos

com respectivos tipos de dados: smallint,


char, money, varchar, integer, decimal,
float, real, date, time, timestamp, logical.

10/13/25 © CIn/UFPE 11
SQL

 A chave primária deve ser declarada como


not null unique
ou PRIMARY KEY (<atributos>)
 Descrição das chaves: lista das chaves
estrangeiras na forma:
FOREIGN KEY (<atributo>) REFERENCES
<tabela> (<atributo>)

10/13/25 © CIn/UFPE 12
Criação de tabelas:
SQL
Exemplo:
Empregado Cad Num-Dep Cad-Spv
Nome Sexo Salário

CREATE TABLE Empregado


(Cad smallint not null,
Nome char (20),
Sexo char,
Salário decimal (10,2),
Num-Dep integer,
Cad-Spv smallint,
PRMARY KEY (Cad),
FOREIGN KEY Num-Dep REFERENCES Departamento
(Número),
FOREIGN KEY Cad-Spv REFERENCES Empregado (Cad))
10/13/25 © CIn/UFPE 13
SQL
Criação de tabelas:
Exemplo:
Trabalha-em Cad-Emp Num-Proj Horas

CREATE TABLE Trabalha-em


(Cad-emp smallint not null ,
Num-Proj integer not null ,
Horas decimal (3,1)
PRIMARY KEY (Cad_emp, Num_proj)
FOREIGN KEY Cad-Emp REFERENCES Empregado
(Cad),
FOREIGN KEY Num-Proj REFERENCES Projeto
(Número))
10/13/25 © CIn/UFPE 14
SQL

Destruição de tabelas
DROP TABLE <tabela>
Elimina a tabela que foi previamente
criada.

Exemplo:
DROP TABLE Empregado

10/13/25 © CIn/UFPE 15
SQL
Extração de Dados de uma Tabela
Comando SELECT
 Selecionando atributos (Projeção):

SELECT <lista de atributos> FROM


<tabela>
Exemplo: Listar nome e salário de todos
os empregados
SELECT Nome, Salário FROM Empregado

10/13/25 © CIn/UFPE 16
SQL

 Selecionando todos os atributos


SELECT * FROM <tabela>
Exemplo: Listar o conteúdo de Empregado
SELECT * FROM Empregado

10/13/25 © CIn/UFPE 17
SQL
 Selecionando tuplas da tabela
SELECT <lista de atributos> FROM
<tabela> WHERE <condição>
onde condição:
<nome atributo> <operador> <valor>

Operadores Relacionais: =, !=, <, <=, >, >=

Operadores Lógicos: AND, OR e NOT


10/13/25 © CIn/UFPE 18
SQL
 Selecionando tuplas da tabela
Exemplos:
 Listar nome e sexo dos empregados do
departamento 15.
SELECT Nome, Sexo FROM Empregado
WHERE Num-Dep = 15
 Listar nome e sexo dos empregados do
departamento 15 com salário > R$ 1.000,00
SELECT Nome, Sexo FROM Empregado
WHERE Num-Dep = 15 AND Salário > 1000

10/13/25 © CIn/UFPE 19
SQL
Operadores BETWEEN e NOT BETWEEN:
substituem o uso dos operadores <= e >=
... WHERE <nome atributo> BETWEEN
<valor1> and <valor2>
Exemplo:
Listar os empregados com salário entre
R$ 1.000,00 e R$ 2.000,00
SELECT * FROM Empregado
WHERE Salário BETWEEN 1000 and 2000

10/13/25 © CIn/UFPE 20
SQL
Operadores LIKE e NOT LIKE: só se aplicam
sobre atributos do tipo char. Operam como = e !
=, utilizando os símbolos: % (substitui uma
palavra) e _ (substitui um caracter).
...WHERE <nome atributo> LIKE <valor1>
Exemplo:
 Listar os empregados que tem como primeiro
nome ‘José‘
SELECT Nome FROM Empregado
WHERE Nome LIKE ‘José%’

10/13/25 © CIn/UFPE 21
SQL
Operadores IN e NOT IN: procuram dados que
estão ou não contidos em um dado conjunto de
valores.
... WHERE <nome atributo> IN <valores>
Exemplo:
-Listar o nome e data de nascimento dos
dependentes com grau de parentesco ‘M’ ou ‘P’
SELECT Nome, Data-Nasc FROM
Dependentes WHERE Grau-P IN (‘M’, ‘P’)

10/13/25 © CIn/UFPE 22
SQL

Operadores IS NULL e IS NOT NULL:


identificam valores nulos dos atributos.
... WHERE <nome atributo> IS NULL
Exemplo:
Listar os projetos que não tenham local
definido
SELECT * FROM Projeto
WHERE Local IS NULL

10/13/25 © CIn/UFPE 23
SQL
 Ordenando os dados selecionados
(ORDER BY)
SELECT <lista atributos> FROM <tabela>
[WHERE <condição>] ORDER BY
<Nome atributo> {ASC |
DESC}

10/13/25 © CIn/UFPE 24
SQL

Exemplo:
Listar todos os empregados ordenados
ascendentemente por nome.
SELECT * FROM Empregado ORDER BY
Nome
Listar todos os empregados ordenados
descendentemente por salário
SELECT * FROM Empregado
ORDER BY Salário DESC

10/13/25 © CIn/UFPE 25
SQL
 Realizando cálculo com informação
selecionada
Pode-se criar um campo que não pertença à
tabela a partir de cálculos sobre atributos da
tabela
Exemplo:
 Mostrar o novo salário dos empregados
calculado com base no reajuste de 60%
para os que ganham abaixo de R$ 1.000,00

10/13/25 © CIn/UFPE 26
SQL

SELECT Nome, Novo-salário = (Salário *


1.60)
FROM Empregado WHERE Salário <
1000

10/13/25 © CIn/UFPE 27
SQL
 Utilizando funções sobre conjuntos
Comandos: MAX, MIN, SUM, AVG, COUNT
Exemplos:
Mostrar o valor do maior salário dos
empregados
SELECT MAX (Salário) FROM Empregado

10/13/25 © CIn/UFPE 28
SQL

Mostrar qual o salário médio dos


empregados
SELECT AVG (Salário) FROM
Empregado
Quantos empregados ganham mais de
R$1.000,00?
SELECT COUNT (*) FROM Empregado
WHERE Salário > 1000

10/13/25 © CIn/UFPE 29
SQL
 Cláusula DISTINCT
Elimina tuplas duplicadas do resultado de
uma consulta.
Exemplo:
Quais os diferentes salários dos
empregados?
SELECT DISTINCT Salário FROM
Empregado

10/13/25 © CIn/UFPE 30
SQL

 Agrupando informações selecionadas


(GROUP BY)
Organiza a seleção de dados em grupos
Exemplo:
Listar os empregados por sexo
SELECT Nome, Sexo FROM Empregado
GROUP BY Sexo

10/13/25 © CIn/UFPE 31
SQL
 Agrupando Informações de forma
condicional (HAVING)
Seleciona entre as tuplas resultantes, as
que satisfazem um dada condição.

10/13/25 © CIn/UFPE 32
SQL
Exemplo:
Listar o número total de empregados
que recebem salários superior a
R$1.000,00, agrupados por
departamento mas só daqueles com
mais de 5 empregados.
SELECT Num-Dep, COUNT (*)
FROM Empregado
WHERE Salário > 1000
GROUP BY Num-Dep
HAVING COUNT(*) > 5
10/13/25 © CIn/UFPE 33
SQL
 Recuperando dados de várias tabelas
(JOIN)
Citar as tabelas envolvidas na cláusula
FROM
Qualificadores de nomes: para referenciar
o nome do empregado, [Link]
Exemplos:
Listar o nome do empregado e do
departamento onde está alocado
10/13/25 © CIn/UFPE 34
SQL
SELECT [Link],[Link]
FROM Empregado, Departamento
WHERE [Link]-Dep=
[Link];
Listar os nomes dos departamentos que têm
projetos
SELECT [Link]
FROM Departamento, Projeto
WHERE [Link]-Dep=
[Link];
10/13/25 © CIn/UFPE 35
SQL
 Observações:
Podemos utilizar as cláusulas (NOT)
LIKE, (NOT) IN, IS (NOT) NULL
misturadas aos operadores AND, OR e
NOT nas equações de junção.

Podemos agrupar e/ou ordenar o


resultado de uma junção.

Agrupamento/Ordenação pode ser feito


através de mais de um atributo.
10/13/25 © CIn/UFPE 36
SQL
 Exemplo: Listar os departamentos que têm
projetos com número superior a 99 e
localizados em RJ ou SP ordenados por nome
de departamento
SELECT [Link]
FROM Departamento, Projeto
WHERE [Link] IN (‘RJ’, ‘SP’)
AND Projeto.Número > 99
AND [Link]-Dep=
[Link]
ORDER BY [Link] ;
10/13/25 © CIn/UFPE 37
SQL
 Outro Exemplo: Classificando uma Junção
Para cada departamento, liste o número, o
nome e o salário de seus empregados

SELECT [Link], [Link], [Link], [Link]


FROM Departamento D, Empregado E
WHERE [Link] = [Link]-Dep
ORDER BY [Link], [Link] DESC;

10/13/25 © CIn/UFPE 38
SQL
 Outro Exemplo: Agrupando através de mais
de um atributo em uma Junção
Encontre o total de projetos de cada
funcionário

SELECT [Link]-Dep, [Link], COUNT(*) AS Total


FROM Trabalha-em T, Empregado E
WHERE [Link] = [Link]-Emp
GROUP BY [Link]-Dep, [Link]
ORDER BY [Link]-Dep, [Link];
10/13/25 © CIn/UFPE 39
SQL
 Juntando mais de duas tabelas
Exemplo:
Listar o nome dos empregados, com
seu respectivo departamento que
trabalhem mais de 20 horas em algum
projeto

10/13/25 © CIn/UFPE 40
SQL

SELECT [Link],
[Link]
FROM Empregado, Departamento,
Trabalha-em
WHERE [Link] > 20
AND [Link]-Emp = [Link]
AND [Link]-Dep =
Departamento.Número;

10/13/25 © CIn/UFPE 41
SQL
 Utilizando consultas encadeadas
 O resultado de uma consulta é
utilizado por outra consulta, de forma
encadeada e no mesmo comando SQL.
O resultado do comando SELECT mais
interno (subselect) é usado por outro
SELECT mais externo para obter o
resultado final.
O SELECT mais interno (subconsulta ou
consulta aninhada) pode ser usado
apenas nas cláusulas WHERE e HAVING
do comando mais externo.
10/13/25 © CIn/UFPE 42
SQL
 Utilizando consultas encadeadas(Cont.)
 Existem 3 tipos de subconsultas:
ESCALAR: Retornam um único valor.
ÚNICA LINHA: Retornam várias
colunas, mas apenas uma única linha é
obtida.
TABELA: Retornam uma ou mais
colunas e múltiplas linhas.

10/13/25 © CIn/UFPE 43
SQL
 Exemplo: Usando uma subconsulta com
operador de igualdade
Listar os empregados que trabalham no
departamento de Informática.
SELECT Cad, Nome, Salario
FROM Empregado
WHERE Num-Dep =
(SELECT Numero
FROM Departamento
WHERE Nome = ‘Informática’ );
10/13/25 © CIn/UFPE 44
SQL
 Utilizando consultas encadeadas(Cont.)

 Observações
 A subconsulta anterior é do tipo
ESCALAR: Retorna o código do
departamento de Informática.
Operadores Relacionais: =, !=, <, <=, >, >=
A subconsulta deve sempre estar entre ().

10/13/25 © CIn/UFPE 45
SQL
 Exemplo: Usando uma subconsulta com
função agregada
Listar os empregados cujos salários são
maiores do que o salário médio, mostrando
o quanto são maiores.
SELECT Cad, Nome, Sexo,
Salario - ( SELECT AVG (Salario)
FROM Empregado) AS DifSal
FROM Empregado
WHERE Salario > ( SELECT AVG ( Salario)
FROM Empregado );
10/13/25 © CIn/UFPE 46
SQL
 Utilizando consultas encadeadas(Cont.)

 Observações
 A subconsulta anterior é do tipo
ESCALAR: Retorna o salário médio dos
empregados.
A condição abaixo é incorreta:
WHERE Salario > AVG ( Salario)

10/13/25 © CIn/UFPE 47
SQL
Exemplo: Subconsultas aninhadas: Uso do IN
Listar os departamentos que tenham
qualquer projeto em RJ

SELECT [Link]
FROM Departamento
WHERE Departamento.Número IN
(SELECT [Link]-Dep
FROM Projeto
WHERE [Link] = ‘RJ’) ;
10/13/25 © CIn/UFPE 48
SQL
Outro Exemplo: Uso do IN
Listar os dependentes dos funcionários que
trabalham no departamento de Informática
SELECT Nome, Data-nasc, Grau-P
FROM Dependente
WHERE Cad IN ( SELECT Cad
FROM Empregado
WHERE Num-Dep =
( SELECT Numero
FROM Departamento
WHERE Nome = ‘Informática’ ) );
10/13/25 © CIn/UFPE 49
SQL
Exemplo: Utilizando ANY / SOME
 São usadas com subconsultas que produzem
uma única coluna de números.
 Listar os empregados cujos salários são maiores
do que o salário de pelo menos um funcionário
do departamento 20
SELECT Cad, Nome, Sexo, Salario
FROM Empregado
WHERE Salario > SOME ( SELECT Salario
FROM Empregado
WHERE Num-Dep = 20) ;

10/13/25 © CIn/UFPE 50
SQL
Exemplo: Utilizando ALL
 É utilizado com subconsultas que produzem uma
única coluna de números.
 Listar os empregados cujos salários são maiores
do que salário de cada funcionário do
departamento 15
SELECT Cad, Nome, Sexo, Salario
FROM Empregado
WHERE Salario > ALL ( SELECT Salario
FROM Empregado
WHERE Num-Dep = 15) ;

10/13/25 © CIn/UFPE 51
SQL
 Regras genéricas de subconsultas
 A cláusula ORDER BY não pode ser usada em
uma subconsulta.
 A lista de atributos especificados no SELECT de
uma subconsulta deve conter um único elemento
(exceto para EXISTS).
 Nomes de atributos especificados na subconsulta
estão associados às tabelas listadas na cláusula
FROM da mesma.
 É possível referir-se a uma tabela da cláusula
FROM da consulta mais externa utilizando
qualificadores de atributos.

10/13/25 © CIn/UFPE 52
SQL
 Regras genéricas de subconsultas (Cont.)
 Quando a subconsulta é um dos operandos
envolvidos em uma comparação, ela deve
aparecer no lado direito da comparação.
 Por exemplo, seria incorreto especificar:
SELECT Cad, Nome, Sexo, Salario
FROM Empregado
WHERE
( SELECT AVG ( Salario)
FROM Empregado ) < Salario;

10/13/25 © CIn/UFPE 53
SQL
 EXISTS e NOT EXISTS
Foram projetadas para uso apenas com
subconsultas.
EXISTS
Retorna TRUE  existe pelo menos uma
linha produzida pela subconsulta.
 Retorna FALSE  a subconsulta produz
uma tabela resultante vazia.

10/13/25 © CIn/UFPE 54
SQL
 Exemplo: Utilizando EXISTS
 Liste todos os empregados que trabalham no
departamento de Informática.
SELECT Cad, Nome, Sexo, Salario
FROM Empregado E
WHERE EXISTS
( SELECT *
FROM Departamento D
WHERE [Link]-Dep = [Link] AND
[Link] = ‘Informática’) ;

10/13/25 © CIn/UFPE 55
SQL
 Operações de Conjunto
 UNION
 Linhas duplicadas são removidas da tabela
resultante.
 Exemplo: Construa uma lista de todos os
locais onde existe um departamento ou um
projeto.
( SELECT Local FROM Projeto
WHERE Local IS NOT NULL )
UNION
( SELECT Local FROM Locais ) ;

10/13/25 © CIn/UFPE 56
SQL
 Operações de Conjunto (Cont.)
 INTERSECT
 Exemplo: Construa uma lista de todos os
locais onde existe ambos um departamento
e um projeto.

( SELECT Local
FROM Projeto )
INTERSECT
( SELECT Local
FROM Locais ) ;

10/13/25 © CIn/UFPE 57
SQL
 Operações de Conjunto (Cont.)
 EXCEPT / MINUS
 Exemplo: Construa uma lista de todos os
locais onde existe um departamento mas
nenhum projeto.

( SELECT Local
FROM Locais )
EXCEPT
( SELECT Local
FROM Projeto );

10/13/25 © CIn/UFPE 58
SQL
 Adicionando tupla à tabela
INSERT INTO <tabela> (<lista de
atributos>) VALUES (<valores>);
INSERT INTO Empregado(Cad, Nome,
Sexo, Salário, Num_Dep, Cad_Supv)
VALUES (015, ‘José da Silva’, ‘M’, 1000, 1,
020)

10/13/25 © CIn/UFPE 59
SQL

 Adicionando tuplas usando SELECT


INSERT INTO <tabela> (<lista de
atributos>)
SELECT <lista de atributos>
FROM <tabela>
WHERE <condição>

10/13/25 © CIn/UFPE 60
SQL
INSERT INTO depto-info (nome-depto, num-
emp, total-sal)
SELECT [Link], COUNT(*), SUM ([Link])
FROM Departamento D, Empregado E
WHERE [Link] = [Link]-Dep
GROUP BY [Link]
HAVING COUNT (*) > 50 ;

10/13/25 © CIn/UFPE 61
SQL
 Atualizando tuplas
UPDATE <nome tabela>
SET <nome atributo> = valor
WHERE <condição> ;

UPDATE Empregado SET Salário =


1500 WHERE Cad = 015;

10/13/25 © CIn/UFPE 62
SQL

 Apagando tuplas da tabela


DELETE FROM <tabela>
WHERE <condição> ;

DELETE FROM Empregado


WHERE Salário > 5000 ;

10/13/25 © CIn/UFPE 63
SQL
 Utilizando Visões (VIEWS)
São tabelas virtuais que não ocupam
espaço físico
 Criação, Utilização, Inserção,
Modificação, etc.
CREATE VIEW <nome da view>
<lista de atributos> AS SELECT...

10/13/25 © CIn/UFPE 64
SQL
Criar uma visão dos empregados do
departamento 10 que tenham mais de 20
horas de trabalho em projetos
CREATE VIEW Dep-10 AS
SELECT [Link],
[Link]-Proj
FROM Empregado, Trabalha-em
WHERE [Link] > 20
AND [Link]-Emp =
[Link]
AND [Link]-Dep = 10;
10/13/25 © CIn/UFPE 65
SQL
 Garantindo privilégios de acesso
GRANT <privilégios> ON <nome
tabela/view> TO <usuário> onde:
 <privilégios>: SELECT, INSERT, DELETE,
UPDATE, ALL
PRIVILEGES e
 <usuário>: usuário cadastrado, PUBLIC
GRANT SELECT ON Empregado TO acs;

10/13/25 © CIn/UFPE 66
SQL

REVOKE <privilégios> ON <nome


tabela/view> FROM <usuário>

REVOKE SELECT ON Projeto FROM


PUBLIC;

10/13/25 © CIn/UFPE 67
SQL
 Sumário

 Forma Geral de um Comando SQL:


SELECT [ DISTINCT / ALL] { * | expressão
[ AS novoNome] | listaAtributos }
FROM nomeTab1[alias1], nomeTab2[alias2],...
[ WHERE condição ]
[GROUP BY listaColunas] [HAVING condição]
[ORDER BY listaColunas]

10/13/25 © CIn/UFPE 68
SQL
 Sumário (Cont.)
 Cada comando SQL produz uma tabela
resultante consistindo de 1 ou mais colunas e
de 0 ou mais linhas.
 Cláusula SELECT
 Identifica colunas e/ou dados derivados
que aparecerão na tabela resultante.
 Todos os atributos devem ter suas
tabelas/visões correspondentes, listadas na
cláusula FROM.
 SELECT e FROM são as únicas cláusulas
obrigatórias.
10/13/25 © CIn/UFPE 69
SQL
 Sumário (Cont.)
Cláusula WHERE: Seleciona linhas para
serem incluídas na tabela resultante.
Cláusula ORDER BY
Permite ordenar a tabela resultante com
base nos valores de 1 ou mais atributos.
Pode ser feita de forma crescente ou
decrescente.
Se especificada, deve ser a última
cláusula do comando SQL.

10/13/25 © CIn/UFPE 70
SQL
 Sumário (Cont.)
Funções COUNT, SUM, AVG, MIN e MAX
 Recebem uma coluna inteira como
argumento e retornam um único valor.
 COUNT, MIN e MAX aplicam-se a atributos
numéricos/ não-numéricos.
 É ilegal misturar estas funções com
nomes de atributos do SELECT, exceto se
a cláusula GROUP BY é usada.
 Valores nulos são eliminados por cada
função (exceto no caso de COUNT(*)).
 Para eliminar duplicadas, use DISTINCT.
10/13/25 © CIn/UFPE 71
SQL
 Sumário (Cont.)
Cláusula GROUP BY
Permite que informação de resumo seja
incluída na tabela.
HAVING atua como uma cláusula WHERE
para grupos, restringindo-os.
Porém, HAVING pode ter funções
agregadas.

10/13/25 © CIn/UFPE 72

Você também pode gostar