Prévia do material em texto
Curso de Ciência da Computação
Disciplina:
Banco de Dados
Álgebra Relacional
(Linguagem SQL – funções básicas)
Prof. Dr. Robson Ferreira
Subdivisão da Linguagem SQL
A
q
u
i
Álgebra Relacional
Linguagem SQL – funções básicas
Modelo de Entidade e Relacionamento
do Banco de Dados Biblioteca
Álgebra Relacional
Linguagem SQL – funções básicas
Fonte: baseado em CARDOSO, Virginia e CARDOSO, Giselle.
Linguagem SQL: fundamentos e prática – São Paulo: Saraiva, 2013.
M
o
d
el
o
d
e
D
a
d
os
R
e
la
ci
o
na
l
L
iv
ra
ri
a
Editora
AutorB
an
co
d
e
D
a
do
s
–
Li
vr
a
ria
C
a
rg
a
in
ic
ia
l d
e
d
ad
o
s
Livro Gênero
Volume
B
an
co
d
e
D
a
do
s
–
Li
vr
a
ria
C
a
rg
a
in
ic
ia
l d
e
d
ad
o
s
Funcionário
UsuárioLivro-Autor
B
an
co
d
e
D
a
do
s
–
Li
vr
a
ria
C
a
rg
a
in
ic
ia
l d
e
d
ad
o
s
InserirInserir
AtualizarAtualizar
ApagarApagar
ConsultarConsultar
Operações
com os
dados
Álgebra Relacional
Linguagem SQL – funções básicas
Operações básicas de Álgebra Relacional
Restrição Projeção União Intersecção
Diferença
a x a x
b y a y
c b x
b y
c x
c y
Produto
a1 b1 b1 c1 a1 b1 c1
a2 b1 b2 c2 a2 b1 c1
a3 b2 b3 c3 a3 b2 c2
Junção
Fonte: DATE, C. J. An Introduction to database systems, 7th ed. Addison Wesley Longman, Inc. 2000, p. 151.
Álgebra Relacional
Linguagem SQL – funções básicas
Sintaxe de Comando SELECT
SELECT [ALL | DISTINCT | DISTINCTROW ]
col_name | expr [, col_name | expr]
FROM table_references
[WHERE where_condition]
[GROUP BY {col_name | expr}
[HAVING where_condition]
[ORDER BY {col_name | expr} [ASC | DESC]
https://dev.mysql.com/doc/refman/8.0/en/select.html
Álgebra Relacional
Linguagem SQL – funções básicas
Exemplos de comandos SELECT
SELECT * FROM funcionario;
funcionário
Álgebra Relacional
Linguagem SQL – funções básicas
Exemplos de comandos SELECT
SELECT num_livro, titulo AS Livro,
ano_publicacao AS Ano_publicação,
CPF_usuarioReservar
FROM livro;
livro
Álgebra Relacional
Linguagem SQL – funções básicas
Exemplos de comandos SELECT com a cláusula LIMIT
Uma consulta pode resultar centenas ou até mesmo
milhares de linhas. Pode-se limitar o número de
linhas de resultado
livro
SELECT num_livro, titulo AS Livro,
ano_publicacao AS Ano_publicação,
CPF_usuarioReservar
FROM livro
LIMIT 4;
Álgebra Relacional
Linguagem SQL – funções básicas
SELECT DISTINCT
Cidade AS CidadeFuncionários
FROM funcionario;
Apresentar uma listagem com as cidades onde
moram os funcionários.
SELECT
cidade AS CidadeFuncionários
FROM funcionario;
Exemplos de comandos SELECT com a cláusula DISTINCT
Álgebra Relacional
Linguagem SQL – funções básicas
Cidades onde moram os
funcionários.
Cidades distintas onde
moram os funcionários, ou
seja, sem repetições.
Exemplos de comandos SELECT com a cláusula ORDER BY
SELECT nome, cidade, salario
FROM funcionario
ORDER BY nome;
Apresentar uma listagem de funcionários
SELECT nome, cidade, salario
FROM funcionario
ORDER BY salario desc;
Ordem alfabética de nome Ordem decrescente de salário
Álgebra Relacional
Linguagem SQL – funções básicas
Principais
Operadores Aritméticos
Codificação Descrição
% ou MOD Módulo
* Multiplicação
+ Adição
- Subtração
/ Divisão
DIV Divisão inteira
https://dev.mysql.com/doc/refman/8.0/en/arithmetic-functions.html
https://dev.mysql.com/doc/refman/8.0/en/mathematical-functions.html
https://dev.mysql.com/doc/refman/8.0/en/function-reference.html
Codificação Descrição
BIN()
Retorna o valor em
binário.
CEILING() Arredondar para cima
FLOOR () Arredondar para baixo
HEX() Retorna o valor em Hexa
PI () Retorna o valor de PI
POW (x,y) Retorna x elevado a y
ROUND() Arredondamento
SQRT() Raiz quadrada
TRUNCATE()
Trunca o nº de casas
decimais
Principais
Funções Matemáticas
Álgebra Relacional
Linguagem SQL – funções básicas
SELECT CEIL(1.59);
>> 2
SELECT CEIL(-1.59);
>> -1
SELECT FLOOR(1.59);
>> 1
SELECT FLOOR(-1.59);
>> -2
SELECT POW(32,2);
>> 1024
SELECT SQRT(1024);
>> 32
SELECT HEX(10), HEX(11), HEX(12), HEX(13), HEX(14), HEX(15);
SELECT BIN(0), BIN(1), BIN(2), BIN(3), BIN(4), BIN(5), BIN(255);
Álgebra Relacional
Linguagem SQL – funções básicas
SELECT nome AS Nome, salario AS SalárioAtual,
(salario * 1.3) AS NovoSalário
FROM funcionario
ORDER BY nome;
Apresentar uma listagem de funcionários com seus
salários acrescidos de 30%.
funcionários
Exemplos de comandos SELECT com operador aritmético
Álgebra Relacional
Linguagem SQL – funções básicas
Exemplos de comandos SELECT com operador aritmético
SELECT nome AS Nome, salario AS SalárioAtual,
TRUNCATE ((salario * 1.3), 2) AS NovoSalário
FROM funcionário
ORDER BY nome;
Apresentar uma listagem de funcionários com seus
salários acrescidos de 30%.
SELECT nome AS Nome, salario AS SalárioAtual,
ROUND ((salario * 1.3), 2) AS NovoSalário
FROM funcionário
ORDER BY nome;
funcionários funcionários
https://dev.mysql.com/doc/refman/8.0/en/arithmetic-functions.html
https://dev.mysql.com/doc/refman/8.0/en/mathematical-functions.html
https://dev.mysql.com/doc/refman/8.0/en/function-reference.html
Álgebra Relacional
Linguagem SQL – funções básicas
https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html
Codificação Descrição
> Maior
>= Maior ou Igual
Ou != Não igual (diferente)
= Igual
[NOT] BETWEEN ... AND ... Verifica se um valor [não] esta entre um intervalo
[NOT] IN ()
Verifica se um valor [não] pertence a um
conjunto
[NOT] LIKE Verifica [não] padrões
STRCMP(string1, string2)
Compara duas strings
If string1 = string2, a função retorna 0
If string1 string2, a função retorna 1
Principais
Funções e Operadores de Comparação
https://dev.mysql.com/doc/refman/8.0/en/non-typed-operators.html
https://dev.mysql.com/doc/refman/8.0/en/string-functions.html
Álgebra Relacional
Linguagem SQL – funções básicas
SELECT nome AS Nome, salario AS Salário
FROM funcionario
WHERE salario > 1500;
Apresentar uma listagem de funcionários com
salário maior do que R$ 1.500,00.
funcionário
Exemplos de comandos SELECT com operador de comparação
Álgebra Relacional
Linguagem SQL – funções básicas
SELECT nome AS Nome, salario AS Salário
FROM funcionario
WHERE salario > 1500
ORDER BY nome;
funcionário
Apresentar uma listagem de funcionários com salário
menor que R$ 1.500,00 (em ordem alfabética crescente).
Exemplos de comandos SELECT com operador de comparação
Álgebra Relacional
Linguagem SQL – funções básicas
Exemplos de comandos SELECT com operador aritmético
SELECT nome AS Nome,
salario AS SalárioAtual, (salario * 1.3) AS NovoSalário
FROM funcionário
WHERE (salario * 1.3) > 1800.00
ORDER BY novosalário desc;
Apresentar uma listagem de funcionários cujos salários
acrescidos de 30% superem R$ 1.800,00. Mostrar em ordem de
salários decrescentes.
funcionário
Álgebra Relacional
Linguagem SQL – funções básicas
Exemplos de comandos SELECT com operador BETWEEN
A cláusula BETWEEN permite selecionar intervalos de dados,
que podem ser números, textos ou datas.
Recebe como parâmetro os intervalos da pesquisa.
Seleciona os livros publicados no intervalo de anos
SELECT num_livro, titulo, ano_publicação
FROM livro
WHERE ano_publicação
BETWEEN 1900 and 1999
ORDER BY ano_publicacao;
livro
Álgebra Relacional
Linguagem SQL – funções básicas
Apresentar uma listagem de livros com devoluções previstas
para o mês de agosto/2020.
Exemplos de comandos SELECT com operador BETWEEN
SELECT num_livro, num_volume,
dt_retirada, dt_prevista_devolucao
FROM volume
WHERE dt_prevista_devolucao BETWEEN
CAST('2020-08-01' AS DATE) AND
CAST('2020-08-31' AS DATE)
ORDER BY dt_prevista_devolucao;
volume
Álgebra Relacional
Linguagem SQL – funções básicas
SELECT num_livro, num_volume,
dt_retirada, dt_prevista_devolucao
FROM volume
WHERE dt_prevista_devolucao BETWEEN
'2020-08-01' AND '2020-08-31
ORDER BY dt_prevista_devolucao;Exemplos de comandos SELECT com operador IN
A cláusula IN retorna os valores contidos num conjunto,
substituindo várias condições do tipo OR, ou numa subquery.
SELECT num_livro, titulo, ano_publicacao,
qtde_volumes
FROM livro
WHERE ano_publicacao
IN (2007, 2011, 2010)
ORDER BY ano_publicacao;
SELECT num_livro, titulo, ano_publicacao,
qtde_volumes
FROM livro
WHERE ano_publicacao = 2007 OR
ano_publicacao = 2011 OR
ano_publicacao = 2010
ORDER BY ano_publicacao;
Álgebra Relacional
Linguagem SQL – funções básicas
(mesmo resultado)
Exemplos de comandos SELECT com operador LIKE
Operador LIKE Retorna todos os nomes que ...
WHERE nome LIKE 'a%' comecem com a letra “a”.
WHERE nome LIKE '%a' terminem com a letra “a”.
WHERE nome LIKE '%or%' possuem “or” em qualquer posição.
WHERE nome LIKE '_r%' possuem a letra “r” na segunda posição.
WHERE nome LIKE 'a_%'
comecem com a letra “a” e que seu tamanho seja no
mínimo de 2 caracteres.
WHERE nome LIKE 'a__%'
comecem com a letra “a” e que seu tamanho seja no
mínimo de 3 caracteres.
WHERE nome LIKE 'a%o' Comecem com a letra “a” e terminem com a letra “o”.
O operador LIKE é usado na cláusula WHERE para descobrir padrões
nas colunas, para isso o MySQL utiliza 2 caracteres curinga:
% (porcentagem): representa a ocorrência do 0 (zero), um ou
múltiplos caracteres;
_ (sublinhado): representa um caractere simples.
Álgebra Relacional
Linguagem SQL – funções básicas
Exemplos de comandos SELECT com operador BETWEEN ou LIKE
A cláusula BETWEEN permite selecionar intervalos de
dados, que podem ser números, textos ou datas. Recebe
como parâmetro os intervalos da pesquisa.
SELECT num_livro, titulo, ano_publicacao
FROM livro
WHERE ano_publicacao
BETWEEN 1900 AND 1999
ORDER BY ano_publicacao;
SELECT num_livro, titulo, ano_publicacao
FROM livro
WHERE ano_publicacao
LIKE '19__'
ORDER BY ano_publicacao;
(mesmo resultado)
Álgebra Relacional
Linguagem SQL – funções básicas
Exemplos de comandos SELECT com operador LIKE
SELECT cpf_funcionario, nome
FROM funcionario
WHERE nome LIKE 'a%'
ORDER BY nome;
Listar todos os funcionários cujos
nomes [NÃO] comecem com a letra “a”
SELECT cpf_funcionario, nome
FROM funcionario
WHERE nome NOT LIKE 'a%'
ORDER BY nome;
Álgebra Relacional
Linguagem SQL – funções básicas
Exemplos de comandos SELECT com operador LIKE
Listar todos os funcionários cujos
nomes completos [NÃO] têm a palavra “josé”
SELECT cpf_funcionario, nome
FROM funcionario
WHERE nome NOT LIKE '%josé%'
ORDER BY nome;
SELECT cpf_funcionario, nome
FROM funcionario
WHERE nome LIKE '%josé%'
ORDER BY nome;
Álgebra Relacional
Linguagem SQL – funções básicas
Às vezes, o padrão que pesquisamos contém o caractere curinga, por exemplo, “10%”
e “_20”. Nesse caso, deve-se usar a cláusula ESCAPE para especificar/mudar o
caractere de escape para que o MySQL interprete o caractere curinga como um
caractere literal. Se você não especificar o caractere de escape explicitamente, o
caractere de barra invertida “\” é o caractere de escape padrão.
Exemplos de comandos SELECT com operador LIKE
SELECT titulo FROM livro WHERE titulo LIKE '%s\_%';
SELECT titulo FROM livro WHERE titulo LIKE '%s$_%' ESCAPE '$';
Álgebra Relacional
Linguagem SQL – funções básicas
SELECT nome AS Nome, salario AS SalárioAtual,
STRCMP(CAST(salario AS char(9)), CAST(‘1520.00' AS char(9)))
FROM funcionário
ORDER BY salario desc;
Exemplos de comandos SELECT com operador STRCMP
Codificação Descrição
STRCMP(string1, string2)
Compara duas strings
If string1 = string2, a função retorna 0
If string1 string2, a função retorna 1
Álgebra Relacional
Linguagem SQL – funções básicas
Disciplina
Banco de Dados
Álgebra Relacional
(Linguagem SQL – funções básicas)
Obrigado
Prof. Dr. Robson Ferreira
Álgebra Relacional
Linguagem SQL – funções básicas