21
Gilberto B. Oliveira 1 Banco de Dados - II Consultas Básicas MySQL – Sakila 0.8

Banco de Dados - II · 2019. 5. 20. · Gilberto B. Oliveira 16 Operador Lógico AND Selecionar da tabela c name, title e da tabela f rental_rate de film como f junto com film_category

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Banco de Dados - II · 2019. 5. 20. · Gilberto B. Oliveira 16 Operador Lógico AND Selecionar da tabela c name, title e da tabela f rental_rate de film como f junto com film_category

Gilberto B. Oliveira 1

Banco de Dados - II

Consultas BásicasMySQL – Sakila 0.8

Page 2: Banco de Dados - II · 2019. 5. 20. · Gilberto B. Oliveira 16 Operador Lógico AND Selecionar da tabela c name, title e da tabela f rental_rate de film como f junto com film_category

Gilberto B. Oliveira 2

Comando SQL

SELECT * | <campo1>, …, <campoN>

FROM <tabela1>, …, <tabelaN>

[WHERE [NOT] <condição1> AND | OR [NOT] <condiçãoN>

GROUP BY <campo1>, …, <campoN>

ORDER BY <campo1>, …, <campoN>

HAVING FUNC(<campo1>) = <condição1> ...]

Page 3: Banco de Dados - II · 2019. 5. 20. · Gilberto B. Oliveira 16 Operador Lógico AND Selecionar da tabela c name, title e da tabela f rental_rate de film como f junto com film_category

Gilberto B. Oliveira 3

SELECT [*]todos os campos

Selecionar todos os campos de customer onde o campo customer_id seja menor que 5.

USE sakila;

SELECT *

FROM customer

WHERE customer_id < 50;

Page 4: Banco de Dados - II · 2019. 5. 20. · Gilberto B. Oliveira 16 Operador Lógico AND Selecionar da tabela c name, title e da tabela f rental_rate de film como f junto com film_category

Gilberto B. Oliveira 4

SELECT <campo>...informar campos específicos

Selecionar first_name, picture, username, e password de staff

SELECT first_name, picture, username, password

FROM staff;

Page 5: Banco de Dados - II · 2019. 5. 20. · Gilberto B. Oliveira 16 Operador Lógico AND Selecionar da tabela c name, title e da tabela f rental_rate de film como f junto com film_category

Gilberto B. Oliveira 5

SELECT[...] WHERE[...]filtrando linhas

Selecionar payment_id, rental_id, amount e payment_date de payment onde a payment_date é anterior ou igual a 31 de maio de 2005

SELECT payment_id, rental_id, amount, payment_date

FROM payment

WHERE payment_date <= '2005­05­31';

Page 6: Banco de Dados - II · 2019. 5. 20. · Gilberto B. Oliveira 16 Operador Lógico AND Selecionar da tabela c name, title e da tabela f rental_rate de film como f junto com film_category

Gilberto B. Oliveira 6

ALIASExemplo1

Selecionar da tabela s first_name e last_name, e da tabela a address de staff como s e address como a onde o campo address_id da tabela a é igual ao address_id da tabela s

SELECT s.first_name, s.last_name, a.address

FROM staff AS s, address AS a

WHERE a.address_id = s.address_id;

Page 7: Banco de Dados - II · 2019. 5. 20. · Gilberto B. Oliveira 16 Operador Lógico AND Selecionar da tabela c name, title e da tabela f rental_rate de film como f junto com film_category

Gilberto B. Oliveira 7

ALIASExemplo2

Selecionar da tabela f title, e da tabela l name de filme como f e language como l onde o campo language_id da tabela l é igual ao language_id da tabela f

SELECT f.title, l.name

FROM film AS f, language AS l

WHERE l.language_id = f.language_id;

Page 8: Banco de Dados - II · 2019. 5. 20. · Gilberto B. Oliveira 16 Operador Lógico AND Selecionar da tabela c name, title e da tabela f rental_rate de film como f junto com film_category

Gilberto B. Oliveira 8

[WHERE X = Y]igual a...

Selecionar name de category onde category_id seja igual a 7

SELECT name

FROM category

WHERE category_id = 7;

Page 9: Banco de Dados - II · 2019. 5. 20. · Gilberto B. Oliveira 16 Operador Lógico AND Selecionar da tabela c name, title e da tabela f rental_rate de film como f junto com film_category

Gilberto B. Oliveira 9

[WHERE X > Y]maior que...

Selecionar first_name e last_name de actor onde actor_id é maior que 190

SELECT first_name, last_name

FROM actor

WHERE actor_id > 190;

Page 10: Banco de Dados - II · 2019. 5. 20. · Gilberto B. Oliveira 16 Operador Lógico AND Selecionar da tabela c name, title e da tabela f rental_rate de film como f junto com film_category

Gilberto B. Oliveira 10

[WHERE X < Y]menor que...

Selecionar title, length e rating de film onde length é menor que 50

SELECT title, length, rating

FROM film

WHERE length < 50;

Page 11: Banco de Dados - II · 2019. 5. 20. · Gilberto B. Oliveira 16 Operador Lógico AND Selecionar da tabela c name, title e da tabela f rental_rate de film como f junto com film_category

Gilberto B. Oliveira 11

[WHERE X != Y]diferente de...

Selecionar o title e rating de film onde o rating seja diferente de ‘NC-17’ (proibido para menores de 18 anos)

SELECT title, rating

FROM film

WHERE rating <> 'NC­17';

Page 12: Banco de Dados - II · 2019. 5. 20. · Gilberto B. Oliveira 16 Operador Lógico AND Selecionar da tabela c name, title e da tabela f rental_rate de film como f junto com film_category

Gilberto B. Oliveira 12

[WHERE X >= Y]maior ou igual a...

Selecionar da tabela c first_name e da tabela p amount de customer como c junto com payment como p sendo da tabela c o customer_id igual ao customer_id da tabela p onde o amount da tabela p seja maior ou igual a 10.0

SELECT c.first_name, p.amount

FROM customer AS c INNER JOIN payment AS p

ON c.customer_id = p.customer_id

WHERE p.amount >= 10.0;

Page 13: Banco de Dados - II · 2019. 5. 20. · Gilberto B. Oliveira 16 Operador Lógico AND Selecionar da tabela c name, title e da tabela f rental_rate de film como f junto com film_category

Gilberto B. Oliveira 13

Filtrando Stringscaractere curinga %

Selecionar country da tabela co e city da tabela ci de country como co e city como ci sendo country_id da tabela co igual ao country_id da tabela ci onde o country da tabela co começa com as letra Br.

SELECT co.country, ci.city

FROM city AS ci INNER JOIN country AS co

ON co.country_id = ci.country_id

WHERE co.country LIKE 'BR%';

Page 14: Banco de Dados - II · 2019. 5. 20. · Gilberto B. Oliveira 16 Operador Lógico AND Selecionar da tabela c name, title e da tabela f rental_rate de film como f junto com film_category

Gilberto B. Oliveira 14

Filtrando Stringsum caractere _

Selecionar first_name e last_name de customer onde o first_name começa com Mari e tem mais “um único caractere qualquer”.SELECT first_name, last_name

FROM customer

WHERE first_name LIKE 'Mari_';

Page 15: Banco de Dados - II · 2019. 5. 20. · Gilberto B. Oliveira 16 Operador Lógico AND Selecionar da tabela c name, title e da tabela f rental_rate de film como f junto com film_category

Gilberto B. Oliveira 15

Operador LógicoOR

Selecionar name, address, ‘zip code’, phone, city e country de customer_list onde country é igual a 'JAPAN' ou country é igual a 'FRANCE'

SELECT name, address, 'zip code', phone, city, country

FROM customer_list

WHERE country LIKE 'JAPAN' OR country LIKE 'FRANCE';

Page 16: Banco de Dados - II · 2019. 5. 20. · Gilberto B. Oliveira 16 Operador Lógico AND Selecionar da tabela c name, title e da tabela f rental_rate de film como f junto com film_category

Gilberto B. Oliveira 16

Operador LógicoAND

Selecionar da tabela c name , title e da tabela f rental_rate de film como f junto com film_category como fc sendo o film_id de f igual ao film_id de fc junto com category como c sendo category_id de c igual a category_id de cf onde category de c é igual a 11 e rental_rate de f é menor ou igual a 2.00SELECT c.name, f.title, f.rental_rate

FROM film AS f INNER JOIN film_category AS fc

ON f.film_id = fc.film_id INNER JOIN category AS c

ON c.category_id = fc.category_id

WHERE c.category_id = 11 AND f.rental_rate <= 2.00;

Page 17: Banco de Dados - II · 2019. 5. 20. · Gilberto B. Oliveira 16 Operador Lógico AND Selecionar da tabela c name, title e da tabela f rental_rate de film como f junto com film_category

Gilberto B. Oliveira 17

Operador LógicoNOT

Selecionar da tabela f first_name, da tabela r rental_date e return_date de staff como s junto com rental como r sendo staff_id de s igual a staff_id de r onde staff_id NÃO é igual a 2 e return_date seja NULL

SELECT s.first_name, r.rental_date, r.return_date

FROM staff AS s INNER JOIN rental AS r

ON s.staff_id = r.staff_id

WHERE NOT s.staff_id = 1 AND return_date IS NULL;

Page 18: Banco de Dados - II · 2019. 5. 20. · Gilberto B. Oliveira 16 Operador Lógico AND Selecionar da tabela c name, title e da tabela f rental_rate de film como f junto com film_category

Gilberto B. Oliveira 18

BETWEENExemplo 1

Selecionar da tabela c first_name e email, da tabela r rental_date e return_date de customer como c junto com rental como r sendo o customer_id da tabela c igual ao customer_id da tabela r onde o rental_date da tabela r esteja “entre” ‘2005-08-01’ e ‘2005-08-15’ (ou seja, entre os dias primeiro e quinze de agosto de 2005)

SELECT c.first_name, c.email, r.rental_date, r.return_date

FROM customer AS c INNER JOIN rental AS r

ON c.customer_id = r.customer_id

WHERE r.rental_date BETWEEN '2005­08­01' AND '2005­08­15';

Page 19: Banco de Dados - II · 2019. 5. 20. · Gilberto B. Oliveira 16 Operador Lógico AND Selecionar da tabela c name, title e da tabela f rental_rate de film como f junto com film_category

Gilberto B. Oliveira 19

BETWEENExemplo 2

Selecionar customer_id, staff_id, rental_id e amount de payment onde amount esteja “entre” 10.00 e 15.00 (ou seja, entre dez e quinze)

SELECT customer_id, staff_id, rental_id, amount

FROM payment

WHERE amount BETWEEN 10.00 AND 15.00;

Page 20: Banco de Dados - II · 2019. 5. 20. · Gilberto B. Oliveira 16 Operador Lógico AND Selecionar da tabela c name, title e da tabela f rental_rate de film como f junto com film_category

Gilberto B. Oliveira 20

INExemplo 1

Selecionar first_name, last_name e film_info de actor_info onde last_name seja igual a [CAGE] ou igual a [WOOD] ou igual a [GUINESS]

SELECT first_name, last_name, film_info

FROM actor_info

WHERE last_name IN('CAGE', 'WOOD', 'GUINESS');

Page 21: Banco de Dados - II · 2019. 5. 20. · Gilberto B. Oliveira 16 Operador Lógico AND Selecionar da tabela c name, title e da tabela f rental_rate de film como f junto com film_category

Gilberto B. Oliveira 21

INExemplo 2

Selecionar country da tabela co, city da tabela ci e address da tabela a de country como co junto com city como ci sendo country_id da tabela co igual a country_id da tabela ci junto com address como a sendo city_id da tabela ci igual a city_id da tabela a onde o country da tabela co seja igual a [BRAZIL] ou igual a [ARGENTINA] ou igual a [PERU] ou igual a [COLOMBIA] ou igual a [MEXICO]

SELECT co.country, ci.city, a.address

FROM country AS co INNER JOIN city AS ci

ON co.country_id = ci.country_id INNER JOIN address AS a

ON ci.city_id = a.city_id

WHERE co.country IN('BRAZIL', 'ARGENTINA', 'PERU', 'COLOMBIA', 'MEXICO');