#03
Banco de Dados II
2015.2 Gustavo Sávio <gsoprofessor@gmail.com> 1
Funções da SQL
SELECT <tuplas> FROM <tabela> LIMIT <n>
SELECT <tuplas> FROM <tabela> LIMIT <n> OFFSET <m>
- A clausula LIMIT limita a quantidade de
registros (n) que serão retornados na consulta.
- A clausula OFFSET pula uma quantidade de
registros (n) antes que os mesmos sejam retornados
na consulta.
2
#CLAUSULAS LIMIT E OFFSET
Funções da SQL
Exibir o código, nome e o telefone dos três primeiros
clientes cadastrados na empresa.
SELECT codigo, nome, fone FROM cliente LIMIT 3;
Resultado:
codigo | nome | fone
--------+-----------------------+-----------
1 | Maria Helena Ferreira | 3225-6987
2 | Joao Paulo Correia | 3245-8999
3 | Larissa Maia | 3227-9622
3
#CLAUSULAS LIMIT E OFFSET
Funções da SQL
Exibir o código, nome e o telefone dos 2 primeiros
clientes cadastrados na empresa ignorando os 3
primeiros.
SELECT codigo, nome, fone FROM cliente LIMIT 2 OFFSET
3;
Resultado:
codigo | nome | fone
--------+----------------+-----------
4 | Marcos Andrade | 3338-2100
5 | LT Comercio | 3256-9981
4
#CLAUSULAS LIMIT E OFFSET
Funções da SQL
SELECT DISTINCT <TUPLAS> FROM <TABELA>
A clausula DISTINCT elimina as linhas duplicadas que
serão retornadas na consulta.
Exibir o nome de todos os clientes que já fizeram
pedido na empresa.
SELECT DISTINCT c.nome FROM Pedido p INNER JOIN
Cliente c ON p.cliente = c.codigo
5
#CLAUSULAS DISTINCT E DISTINCT ON
Funções da SQL Resultado sem DISTINCT:
nome
-----------------------
Joao Paulo Correia
LT Comercio
JR Representacoes
Larissa Maia
Maria Helena Ferreira
Marcos Andrade
Maria Helena Ferreira
JR Representacoes
Maria Helena Ferreira
Maria Helena Ferreira
JR Representacoes
Maria Helena Ferreira
Marcos Andrade
Marcos Andrade
JR Representacoes
Maria Helena Ferreira
JR Representacoes
Joao Paulo Correia
JR Representacoes
LT Comercio
Larissa Maia
Larissa Maia
Maria Helena Ferreira
JR Representacoes
Marcos Andrade
(25 rows)
6
#CLAUSULAS DISTINCT E DISTINCT ON
Resultado:
nome
-----------------------
Joao Paulo Correia
Maria Helena Ferreira
Larissa Maia
LT Comercio
JR Representacoes
Marcos Andrade
(6 rows)
Funções da SQL
A clausula DISTINCT pode ser usada como parte do
argumento, para eliminar as linhas repetidas,
antes da aplicação das funções de agregação.
Exibir a quantidade de clientes que fizeram
compras.
SELECT COUNT (DISTINCT c.nome) FROM Pedido AS P
INNER JOIN Cliente AS c ON p.cliente = c.codigo
Resultado: 6
Sem DISTINCT: 25
7
#CLAUSULAS DISTINCT E DISTINCT ON
Funções da SQL
DISTINCT ON (expressão) preserva apenas a primeira
linha de cada conjunto de linhas onde as
expressões fornecidas forem iguais.
8
#CLAUSULAS DISTINCT E DISTINCT ON
Funções da SQLSELECT DISTINCT c.nome, p.cliente, p.vendedor FROM
Pedido AS P INNER JOIN Cliente AS c ON p.cliente =
c.codigo order by c.nome, p.cliente;
nome | cliente | vendedor
-----------------------+---------+----------
Joao Paulo Correia | 2 | 1
Joao Paulo Correia | 2 | 3
JR Representacoes | 6 | 2
JR Representacoes | 6 | 3
JR Representacoes | 6 | 4
Larissa Maia | 3 | 2
Larissa Maia | 3 | 3
LT Comercio | 5 | 1
Marcos Andrade | 4 | 1
Marcos Andrade | 4 | 2
Marcos Andrade | 4 | 3
Maria Helena Ferreira | 1 | 2
Maria Helena Ferreira | 1 | 3
Maria Helena Ferreira | 1 | 4
(14 rows)
9
#CLAUSULAS DISTINCT E DISTINCT ON
Funções da SQL
SELECT DISTINCT ON(c.nome) c.nome, p.cliente,
p.vendedor FROM Pedido AS p INNER JOIN Cliente AS
c ON p.cliente = c.codigo order by c.nome,
p.cliente;
nome | cliente | vendedor
-----------------------+---------+----------
Joao Paulo Correia | 2 | 3
JR Representacoes | 6 | 4
Larissa Maia | 3 | 3
LT Comercio | 5 | 1
Marcos Andrade | 4 | 1
Maria Helena Ferreira | 1 | 4
(6 rows)
10
#CLAUSULAS DISTINCT E DISTINCT ON
Funções da SQL
Sintaxe:
SELECT <lista de colunas>
FROM <tabela(s)>
ORDER BY <coluna> [ASC] [DESC]
– O default é a ordenação ascendente (ASC).
11
#ORDENANDO RESULTADOS
Funções da SQLExibir código, nome e telefone de todos os clientes, em
ordem alfabética (nome do cliente).
SELECT codigo, nome, fone
FROM Cliente
ORDER BY nome
codigo | nome | fone
--------+-----------------------+-----------
2 | Joao Paulo Correia | 3245-8999
6 | JR Representacoes | 5841-9871
3 | Larissa Maia | 3227-9622
5 | LT Comercio | 3256-9981
4 | Marcos Andrade | 3338-2100
1 | Maria Helena Ferreira | 3225-6987
(6 rows)
12
#ORDENANDO RESULTADOS
Funções da SQL
Exibir código, nome, estado civil e data de nascimento de todos
os funcionários. Ordene o resultado do funcionário mais novo
para o mais velho.
SELECT codigo, nome, estCivil, dataNasc
FROM Funcionario
ORDER BY dataNasc DESC
codigo | nome | estcivil | datanasc
--------+--------------------+----------+---------------------
3 | Luiza Costa | C | 1980-04-04 00:00:00
1 | Joao da Silva | S | 1978-02-05 00:00:00
4 | Francisco da Silva | D | 1970-06-03 00:00:00
2 | Maria de Souza | C | 1970-01-01 00:00:00
5 | Carla Tavares | C | 1969-01-08 00:00:00
(5 rows)
13
#ORDENANDO RESULTADOS
Funções da SQLExibir código, nome e tipo de todos os produtos existentes
na empresa, ordenados pelo tipo em ordem ascendente e pelo
nome do produto em ordem descendente.
SELECT P.codigo, T.nome AS Tipo, P.nome AS Produto
FROM Produto P INNER JOIN Tipo T ON P.tipo = T.codigo
ORDER BY T.nome ASC, P.nome DESC;
codigo | tipo | produto
--------+--------------+---------------------
7 | Alimentacaoo | Pizza Sadia
1 | Cama | Toalhas Artex
3 | Decoracaoo | Abajur Alist
4 | Eletro | TV Plasma
5 | Eletro | Liquidificador
6 | Eletro | Computador Positivo
2 | Lacticinios | Iogurte Nestle
(7 rows)
14
#ORDENANDO RESULTADOS
SQL – Filtrando DadosSELECT <lista de colunas>
FROM <tabela(s)>
WHERE <coluna> operador <valor>
Operadores:
•
– Os operadores <, <=, >, >=, =, <> são usados para
testar valores de atributos.
– Os operadores lógicos AND, NOT, OR podem ser usados
para combinar condições.
#Filtrando Dados
15
SQL – Filtrando DadosObservações:
•
– Ao usarmos os operadores AND, OR e NOT numa mesma
expressão, temos a seguinte ordem de avaliação: NOT,
AND e OR.
– Para mudar a ordem de precedência dos operadores,
devemos usar os parênteses.
#Filtrando Dados
16
SQL – Filtrando DadosExibir o nome e a data de nascimento dos
funcionários (no formato brasileiro), que sejam
do sexo masculino e que nasceram a partir de
1950.
SELECT nome, to_char(dataNasc, 'dd/mm/yyyy') AS
dataNasc FROM Funcionario WHERE sexo = 'M'
AND dataNasc >= '01/01/1950';
#Filtrando Dados
17
SQL – Filtrando DadosQual outra maneira de fazer esta consulta, usando
funções de data/hora, para pegar o ano da data de
nascimento?
SELECT nome, to_char(dataNasc, 'dd/mm/yyyy') AS
dataNasc FROM Funcionario WHERE sexo = 'M'
AND DATE_PART('YEAR', dataNasc) >= 1950;
#Filtrando Dados
18
SELECT <lista de colunas>
FROM <tabela(s)>
WHERE <coluna> BETWEEN <expressão> AND <expressão>
Exibir nome e a quantidade em estoque dos
produtos, cujo estoque esteja entre 10 e 30
unidades, ordenados pelo nome do produto.
SELECT nome, quantest
FROM Produto
WHERE quantest BETWEEN 10 AND 30
ORDER BY nome
#Filtrando Dados com Intervalos
19
SELECT <lista de colunas>
FROM <tabela(s)>
WHERE <coluna> IN <lista>
Exibir nome e bairro dos funcionários que
residam em Manaíra ou Bessa, ordenados pelo
bairro.
SELECT nome, bairro
FROM Funcionario
WHERE bairro IN (‘Manaíra’, ‘Bessa’)
ORDER BY bairro
#Filtrando Dados com Listas
20
SELECT <lista de colunas>
FROM <tabela(s)>
WHERE <coluna> IS [NOT] NULL
– NULL: valores nulos, ou seja, não preenchidos (IS
NULL)
– NOT: opcional (p/ selecionar os valores “não nulos” - IS
NOT NULL)
#Filtrando Dados com Valores Nulos
21
Exemplo: Exibir os dados dos funcionários que
não possuem email.
SELECT *
FROM Funcionario
WHERE email IS NULL
Exemplo: Exibir nome e email dos funcionários
que possuem email.
SELECT nome, email
FROM Funcionario
WHERE email IS NOT NULL
#Filtrando Dados com Valores Nulos
22
Você acha que os funcionários com email nulo são
retornados na consulta abaixo?
SELECT nome, email
FROM Funcionario
WHERE email <> ‘franc@uol.com.br’
Qual seria a solução para que a consulta acima
também apresente estes funcionários (email =
NULL)?
SELECT nome, email
FROM Funcionario
WHERE (email <> ‘franc@uol.com.br’) OR (email IS NULL)
#Filtrando Dados com Valores Nulos
23
SELECT <lista de colunas>
FROM <tabela(s)>
WHERE <coluna> <LIKE ou ILIKE> <string>
Combinações:
– % (porcentagem): seqüência de caracteres.
– _ (sublinhado): combina com um único caractere
#Filtrando Dados com String
24
Exemplos:
– Como encontrar todos os nomes que tenham Silva em
qualquer lugar?
• Usar LIKE ‘%Silva%’
– Como encontrar todos os nomes que começam por
“J”seguido de um caractere qualquer e depois “a”?
• Usar LIKE 'J_a%';
#Filtrando Dados com String
25
SELECT <lista de colunas>
FROM <tabela(s)>
WHERE <coluna> SIMILAR TO <string>
Combinações:
– | denota ou.
– * denota a repetição de um campo: 0 ou mais vezes.
– * denota a repetição de um campo: 1 ou mais vezes.
– ? denota a repetição de um campo: 0 ou uma vez.
– {m} denota a repetição de um campo: exatamente m
vezes.
– {m,} denota a repetição de um campo: m ou mais
vezes.
#Filtrando Dados com String
26
Combinações:
– {m, n} denota a repetição de um campo: ao menos m e
não mais que n.
– () denota um grupo de itens.
– [] denota uma classe de caracteres (apenas para
expressão regular POSIX)
#Filtrando Dados com String
27
POSIX Regular Expressions
– ~ verifica a igualdade entre os campos (considera
maiúsculo de minúsculo).
– ~* verifica a igualdade entre os campos (não
considera maiúsculo de minúsculo).
– !~ verifica a não igualdade entre os campos
considera maiúsculo de minúsculo).
– !~* verifica a igualdade entre os campos (não
considera maiúsculo de minúsculo).
#Filtrando Dados com String
28
Exemplos:
– Como encontrar todos os nomes que começam com J ou M?
• Usar SIMILAR TO ‘[J|M]%';
– Como encontrar todos os nomes que começam com J até M?
• Usar SIMILAR TO '[J-M]%';
– Como encontrar todos os nomes que não começam com J e
M?
• Usar SIMILAR TO ‘[^JM]%’
#Filtrando Dados com String
29
Implementar as consultas da lista 02
30

Banco II - PostgreSQL - Filtros

  • 1.
    #03 Banco de DadosII 2015.2 Gustavo Sávio <gsoprofessor@gmail.com> 1
  • 2.
    Funções da SQL SELECT<tuplas> FROM <tabela> LIMIT <n> SELECT <tuplas> FROM <tabela> LIMIT <n> OFFSET <m> - A clausula LIMIT limita a quantidade de registros (n) que serão retornados na consulta. - A clausula OFFSET pula uma quantidade de registros (n) antes que os mesmos sejam retornados na consulta. 2 #CLAUSULAS LIMIT E OFFSET
  • 3.
    Funções da SQL Exibiro código, nome e o telefone dos três primeiros clientes cadastrados na empresa. SELECT codigo, nome, fone FROM cliente LIMIT 3; Resultado: codigo | nome | fone --------+-----------------------+----------- 1 | Maria Helena Ferreira | 3225-6987 2 | Joao Paulo Correia | 3245-8999 3 | Larissa Maia | 3227-9622 3 #CLAUSULAS LIMIT E OFFSET
  • 4.
    Funções da SQL Exibiro código, nome e o telefone dos 2 primeiros clientes cadastrados na empresa ignorando os 3 primeiros. SELECT codigo, nome, fone FROM cliente LIMIT 2 OFFSET 3; Resultado: codigo | nome | fone --------+----------------+----------- 4 | Marcos Andrade | 3338-2100 5 | LT Comercio | 3256-9981 4 #CLAUSULAS LIMIT E OFFSET
  • 5.
    Funções da SQL SELECTDISTINCT <TUPLAS> FROM <TABELA> A clausula DISTINCT elimina as linhas duplicadas que serão retornadas na consulta. Exibir o nome de todos os clientes que já fizeram pedido na empresa. SELECT DISTINCT c.nome FROM Pedido p INNER JOIN Cliente c ON p.cliente = c.codigo 5 #CLAUSULAS DISTINCT E DISTINCT ON
  • 6.
    Funções da SQLResultado sem DISTINCT: nome ----------------------- Joao Paulo Correia LT Comercio JR Representacoes Larissa Maia Maria Helena Ferreira Marcos Andrade Maria Helena Ferreira JR Representacoes Maria Helena Ferreira Maria Helena Ferreira JR Representacoes Maria Helena Ferreira Marcos Andrade Marcos Andrade JR Representacoes Maria Helena Ferreira JR Representacoes Joao Paulo Correia JR Representacoes LT Comercio Larissa Maia Larissa Maia Maria Helena Ferreira JR Representacoes Marcos Andrade (25 rows) 6 #CLAUSULAS DISTINCT E DISTINCT ON Resultado: nome ----------------------- Joao Paulo Correia Maria Helena Ferreira Larissa Maia LT Comercio JR Representacoes Marcos Andrade (6 rows)
  • 7.
    Funções da SQL Aclausula DISTINCT pode ser usada como parte do argumento, para eliminar as linhas repetidas, antes da aplicação das funções de agregação. Exibir a quantidade de clientes que fizeram compras. SELECT COUNT (DISTINCT c.nome) FROM Pedido AS P INNER JOIN Cliente AS c ON p.cliente = c.codigo Resultado: 6 Sem DISTINCT: 25 7 #CLAUSULAS DISTINCT E DISTINCT ON
  • 8.
    Funções da SQL DISTINCTON (expressão) preserva apenas a primeira linha de cada conjunto de linhas onde as expressões fornecidas forem iguais. 8 #CLAUSULAS DISTINCT E DISTINCT ON
  • 9.
    Funções da SQLSELECTDISTINCT c.nome, p.cliente, p.vendedor FROM Pedido AS P INNER JOIN Cliente AS c ON p.cliente = c.codigo order by c.nome, p.cliente; nome | cliente | vendedor -----------------------+---------+---------- Joao Paulo Correia | 2 | 1 Joao Paulo Correia | 2 | 3 JR Representacoes | 6 | 2 JR Representacoes | 6 | 3 JR Representacoes | 6 | 4 Larissa Maia | 3 | 2 Larissa Maia | 3 | 3 LT Comercio | 5 | 1 Marcos Andrade | 4 | 1 Marcos Andrade | 4 | 2 Marcos Andrade | 4 | 3 Maria Helena Ferreira | 1 | 2 Maria Helena Ferreira | 1 | 3 Maria Helena Ferreira | 1 | 4 (14 rows) 9 #CLAUSULAS DISTINCT E DISTINCT ON
  • 10.
    Funções da SQL SELECTDISTINCT ON(c.nome) c.nome, p.cliente, p.vendedor FROM Pedido AS p INNER JOIN Cliente AS c ON p.cliente = c.codigo order by c.nome, p.cliente; nome | cliente | vendedor -----------------------+---------+---------- Joao Paulo Correia | 2 | 3 JR Representacoes | 6 | 4 Larissa Maia | 3 | 3 LT Comercio | 5 | 1 Marcos Andrade | 4 | 1 Maria Helena Ferreira | 1 | 4 (6 rows) 10 #CLAUSULAS DISTINCT E DISTINCT ON
  • 11.
    Funções da SQL Sintaxe: SELECT<lista de colunas> FROM <tabela(s)> ORDER BY <coluna> [ASC] [DESC] – O default é a ordenação ascendente (ASC). 11 #ORDENANDO RESULTADOS
  • 12.
    Funções da SQLExibircódigo, nome e telefone de todos os clientes, em ordem alfabética (nome do cliente). SELECT codigo, nome, fone FROM Cliente ORDER BY nome codigo | nome | fone --------+-----------------------+----------- 2 | Joao Paulo Correia | 3245-8999 6 | JR Representacoes | 5841-9871 3 | Larissa Maia | 3227-9622 5 | LT Comercio | 3256-9981 4 | Marcos Andrade | 3338-2100 1 | Maria Helena Ferreira | 3225-6987 (6 rows) 12 #ORDENANDO RESULTADOS
  • 13.
    Funções da SQL Exibircódigo, nome, estado civil e data de nascimento de todos os funcionários. Ordene o resultado do funcionário mais novo para o mais velho. SELECT codigo, nome, estCivil, dataNasc FROM Funcionario ORDER BY dataNasc DESC codigo | nome | estcivil | datanasc --------+--------------------+----------+--------------------- 3 | Luiza Costa | C | 1980-04-04 00:00:00 1 | Joao da Silva | S | 1978-02-05 00:00:00 4 | Francisco da Silva | D | 1970-06-03 00:00:00 2 | Maria de Souza | C | 1970-01-01 00:00:00 5 | Carla Tavares | C | 1969-01-08 00:00:00 (5 rows) 13 #ORDENANDO RESULTADOS
  • 14.
    Funções da SQLExibircódigo, nome e tipo de todos os produtos existentes na empresa, ordenados pelo tipo em ordem ascendente e pelo nome do produto em ordem descendente. SELECT P.codigo, T.nome AS Tipo, P.nome AS Produto FROM Produto P INNER JOIN Tipo T ON P.tipo = T.codigo ORDER BY T.nome ASC, P.nome DESC; codigo | tipo | produto --------+--------------+--------------------- 7 | Alimentacaoo | Pizza Sadia 1 | Cama | Toalhas Artex 3 | Decoracaoo | Abajur Alist 4 | Eletro | TV Plasma 5 | Eletro | Liquidificador 6 | Eletro | Computador Positivo 2 | Lacticinios | Iogurte Nestle (7 rows) 14 #ORDENANDO RESULTADOS
  • 15.
    SQL – FiltrandoDadosSELECT <lista de colunas> FROM <tabela(s)> WHERE <coluna> operador <valor> Operadores: • – Os operadores <, <=, >, >=, =, <> são usados para testar valores de atributos. – Os operadores lógicos AND, NOT, OR podem ser usados para combinar condições. #Filtrando Dados 15
  • 16.
    SQL – FiltrandoDadosObservações: • – Ao usarmos os operadores AND, OR e NOT numa mesma expressão, temos a seguinte ordem de avaliação: NOT, AND e OR. – Para mudar a ordem de precedência dos operadores, devemos usar os parênteses. #Filtrando Dados 16
  • 17.
    SQL – FiltrandoDadosExibir o nome e a data de nascimento dos funcionários (no formato brasileiro), que sejam do sexo masculino e que nasceram a partir de 1950. SELECT nome, to_char(dataNasc, 'dd/mm/yyyy') AS dataNasc FROM Funcionario WHERE sexo = 'M' AND dataNasc >= '01/01/1950'; #Filtrando Dados 17
  • 18.
    SQL – FiltrandoDadosQual outra maneira de fazer esta consulta, usando funções de data/hora, para pegar o ano da data de nascimento? SELECT nome, to_char(dataNasc, 'dd/mm/yyyy') AS dataNasc FROM Funcionario WHERE sexo = 'M' AND DATE_PART('YEAR', dataNasc) >= 1950; #Filtrando Dados 18
  • 19.
    SELECT <lista decolunas> FROM <tabela(s)> WHERE <coluna> BETWEEN <expressão> AND <expressão> Exibir nome e a quantidade em estoque dos produtos, cujo estoque esteja entre 10 e 30 unidades, ordenados pelo nome do produto. SELECT nome, quantest FROM Produto WHERE quantest BETWEEN 10 AND 30 ORDER BY nome #Filtrando Dados com Intervalos 19
  • 20.
    SELECT <lista decolunas> FROM <tabela(s)> WHERE <coluna> IN <lista> Exibir nome e bairro dos funcionários que residam em Manaíra ou Bessa, ordenados pelo bairro. SELECT nome, bairro FROM Funcionario WHERE bairro IN (‘Manaíra’, ‘Bessa’) ORDER BY bairro #Filtrando Dados com Listas 20
  • 21.
    SELECT <lista decolunas> FROM <tabela(s)> WHERE <coluna> IS [NOT] NULL – NULL: valores nulos, ou seja, não preenchidos (IS NULL) – NOT: opcional (p/ selecionar os valores “não nulos” - IS NOT NULL) #Filtrando Dados com Valores Nulos 21
  • 22.
    Exemplo: Exibir osdados dos funcionários que não possuem email. SELECT * FROM Funcionario WHERE email IS NULL Exemplo: Exibir nome e email dos funcionários que possuem email. SELECT nome, email FROM Funcionario WHERE email IS NOT NULL #Filtrando Dados com Valores Nulos 22
  • 23.
    Você acha queos funcionários com email nulo são retornados na consulta abaixo? SELECT nome, email FROM Funcionario WHERE email <> ‘franc@uol.com.br’ Qual seria a solução para que a consulta acima também apresente estes funcionários (email = NULL)? SELECT nome, email FROM Funcionario WHERE (email <> ‘franc@uol.com.br’) OR (email IS NULL) #Filtrando Dados com Valores Nulos 23
  • 24.
    SELECT <lista decolunas> FROM <tabela(s)> WHERE <coluna> <LIKE ou ILIKE> <string> Combinações: – % (porcentagem): seqüência de caracteres. – _ (sublinhado): combina com um único caractere #Filtrando Dados com String 24
  • 25.
    Exemplos: – Como encontrartodos os nomes que tenham Silva em qualquer lugar? • Usar LIKE ‘%Silva%’ – Como encontrar todos os nomes que começam por “J”seguido de um caractere qualquer e depois “a”? • Usar LIKE 'J_a%'; #Filtrando Dados com String 25
  • 26.
    SELECT <lista decolunas> FROM <tabela(s)> WHERE <coluna> SIMILAR TO <string> Combinações: – | denota ou. – * denota a repetição de um campo: 0 ou mais vezes. – * denota a repetição de um campo: 1 ou mais vezes. – ? denota a repetição de um campo: 0 ou uma vez. – {m} denota a repetição de um campo: exatamente m vezes. – {m,} denota a repetição de um campo: m ou mais vezes. #Filtrando Dados com String 26
  • 27.
    Combinações: – {m, n}denota a repetição de um campo: ao menos m e não mais que n. – () denota um grupo de itens. – [] denota uma classe de caracteres (apenas para expressão regular POSIX) #Filtrando Dados com String 27
  • 28.
    POSIX Regular Expressions –~ verifica a igualdade entre os campos (considera maiúsculo de minúsculo). – ~* verifica a igualdade entre os campos (não considera maiúsculo de minúsculo). – !~ verifica a não igualdade entre os campos considera maiúsculo de minúsculo). – !~* verifica a igualdade entre os campos (não considera maiúsculo de minúsculo). #Filtrando Dados com String 28
  • 29.
    Exemplos: – Como encontrartodos os nomes que começam com J ou M? • Usar SIMILAR TO ‘[J|M]%'; – Como encontrar todos os nomes que começam com J até M? • Usar SIMILAR TO '[J-M]%'; – Como encontrar todos os nomes que não começam com J e M? • Usar SIMILAR TO ‘[^JM]%’ #Filtrando Dados com String 29
  • 30.