Aula avaliativa
Disciplina: Banco de Dados Tema: Linguagem SQL
-SELECT
PROFESSOR: DANILO MONTEIRO
EMAIL: [email protected]
O que foi visto na aula passada ?
Instruções DDL (Data Definition Language)
Create
CREATE TABLE enfeites ( id INT, nome TEXT, cor VARCHAR(20), tamanho INT, valor FLOAT, PRIMARY KEY (id)) ;
Alter
ALTER TABLE enfeites ADD estado TEXT;
Drop
DROP TABLE enfeites;
Rename
ALTER TABLE nomeErrado RENAME TO nomeCorreto;
MYSQL -> RENAME TABLE nomeErrado TO nomeCorreto;
Truncate
TRUCATE TABLE enfeites;
Not-Null
CREATE TABLE enfeites ( id INT, nome TEXT, cor VARCHAR(20), tamanho INT NOT NULL, valor FLOAT, PRIMARY KEY (id) ) ; ALTER TABLE enfeites ALTER COLUMN tamanho SET NOT NULL;
ALTER TABLE distributors ALTER COLUMN street DROP NOT NULL;
UNIQUE
CREATE TABLE enfeites ( id INT, numero INT UNIQUE, cor VARCHAR(20), tamanho INT NOT NULL, valor FLOAT, PRIMARY KEY (id) ) ; ALTER TABLE enfeites ADD CONSTRAINT tamanho UNIQUE;
ALTER TABLE enfeites DROP CONSTRAINT tamanho;
PRIMARY KEY (not null e UNIQUE)
CREATE TABLE enfeites ( id INT, numero INT UNIQUE, cor VARCHAR(20), tamanho INT NOT NULL, valor FLOAT, PRIMARY KEY (id) ) ;
SERIAL (auto incrementing four-byte integer)
CREATE TABLE enfeites ( id SERIAL, numero INT UNIQUE, cor VARCHAR(20), tamanho INT NOT NULL, valor FLOAT, PRIMARY KEY (id) ) ; Mysql (..., id INT AUTO_INCREMENT, …)
Roteiro
Comando SELECT
Para que serve?
Estrutura básica
Instrução WHERE
Operadores
Cláusula - ORDERBY
Select – Para que serve?
Responsável por selecionar;
Utilização
Sudarshan, Silberschatz e Korth (2012)
id nome cor tamanho Valor
1 árvore verde 5 3.50
2 Bola sem detalhes vermelho 2 2.00
3 Bola com detalhes vermelho 2 3.00
4 Bola leão marinho transparente 4 6.00
5 Bola com detalhes vermelho 2 3.00
6 Bola de ouro dourada 2 3.00
7 Papai noel branco 4 10.00
Select – Estrutura básica
SELECT coluna1, coluna2, ...FROM nome da tabela;
SELECT * FROM nome_tabela;
SELECT nome, cor FROM enfeites;
SELECT * FROM enfeites;
|
E se eu quiser somente itens vermelhos?
id nome cor tamanho Valor
1 árvore verde 5 3.50
2 Bola sem detalhes vermelho 2 2.00
3 Bola com detalhes vermelho 2 3.00
4 Bola leão marinho transparente 4 6.00
5 Bola com detalhes vermelho 2 3.00
6 Bola de ouro dourado 2 3.00
7 Papai noel branco 4 10.00
Tabela enfeites
Select – WHERE
SELECT coluna1, coluna2, ...FROM tabela WHERE condição;
|
SELECT * FROM enfeites WHERE cor=‘vermelho’;id nome cor tamanho Valor
1 árvore verde 5 3.50
2 Bola sem detalhes vermelho 2 2.00
3 Bola com detalhes vermelho 2 3.00
4 Bola leão marinho transparente 4 6.00
5 Bola com detalhes vermelho 2 3.00
6 Bola de ouro dourada 2 3.00
7 Papai noel branco 4 10.00
Tabela enfeites
Select- OPERADORES
Operador de igual (=)
SELECT cor FROM enfeites WHERE nome = ‘Papai noel’;
Operador de diferente (<>)
SELECT tamanho FROM enfeites WHERE cor <> ‘verde’;
Operador de Maior (>) ou menor (<)
SELECT * FROM enfeites WHERE valor < 3;
Operador de maior igual (>=) ou menor igual (<=)
SELECT id FROM enfeites WHERE valor >= 2;
Operador Like (%)
SELECT * FROM enfeites WHERE cor LIKE ‘ver%’;
SELECT * FROM enfeites WHERE cor LIKE ‘%e ‘;
SELECT * FROM enfeites WHERE cor LIKE ‘%o%’;
Elmasri e Navathe (2015)
id nome cor tamanho Valor
1 árvore verde 5 3.50
2 Bola sem detalhes vermelho 2 2.00
3 Bola com detalhes vermelho 2 3.00
4 Bola leão marinho transparente 4 6.00
5 Bola com detalhes vermelho 2 3.00
6 Bola de ouro dourada 2 3.00
7 Papai noel branco 4 10.00
Tabela enfeites
Select- Orderby
SELECT coluna1, coluna2, ... FROM nome_tabela ORDER BY column... ASC|DESC;
SELECT *FROM enfeites ORDER BY tamanho DESC;
SELECT * FROM enfeites WHERE cor=’vermelho’
ORDER BY id DESC;
|
id nome cor tamanho Valor
1 árvore verde 7 3.50
2 Bola sem detalhes vermelho 3 2.00
3 Bola com detalhes vermelho 2 3.00
4 Bola leão marinho transparente 4 6.00
5 Bola com detalhes vermelho 2 3.00
6 Bola de ouro dourada 2 3.00
7 Papai noel branco 5 10.00
Tabela enfeites
ASC - menor para o maior (1,2,3,4,20) DESC - maior para o menor (20,4,3,2,1)
BETWEEN
SELECT nomedoscampos FROM nomedatabela WHERE campo BETWEEN x AND y;
SELECT nome FROM enfeites WHERE tamanho BETWEEN 3 AND 7;
id nome cor tamanho Valor
1 árvore verde 7 3.50
2 Bola sem detalhes vermelho 3 2.00
3 Bola com detalhes vermelho 2 3.00
4 Bola leão marinho transparente 4 6.00
5 Bola com detalhes vermelho 2 3.00
6 Bola de ouro dourada 2 3.00
7 Papai noel branco 5 10.00
Tabela enfeites
LIMIT
SELECT nomedoscampos FROM nomedatabela LIMIT N;
SELECT nome FROM enfeites LIMIT 3;
SELECT nome FROM enfeites ORDER BY valor DESC LIMIT 2;
id nome cor tamanho valor
1 árvore verde 7 3.50
2 Bola sem detalhes vermelho 3 2.00
3 Bola com detalhes vermelho 2 3.00
4 Bola leão marinho transparente 4 6.00
5 Bola com detalhes vermelho 2 3.00
6 Bola de ouro dourada 2 3.00
7 Papai noel branco 5 10.00
Tabela enfeites
Agora, vocês:
Vamos fazer uma prática:
-Uma pessoa sugere uma consulta;
id nome cor tamanho Valor
1 árvore verde 5 3.50
2 Bola sem detalhes vermelho 2 2.00
3 Bola com detalhes vermelho 2 3.00
4 Bola leão marinho transparente 4 6.00
5 Bola com detalhes vermelho 2 3.00
6 Bola de ouro dourada 2 3.00
7 Papai noel branco 4 10.00
Tabela enfeites
Dúvidas?
Exercício - Sala
Qual das consultas a seguir deve ser escolhida para selecionar o nome e o número de títulos dos times com mais de 21 estaduais em Pernambuco, apresentando os resultados do maior para o
menor?
A)SELECT * FROM campeonato WHERE *<21;
B) SELECT *FROM campeonatos WHERE titulos>21;
C) SELECT nome, titulos FROM campeonatos WHERE titulos >= 21 ORDERBY ASC;
D) SELECT nome, titulos FROM campeonatos WHERE titulos>21 ORDERBY DESC;
Nome Titulos Vice
Sport 41 23
Náutico 21 30
Santa Cruz 29 32
Porto 0 2
Salgueiro 0 2
Central 0 1
Tabela Campeonatos
Exercício - Casa
A partir da tabela anterior, faça o que se pede:
A)desenvolva uma consulta que retorne somente o nome dos times com nenhum titulo;
B) desenvolva uma consulta que retorne todos valores das colunas dos times com mais de 3 vices;
C) desenvolva uma consulta que retorne os títulos em ordem crescente dos times que começam com a string “sa”;
D) Crie uma consulta que não foi mencionada anteriormente;
Leitura recomendada
Visão inicial :
https://www.devmedia.com.br/principais-instrucoes-sql/5748 Visão aprofundada:
Parte 2, capitulo 3 do livro de Elmasri and S. Navathe – Fundamentos de Sistema de Banco de Dados
Visão Mais aprofundada ainda!
M Jackson .Thirty years (and more) of databases .Revista Information and Software Technology, volume = "41", páginas =969-978, 1999.
Próxima aula
Prova
Referências
C. J. Date. Introdução a Sistema de Banco de Dados. Editora Campus, 8ª. Edição. 2004
S. Sudarshan and A. Silberschatz and F. Henry Korth. Sistemas de Banco de Dados. 6ª. Edição.
Editora Makron Books, 2012
E. R. Elmasri and S. Navathe and. Fundamentos de Sistema de Banco de Dados. Editora Addison Wesley 7ª. Edição, Pub, 2015.