Consultas SQL Andre Noel
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