• Nenhum resultado encontrado

A ULA 4

N/A
N/A
Protected

Academic year: 2022

Share "A ULA 4"

Copied!
21
0
0

Texto

(1)

A ULA 4

SQL

Prof: Rômulo Lima

Linguagem de Prog. de Banco de Dados

(2)

C LÁUSULAS

 As cláusulas são condições de modificação utilizadas para definir os dados que deseja selecionar ou modificar em uma consulta.

 FROM - Utilizada para especificar a tabela que se vai selecionar os registros

 WHERE – Utilizada para especificar as condições que devem reunir os registros que serão

selecionados.

 GROUP BY – Utilizada para separar os registros selecionados em grupos específicos. Normalmente a cláusula GROUP BY é utilizada junto com

expressões de agregação.

(3)

C LÁUSULAS

 HAVING – Utilizada para expressar a condição que deve satisfazer cada grupo (GROUP BY).

 ORDER BY – Utilizada para ordenar os registros selecionados com uma ordem especifica.

 DISTINCT – Utilizada para selecionar dados sem

repetição.

(4)

MAIS EXEMPLOS...

create table empregado(

id integer,

cargo varchar(255), nome varchar(255), idade integer,

constraint pk_empregado primary key (id) );

OBTER A QUANTIDADE DE EMPREGADOS POR CARGO QUE TENHAM IDADE MAIOR QUE 25.

- select count(*), cargo from empregado group by cargo having idade > 25;  VAI FUNCIONAR ? ERRO: coluna "empregado.idade" deve aparecer na cláusula GROUP BY ou ser utilizada em uma

função de agregação

LINE 1: ...nt(*), cargo from empregado group by cargo having idade > 25...

- select count(*), cargo from empregado where idade > 25 group by cargo;  VAI FUNCIONAR ?

OBTER A QUANTIDADE DE EMPREGADOS POR CARGO QUE TENHAM IDADE MAIOR QUE 25, DESDE QUE EXISTA AO MENOS DOIS CARGOS IGUAIS.

- select count(*), cargo from empregado where idade > 25 group by cargo having count(*) >= 2;

id cargo nome idade

1 Desenvolvedor Jose 26

2 Desenvolvedor Maria 25

3 Testador Fabiana 26

4 Desenvolvedor Rafael 30

5 Analista Denise 35

(5)

ORDER BY

 ORDER BY é opcional.

 Entretanto, se você quiser exibir seus dados na ordem classificada, você deve utilizar ORDER BY.

 O padrão ordem de classificação é ascendente (A a Z, 0 a 9)

SELECT Sobrenome, Nome FROM Funcionários ORDER BY Sobrenome;

SELECT Sobrenome, Nome FROM Funcionários

ORDER BY Sobrenome ASC;

(6)

ORDER BY

 Para classificar em ordem descendente (Z a A, 9 a 0), adicione a palavra reservada DESC ao final de cada campo

SELECT Sobrenome, Salário FROM Funcionários ORDER BY Salário DESC, Sobrenome;

SELECT Sobrenome, Salário FROM Funcionários

ORDER BY 2 DESC, 1;

(7)

DISTINCT

 Em uma tabela, algumas das colunas podem conter valores duplicados

 A palavra chave DISTINCT pode ser usada para retornar apenas valores distintos (diferentes).

SELECT DISTINCT nome_coluna(s) FROM nome_tabela

id cargo nome idade

1 Desenvolvedor Jose 26

2 Desenvolvedor Maria 25

3 Testador Fabiana 26

4 Desenvolvedor Rafael 30

5 Analista Denise 35

6 Analista Jose 40

select distinct cargo from empregado

select distinct cargo, nome from empregado

(8)

O PERADORES R ELACIONAIS

 BETWEEN – Utilizado para especificar um intervalo de valores.

 LIKE – Utilizado na comparação de um modelo e para especificar registros de um banco de dados.

"Like" + extensão % significa buscar todos resultados com o mesmo início da extensão.

 IN - Utilizado para verificar se o valor procurado

está dentro de uma lista. Ex.: valor IN (1,2,3,4).

(9)

O PERADOR BETWEEN

 O operador BETWEEN serve para indicar um determinado intervalo de valores dentro de uma query.

SELECT *

FROM FUNCIONARIOS

WHERE CODIGO >= 8 AND CODIGO <= 9 *EQUIVALENTES

SELECT *

FROM FUNCIONARIOS

WHERE CODIGO BETWEEN 8 AND 9;

(10)

O PERADOR IN

 O operador IN funciona como uma “sequência”de

“Or’s”.

 Ou seja, o operador IN retorna os registros onde a condição/campo que está sendo comparado seja igual a algum dos parâmetros.

SELECT * FROM FUNCIONARIOS

WHERE CODIGO IN (1,2,3)

(11)

NOT BETWEEN/ NOT ... IN

SELECT * FROM empregado WHERE idade NOT BETWEEN 20 AND 25;

SELECT * FROM empregado WHERE (idade NOT BETWEEN 20 AND 25) AND NOT id IN (1,2,3);

id cargo nome idade

1 Desenvolvedor Jose 26

2 Desenvolvedor Maria 25

3 Testador Fabiana 26

4 Desenvolvedor Rafael 30

5 Analista Denise 35

6 Analista Jose 40

(12)

O PERADOR LIKE

 Com este operador, podemos comparar cadeias de caracteres utilizando padrões de comparação

 'ABC%': Todas as cadeias que começam por 'ABC'.

Por exemplo, 'ABCD' e 'ABCABC' iriam satisfazer a condição

 '%XYZ': Todas as cadeias que terminam em 'XYZ'.

Por exemplo, 'WXYZ' e 'ZZXYZ' iriam satisfazer a condição.

 '%AN%': Todas as cadeias que contêm o padrão 'AN'

em qualquer local. Por exemplo, 'LOS ANGELES' e

'SAN FRANCISCO' iriam satisfazer a condição.

(13)

O PERADOR LIKE

SELECT "nome_coluna"

FROM "nome_tabela"

WHERE "nome_coluna" LIKE {PATTERN}

SELECT *

FROM Store_Information

WHERE store_name LIKE '%AN%'

(14)

C LÁUSULAS X O PERADORES

As cláusulas LIKE, IN, IS NULL podem ser misturadas aos operadores AND, OR e NOT nas equações de junção (relacionamento entre tabelas).

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 Departamento.Nome

FROM Departamento, Projeto

WHERE Projeto.Local IN (‘RJ’, ‘SP’) AND Projeto.Numero > 99

AND Projeto.Num_Dep = Departamento.Codigo

ORDER BY Departamento.Nome

(15)

C LÁUSULAS X O PERADORES

 E como ficaria?

Listar os departamentos que têm projetos que o nome comece com software ou termine hardware e localizados em RJ ou SP ordenados por nome de departamento.

SELECT Departamento.Nome

FROM Departamento, Projeto

WHERE Projeto.Local IN (‘RJ’, ‘SP’)

AND Projeto.Nome like ‘software%’

OR Projeto.Nome like ‘%hardware’

AND Projeto.Num_Dep = Departamento.Codigo

ORDER BY Departamento.Nome

(16)

C ONSULTAS ENCADEADAS

O resultado de uma consulta é utilizado por outra consulta, de forma encadeada e no mesmo comando SQL

Como ficaria?

Listar os departamentos que tenham qualquer projeto no RJ.

SELECT Departamento.Nome

FROM Departamento, Projeto WHERE Projeto.Local = RJ

AND Projeto.Num_Dep = Departamento.Codigo

OU

SELECT Departamento.Nome

FROM Departamento

WHERE Departamento.Codigo IN (

Select Projeto.Num_Dep

FROM Projeto

WHERE Projeto.Local = ‘RJ’

)

(17)

F UNÇÕES DE CONVERSÃO

 Converter maiúsculas em minúsculas para strings de caractere

 LOWER (‘SQL Course’)

Resultado: sql course

 UPPER (‘SQL Course’)

Resultado: SQL COURSE

 Exemplo:

 select cliente, compra from ComprasDoMes where

UPPER (cliente) = UPPER ('maria')

(18)

F UNÇÕES DE MANIPULAÇÃO

 SUBSTR (‘String’, 1, 3)

 Resultado: Str

 LENGTH (‘String’)

 Resultado: 6

 Exemplos:

select LENGTH(cliente), cliente, compra from

ComprasDoMes WHERE SUBSTR(cliente,1,2) = 'Ma’

select LENGTH(cliente), cliente, compra from ComprasDoMes

WHERE UPPER(SUBSTR(cliente,1,2)) = UPPER ('ma‘)

(19)

F UNÇÕES NUMÉRICAS

 ROUND – arredonda valor

 ROUND (45.926,2) -> 45.93

 TRUNC – trunca o valor

 TRUNC (45.926,2) -> 45.92

 Exemplos:

 select ROUND (compra), cliente from ComprasDoMes

 select TRUNC (compra), cliente from ComprasDoMes

(20)

DML - D ATA M ANIPULATION

L ANGUAGE

 Inserções

• Remoções

(21)

DML - D ATA M ANIPULATION

L ANGUAGE

 Atualizações

Referências

Documentos relacionados

Chora Peito Chora Joao Bosco e Vinicius 000 / 001.. Chão De Giz Camila e

Devido a importância da HPIE para o cavalo atleta e as dificuldades naturais para o diagnóstico da HPIE, que compromete não só a saúde mas também a performance dos atletas,

CHROUSOS, 2002, com menor atuação em infecções crônicas pela Burkholderia mallei, concluindose que o período do dia para a coleta de material não interfere na resposta sorológica

Crescimento em área basal m2 ha-1 dos fustes das espécies lenhosas adultas levantadas em área de caatinga, entre os anos de 2011 e 2013, Floresta- PE.. Em que: Bf = Área basal

Jayme Leão, 63 anos, nasceu em Recife, mudou-se para o Rio de Janeiro ainda criança e, passados vinte e cinco anos, chegou a São Paulo, onde permanece até hoje.. Não

O enfermeiro, como integrante da equipe multidisciplinar em saúde, possui respaldo ético legal e técnico cientifico para atuar junto ao paciente portador de feridas, da avaliação

2 - OBJETIVOS O objetivo geral deste trabalho é avaliar o tratamento biológico anaeróbio de substrato sintético contendo feno!, sob condições mesofilicas, em um Reator

São por demais conhecidas as dificuldades de se incorporar a Amazônia à dinâmica de desenvolvimento nacional, ora por culpa do modelo estabelecido, ora pela falta de tecnologia ou