SQL Uma Visão mais Ampla

Documentos relacionados
SQL Uma Visão mais Ampla

- SQL Linguagem de Manipulação de Dados

Oracle Comandos para Processamento de Transações

Bases de Dados BDDAD. Linguagem SQL. Comando SELECT Divisão Algébrica. Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/9

Subconsultas ou Consultas Aninhadas

Subconsulta na Cláusula FROM

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

Subconsultas ou Consultas Aninhadas

Banco de Dados I. Aula 14 - Prof. Bruno Moreno 11/10/2011

Álgebra Relacional e SQL

MySql. Introdução a MySQL. Andréa Garcia Trindade

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 2 Consultas Aninhaas

Funções de Agregação, Subconsultas e Views

Subconsulta na Cláusula FROM

Comandos de Manipulação

Introdução ao SQL. Aécio Costa

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

Preparação criar tabela. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 12/11/2018

SQL-99: Esquema de BD EMPRESA

MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc.

SQL. Prof. Roger Cristhian Gomes

Aula 10 BD 1 SQL Parte 2. Profa. Elaine Faria UFU

- Um "query block" permite a implementação das operações de selecção, projecção e junção da álgebra relacional.

Oracle Database: Fundamentos de SQL e PL/SQL

ANÁLISE E PROJETO DE BANCO DE DADOS

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Manipulação de Dados com SQL

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

saída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única

MODELAGEM DE DADOS -INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc.

BANCO DE DADOS I. Exercícios

Banco de Dados Oracle 10g: Introdução à Linguagem SQL

SQL DML. SQL Linguagem de Manipulação de Dados SELECT SELECT SELECT SELECT

IMPLEMENTAÇÃO DE BANCO DE DADOS

Revisão de Bancos de Dados

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

Oracle Database 11g: Introdução à Linguagem SQL Novo

Oracle Database 12c: Introdução ao SQL Ed. 2

ÁLGEBRA E CÁLCULO RELACIONAL

Subconsultas ou Consultas Aninhadas

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

Linguagem SQL - Structured Query Language

Sintaxe do comando SELECT

Oracle Database 10g: Fundamentos de SQL e PL/SQL

Fundamentos de Programação ORACLE: SQL. Prof. Walter Gima

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

Linguagem SQL - Structured Query Language

SQL (Tópicos) Structured Query Language

SQL Consultas Básicas

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais

Rápida revisão do Modelo Relacional

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

Conceitos SQL SQL 19/03/2017 O que é dado? O que é BD? O que é uma informação? O que é SGBD? O que é SQL? O que é BD? O que é SGBD?

Fundamentos de Banco de Dados Postgre com Sql

Prova de Tecnologia da Informação

Fundamentos de Bancos de Dados Prova 2

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Exercícios. Exercícios

Linguagem SQL - Structured Query Language

Introdução ao PostgreSQL

Administração de Banco de Dados

BANCO DE DADOS Parte 4

Linguagem SQL Comando SELECT Subqueries

Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas

12.4 DER Mais sobre Cardinalidade DER Mais sobre Cardinalidade DER Mais sobre Cardinalidade DER Mais sobre Cardinalidade

Bases de Dados. DML Data Manipulation Language Parte 3

Apresentação Modelo e SQL. André Luiz Montevecchi

SUBCONSULTAS E TIPOS DE JUNÇÃO. Banco de Dados Profa. Ana Paula Wauke

As Instruções DML. As Instruções de manipulação de dados(dml) em SQL são representados por: Modificam o estado do banco de dados:

TABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

Fundamentos de Programação ORACLE: SQL. Prof. Walter Gima

Disciplina: Banco de Dados Tema: SQL Parte 2

Usando Subconsultas para Solucionar Consultas

Álgebra Relacional e Cálculo Relacional

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

select nome from Médicos where codm in (select codm from Consultas where data = 06/06/13 )

SQL Básica DML. Prof. Marcos A. Schreiner. 22 de outubro de Curso de Licenciatura em Computação

Transcrição:

SQL Uma Visão mais Ampla Banco de Dados

Modelo Entidade-Relacionamento n possui 1 1 oferece n filial_nro filial_local filial_data_abertura cli_codigo cli_nome cli_telefone m aluga n FILIAL 1 cadastra n CLIENTE num_certificado data_expedição emp_codigo emp_nome emp_endereco emp_telefone fun_codigo fun_nome fun_endereco fun_sexo fun_niver fun_salario 1 supervisiona n SECRETARIO EMPRESA 1 emprega n 1 FUNCIONARIO d num_carteira classe tipo_funcionário car_chassi car_modelo car_ano tem dep_nome dep_sexo dep_data_niver parentesco MOTORISTA n CARRO n DEPENDENTE data nro_horas dirige m

Mapeamento MER Relacional empresa (emp_codigo, emp_nome, emp_endereco, emp_telefone) filial (emp_codigo, filial_nro, filial_local, filial_data_abertura) funcionario (fun_codigo, fun_nome, fun_endereco, fun_sexo, fun_niver, fun_salario, tipo_funcionario, emp_codigo, cod_supervisor) secretario (fun_codigo, num_certificado, data_expedição) motorista (fun_codigo, num_carteira, classe)

Mapeamento MER Relacional carro (car_chassi, car_modelo, car_ano, emp_codigo) dirige (car_chassi, fun_codigo, data, nro_horas) dependente (fun_codigo, dep_nome, dep_sexo, dep_data_niver, parentesco) cliente (cli_codigo, cli_nome, cli_telefone, emp_codigo) aluga (cli_codigo, car_chassi)

Subconsultas Aninhadas Subconsulta expressão SELECT... FROM... WHERE... aninhada dentro de outra consulta Aplicações mais comuns testes para membros de conjuntos cardinalidade de conjuntos comparações de conjuntos Observação a mesma consulta SQL pode ser escrita de diversas maneiras

Membros de um Conjunto IN testa se um atributo ou uma lista de atributos é membro do conjunto NOT IN verifica a ausência de um membro em um conjunto Conjunto: coleção de valores produzidos por uma cláusula SELECT... FROM... WHERE...

Exemplo Liste os nomes das empresas que têm filiais. SELECT emp_nome FROM empresa WHERE emp_codigo IN (SELECT emp_codigo FROM filial)

Exemplo Liste os nomes das empresas que não têm filiais. SELECT emp_nome FROM empresa WHERE emp_codigo NOT IN (SELECT emp_codigo FROM filial)

Cardinalidade de Conjuntos EXISTS... WHERE EXISTS (lista) a condição é verdadeira quando a lista (resultado de uma consulta) não for vazia NOT EXISTS... WHERE NOT EXISTS (lista) a condição é verdadeira quando a lista for vazia

Exemplo Liste os nomes das empresas que têm filiais. SELECT emp_nome FROM empresa WHERE EXISTS (SELECT * FROM filial WHERE empresa.emp_codigo = filial.emp_codigo)

Exercício 1 Liste todos os dados das empresas que têm filiais na cidade de Curitiba. resolva a consulta usando IN resolva a consulta usando EXISTS resolva a consulta usando JOIN

Comparação de Conjuntos SOME... WHERE ano_vinho > SOME (lista) a condição é verdadeira quando ano_vinho for maior que algum dos resultados presentes na lista (resultado de uma consulta) outros operadores ANY [< <= >= > = <> ] palavra-chave sinônimo

Exemplo Liste os números das filiais localizadas em Recife que têm data de abertura posterior à data de abertura de alguma filial localizada em São Carlos. SELECT filial_nro FROM filial WHERE filial_local = Recife AND filial_data_abertura > SOME ( SELECT filial_data_abertura FROM filial WHERE filial_local = São Carlos );

Comparação de Conjuntos ALL... WHERE ano_vinho > ALL (lista) a condição é verdadeira quando ano_vinho for maior que todos os resultados presentes na lista (resultado de uma consulta) outros operadores [< <= >= > = <> ]

Exemplo Liste os números das filiais localizadas em Recife que têm data de abertura posterior às datas de abertura de todas as filiais localizadas em São Carlos. SELECT filial_nro FROM filial WHERE filial_local = Recife AND filial_data_abertura > ALL ( SELECT filial_data_abertura FROM filial WHERE filial_local = São Carlos );

Exercício 2 Liste o modelo, o ano e o número de horas dirigidas relativas ao carro cujo número de horas que foi utilizado pelo motorista Paulo Ferreira é maior do que qualquer número de horas dirigidos pelo funcionário José Sopa. a) antes de executar a consulta, execute o seguinte comando update dirige set NRO_HORAS = 10 where CAR_CHASSI = '03WZZZ3888WP192116' and FUN_CODIGO = 20 and DATA = '01/02/00';

Divisão (Álgebra Relacional) Divisão de duas relações R e S todos os valores de um atributo de R que fazem referência a todos os valores de um atributo de S Utilizada para consultas que incluam o termo para todos ou em todos

Exemplo (Álgebra Relacional) Liste os códigos dos motoristas que dirigiram todos os carros listados na relação carro. R: π car_chassi, fun_codigo (dirige) S: π car_chassi (carro) R S fun_codigo car_chassi car_chassi fun_codigo 9 12 66 1 1 04 04 1 66 4 03 5 11 8 04 8 74

Exemplo (SQL) Liste os códigos dos motoristas que dirigiram todos os carros listados na relação carro. SELECT fun_codigo FROM funcionario WHERE NOT EXISTS ( (SELECT car_chassi FROM carro) MINUS (SELECT car_chassi FROM dirige WHERE funcionario.fun_codigo = dirige.fun_codigo) )

Exercício 3 Liste o nome completo dos funcionários que dirigiram todos os carros que o funcionário Paulo Ferreira dirigiu. a) antes de executar a consulta, execute o seguinte comando: insert into dirige (CAR_CHASSI, FUN_CODIGO, DATA, NRO_HORAS) values ('03WZZZ3888WP192116', 55, sysdate, 2); Resposta: Nilton Sopa

Exercício 3 b) execute novamente a consulta, após executar os seguintes comandos: insert into dirige (CAR_CHASSI, FUN_CODIGO, DATA, NRO_HORAS) values ('03WZZZ3888WP192116', 100, sysdate, 2); Resposta: Nilton Sopa; Samantha Bastos c) execute novamente a consulta, após executar os seguintes comandos: insert into carro values ('01CCCC3888WP692161', 'Teste', 2010, 2); insert into dirige (CAR_CHASSI, FUN_CODIGO, DATA, NRO_HORAS) values ('01CCCC3888WP692161', 20, sysdate, 2); insert into dirige (CAR_CHASSI, FUN_CODIGO, DATA, NRO_HORAS) values ('01CCCC3888WP692161', 100, sysdate, 2); Resposta: Samantha Bastos

Exercício 4 Liste o código, o nome do funcionário e sua respectiva quantidade de dependentes, para funcionários do sexo masculino que possuam mais do que um dependente.