Consultas SQL - andrenoel.com.brandrenoel.com.br/bd1/aula-bd-09.pdf · Introdução Uma distinção...

Post on 11-Mar-2018

230 views 3 download

Transcript of Consultas SQL - andrenoel.com.brandrenoel.com.br/bd1/aula-bd-09.pdf · Introdução Uma distinção...

Consultas SQL

Andre Noel

Introdução

Introdução

● Uma distinção entre SQL e o modelo relacional:● SQL permite que uma tabela tenha duas ou mais tuplas iguais

Introdução

● Uma distinção entre SQL e o modelo relacional:● SQL permite que uma tabela tenha duas ou mais tuplas iguais● Assim, em SQL uma tabela não é um conjunto de tuplas, mas

um multiconjunto (ou bag) de tuplas

Recuperação de dados (SELECT)

Recuperação de dados (SELECT)

● Estrutura SELECT-FROM-WHERE

Recuperação de dados (SELECT)

● Estrutura SELECT-FROM-WHERE

SELECT

SELECT

SELECT

SELECT

SELECT

Condição de seleção

SELECT

Condição de seleção

Condição de junção

SELECT

SELECT

SELECT

SELECT

Nomes ambíguos

Nomes ambíguos

Pnome Minicial Unome Cpf Datanasc Endereco Sexo Salario CPF_Supervisor Dnr

FUNCIONARIO

DEPARTAMENTO

Dnome Dnumero Cpf_gerente Data_inicio_gerente

Nomes ambíguos

Pnome Minicial Unome Cpf Datanasc Endereco Sexo Salario CPF_Supervisor Dnr

FUNCIONARIO

DEPARTAMENTO

Dnome Dnumero Cpf_gerente Data_inicio_gerente

Nomes ambíguos

Pnome Minicial Unome Cpf Datanasc Endereco Sexo Salario CPF_Supervisor Dnr

FUNCIONARIO

DEPARTAMENTO

Dnome Dnumero Cpf_gerente Data_inicio_gerente

Nomes ambíguos

Nome Cpf Datanasc Endereco Sexo Salario CPF_Supervisor Dnumero

FUNCIONARIO

DEPARTAMENTO

Nome Dnumero Cpf_gerente Data_inicio_gerente

Nomes ambíguos

Nome Cpf Datanasc Endereco Sexo Salario CPF_Supervisor Dnumero

FUNCIONARIO

DEPARTAMENTO

Nome Dnumero Cpf_gerente Data_inicio_gerente

Nomes ambíguos

Nome Cpf Datanasc Endereco Sexo Salario CPF_Supervisor Dnumero

FUNCIONARIO

DEPARTAMENTO

Nome Dnumero Cpf_gerente Data_inicio_gerente

Nomes qualificados

Nomes ambíguos

Apelidos

Apelidos

Pnome Minicial Unome Cpf Datanasc Endereco Sexo Salario CPF_Supervisor Dnr

FUNCIONARIO

Apelidos

Pnome Minicial Unome Cpf Datanasc Endereco Sexo Salario CPF_Supervisor Dnr

FUNCIONARIO

Apelidos

Pnome Minicial Unome Cpf Datanasc Endereco Sexo Salario CPF_Supervisor Dnr

FUNCIONARIO

Apelidos

Pnome Minicial Unome Cpf Datanasc Endereco Sexo Salario CPF_Supervisor Dnr

FUNCIONARIO

Apelidos

Where não especificada e asterisco

Where não especificada e asterisco

Where não especificada e asterisco

Where não especificada e asterisco

Where não especificada e asterisco

Asterisco

Where não especificada e asterisco

Asterisco

Where não especificada e asterisco

Asterisco

Tabelas como conjuntos em SQL

● Tabelas não são conjuntos em SQL● Elas permitem tuplas repetidas

Tabelas como conjuntos em SQL

● Tabelas não são conjuntos em SQL● Elas permitem tuplas repetidas

● Por que a SQL não elimina as tuplas repetidas?

Tabelas como conjuntos em SQL

● Tabelas não são conjuntos em SQL● Elas permitem tuplas repetidas

● Por que a SQL não elimina as tuplas repetidas?● Operação dispendiosa

Tabelas como conjuntos em SQL

● Tabelas não são conjuntos em SQL● Elas permitem tuplas repetidas

● Por que a SQL não elimina as tuplas repetidas?● Operação dispendiosa● O usuário pode querer tuplas repetidas

Tabelas como conjuntos em SQL

● Tabelas não são conjuntos em SQL● Elas permitem tuplas repetidas

● Por que a SQL não elimina as tuplas repetidas?● Operação dispendiosa● O usuário pode querer tuplas repetidas● Quando uma função agregada é aplicada às tuplas,

geralmente não queremos eliminar as duplicatas

Tabelas como conjuntos em SQL

● Para eliminar tuplas duplicadas na consulta:● DISTINCT

Tabelas como conjuntos em SQL

● Para eliminar tuplas duplicadas na consulta:● DISTINCT

Tabelas como conjuntos em SQL

● Para eliminar tuplas duplicadas na consulta:● DISTINCT

Tabelas como conjuntos em SQL

● Para eliminar tuplas duplicadas na consulta:● DISTINCT

União de conjuntos

União de conjuntos

União de conjuntos

Padrões e subcadeias

● Operador de comparação LIKE

Padrões e subcadeias

● Operador de comparação LIKE● Caractere %

Padrões e subcadeias

● Operador de comparação LIKE● Caractere %

Padrões e subcadeias

● Operador de comparação LIKE● Caractere %

Aritmética nas consultas

Aritmética nas consultas

Aritmética nas consultas

BETWEEN

BETWEEN

BETWEEN

Ordem dos resultados

Ordem dos resultados

Ordem dos resultados

Consulta: Resumo

INSERT

INSERT

INSERT

Os atributos devem ser listados na mesma ordem em que foram especificados no comando CREATE TABLE

INSERT

INSERT

Atributos explícitos

INSERT: Restrições

INSERT: Restrições

INSERT: Várias tuplas

DELETE

DELETE

DELETE FROM <tabela> [WHERE <condição>]

DELETE

UPDATE

UPDATE

UPDATE <tabela>

SET <campo>=<valor>

WHERE <condição>

UPDATE

UPDATE

Recursos adicionais

● Consultas aninhadas● Joins● Views● Triggers● Assertions● ...

Extra: MySQL Engines

Exercícios

Exercícios

Exercícios