António Rocha Nuno Melo e Castro



Documentos relacionados
Comandos de Manipulação

SQL: Consultas, Programação, Gatilhos

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

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados

SQL: Uma Linguagem de Consulta

SQL: Uma Linguagem de Consulta. Database Management Systems, R. Ramakrishnan (tradução, autorizada, de Anna & Mario Nascimento)

Projeto de Banco de Dados

Tarefa Orientada 13 Agrupamento e sumário de dados

Programação SQL. INTRODUÇÃO II parte

3) Palavra-chave distinct (select-from). Obter apenas os pibs distintos entre si.

PROGRAMA. Aquisição dos conceitos teóricos mais importantes sobre bases de dados contextualizados à luz de exemplos da sua aplicação no mundo real.

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

Consultas SQL Parte II

DML - SELECT Agrupando Dados

SQL DML. Frederico D. Bortoloti

Structured Query Language (SQL) SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

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

Definida pelo American National Standard Institute (ANSI) em 1986

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

ANÁLISE E PROJETO DE BANCO DE DADOS

SQL UMA ABORDAGEM INTERESSANTE

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Linguagem de Consulta Estruturada SQL- DML

SQL (Structured Query Language)

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello

Prof.: Clayton Maciel Costa

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

SQL BANCO DE DADOS. Linguagem de consulta SQL. Linguagem de consulta SQL. Linguagem de Consulta Estruturada

Query SQL (Structured Query Language)

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

Bases de Dados 2005/2006. Aula 5

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

Tarefa Orientada 14 Subconsultas

Banco de Dados. Prof. Antonio

Structured Query Language (SQL)

PROGRAMA. Objectivos Gerais :

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Sumário Introdução Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL A Composição deste Livro 3

EXEMPLOS DE COMANDOS NO SQL SERVER

SQL. Prof. Márcio Bueno.

Pedro F. Carvalho OCP Oracle g LINGUAGEM SQL. São José do Rio Preto

Linguagem de Consulta - SQL

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

Memória de aula Aulas 11 e 12

Exercícios de Lógica Exercícios de Fixação 08

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003

f. Vocês podem selecionar todos os campos indicando-os, ou seja, sem usar * (boa prática) g. Muito relevante na manutenção de BD e de aplicações.

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

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Linguagem de Banco de Dados DML Exercícios

NOME SEXO CPF NASCIMENTO SALARIO

1. Assinale as afirmações que são verdadeiras e as que são falsas, corrigindo-as:

O que são Bancos de Dados?

Bases de Dados. DML Data Manipulation Language Parte 1

SQL Consultas Básicas

Tarefa Orientada 10 Obter informação a partir de uma tabela

Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. (

SQL BÁSICO. Introdução. Prof. Suelane Garcia. Linguagem SQL (Structured Query Language)

Rápida revisão do Modelo Relacional

Introdução ao SQL Avançado

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

SQL (Tópicos) Structured Query Language

Sistemas de Bases de Dados Relacionais Introdução ao SQL. Interrogações diversas sobre a Base de Dados Northwind

Banco de Dados. Maurício Edgar Stivanello

Aula 11 SBD SQL Parte 3. Profa. Elaine Faria UFU

Revisão / Exercícios. Prof. Márcio Bueno. {bd2tarde,bd2noited}@marciobueno.com

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

SQL Structured Query Language

SQL Comandos para Relatórios e Formulários. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL

Bases de Dados 2007/2008. Aula 1. Referências

Programação SQL. Manipulação de Dados. DML Data Manipulation Language

Tarefa Orientada 11 Junção Interna

Linguagem de Consulta - SQL

SQL92 DDL( RIS, ACTUALIZAÇÕES E VISTAS) DML (QUERIES, SUBQUERIES,JUNÇÕES, E OPERAÇÕES SOBRE CONJUNTOS)

Treinamento sobre SQL

S Q L 31/03/2010. SQL - Structured Query Language Linguagem de Consulta Estruturada

Exercícios com o intuito de cobrar todos os assuntos vistos em sala, relativos à Modelagem Conceitual, SQL, PL e XML. 1ª ETAPA

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida

Prova de Fundamentos de Bancos de Dados 2 a Prova

BANCO DE DADOS Parte 4

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Linguagem SQL. ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas

Linguagem SQL. Comandos Básicos

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

SQL (Linguagem de Consulta Estruturada)

S Q L 15/01/2013. Enfoques de SQL. Enfoques de SQL SQL. Usos de SQL. SQL - Origem/Histórico. Gerenciamento de Dados e Informação

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

1. SQL Instrumental Select Delete Update Insert Group by Having Unnion All...

Reforçando conceitos de SQL Estudo de Caso: Agenciamento de Corridas de Táxis

EXERCÍCIOS PRÁTICOS. Banco de Dados

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

Programação SQL. Introdução

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

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

Figura 1. Figura 2. Prova Escrita de Base de Dados 5 Novembro V2 Número do Aluno: Nome do Aluno: 1º Teste (90 Minutos)

Linguagem de Consulta Estruturada (SQL)

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Transcrição:

António Rocha Nuno Melo e Castro

SQL- Strutured Query Language é a linguagem mais usada nas bases dados relacionais. Originalmente desenvolvida pela IBM Actualmente é um standard, o mais recente é o SQL:2003

No SQL existem vários aspectos a considerar: DML - Data Manipulation Language DDL - Data Definition Language DCL - Data Control Language Triggers, Stored Procedures, Functions, Etc Tratamento de transações Etc. Nesta aula vamos apenas abordar a DML

!"#$% Pesquisa simples SELECT [DISTINCT] lista-atributos FROM lista-tabelas WHERE condições Uma pesquisa corresponde a uma expressão de álgebra relacional, envolvendo selecções, projecções e produtos cartesianos.

&'( ) Encontrar o nome e idade de todos os marinheiros

&'( )

&'( ) Encontrar todos os marinheiros cujo rating é maior do que 7 σ rating > 7 (Sailors) Opcionalmente podemos usar SELECT * Retorna todos os atributos Problemas de performance e manutenção Operadores aritméticos: <, <=, =, <>, >=, > E lógicos: AND e OR

&'( )+$ Procurar o name dos Sailors que tenham reservado o Bid 103. *

&')(##-(#( ((#$.# Na lista de campos do Select é possível usar expressões do tipo: Expressão As Nome Em que expressão pode ser uma operação que envolve: Variáveis Constantes Campos String Exemplo: SELECT S.sname, S.rating+1+S.Age AS Demo From Sailors,

&')(##-(#( ((#$.# Na cláusula Where é também possível usar expressões no formato: Expressão1 <operador> Expressão2 Exemplo: SELECT S.sname, S.rating+1+S.Age AS Demo From Sailors S Where S.rating*3>(S.Age-4)

&')(##-(#( ((#$.# Operador LIKE Para tratamento de string Operador _ Operador % Ex: sname like _or%

/( SELECT [DISTINCT] lista-atributos FROM lista-tabelas WHERE condições Order By lista-atributos-ordenação Por cada atributo da lista lista-atributos-ordenação é possivel definir se é decrescente (DESC) ou Crescente (ASC) por omissão é crescente. Ex. SELECT S.sname, S.age, S.sid From Sailors Order by S.age DESC, S.Sname ASC

/( Na ordenação é possível especificar os atributos a partir da ordem dele no SELECT Ex. SELECT S.sname, S.age, S.sid From Sailors S Order by 2 DESC, 1 ASC

0$ Tem o mesmo efeito que a união da álgebra relacional Une dois conjuntos e elimina os repetidos Tem de existir compatibilidade entre os conjuntos: Mesmo número de campos Tipos de dados compatíveis

0$('( ) Encontre o nome dos marinheiros que reservaram um barco vermelho ou verde É importante referir que a cláusula anterior é muito mais simples de escrever através de um OR e retirando o segundo conjunto

1(#(2($(# Nested queries: São pesquisas que tem outras pesquisas embutidas A pesquisa embutida chama-se subquery

1(#(2($(# Outro exemplo

1(#(2($(# Para efectuar negações usamos o NOT *

1(#(2($(# Podemos usar o EXISTS para testar se um conjunto está ou não vazio Da mesma forma podemos também negar com o NOT EXISTS,

/)((#(.(. COUNT ([DISTINCT] A): O número de valores (únicos) na coluna A SUM ([DISTINCT] A): A soma de todos os valores (únicos) de A AVG ([DISTINCT] A): A média de todos os valores (únicos) de A MAX (A). O valor máximo existente na coluna A MIN (A). O valor mínimo existente na coluna A

&'( )#.(. Encontrar a média de idades dos marinheiros SELECT AVG (S.age) FROM Sailors S Quantos marinheiros existem com idade superior a 35? SELECT Count(*) FROM Sailors S Where S.age > 35

3(#$-(#.(. Se um SELECT tem um uma operação de agregação, então apenas pode conter operadores de agregação, excepto se tiver uma cláusula GROUP BY Exemplo: Encontrar o nome e a idade do marinheiro mais velho SELECT S.sname, MAX(S.age) FROM Sailors Está errado, o correcto poderá ser: SELECT S.sname FROM Sailors WHERE S.age = (SELECT MAX (S2.age) FROM Sailors S2)

43/056(7814 SELECT [DISTINCT] lista-atributos FROM lista-tabelas WHERE condições GROUP BY lista-atributos-do-grupo HAVING condições-do-grupo

&'( ) Encontrar a idade do marinheiro mais novo por cada nível. SELECT S.rating, MIN (S.age) FROM Sailors S GROUP BY S.rating

9#$(-(# A lista-atributos da cláusula SELECT consiste(1) numa lista de nomes e (2) uma lista de termos de agrupadores. Cada coluna que apareça em (1) tem também de aparecer na lista-atributos-do-grupo As expressões que aparecem nas condiçõesdo-grupo na cláusula HAVING servem para filtrar os valores dos grupos Atenção: Não é possível usar directamente os operadores de agregação na cláusula WHERE

&'( ) Encontrar a idade do marinheiro mais novo por cada nível, desde que o marinheiro mais novo do nível tenha idade superior a 20 SELECT S.rating, MIN (S.age) FROM Sailors S GROUP BY S.rating Having MIN(S.Age)>20

&'( ) Encontrar a média de idades dos marinheiros para os níveis 7 e 8, desde que cada nível tenha pelo menos dois marinheiros. SELECT S.rating, AVG (S.age) FROM Sailors S WHERE S.rating = 7 or S.rating = 8 GROUP BY S.rating Having COUNT(*)>1

10 Representa algo que não existe Ex.1 Ex.2 Select * from Alunos Where Telefone = NULL -------- Errado Select * from Alunos Where Telefone Is NULL -------- Correcto Função IsNull / NVL Sqlserver / Oracle Select IsNull(Telefone, Não tem ) From alunos Select NVL(Telefone, Não tem ) From alunos *

10:%;< O que acontece? Select * from alunos Where Telefone<> 931234567 Select * from alunos Where Telefone= 931234567 Select * from alunos Where Telefone= 931234567 or Telefone is NULL,

/(+$ Variantes do operador join que assentam no valor Null Na expressão seguinte apenas aparecem os registos que existam em ambas as tabelas Com os outer join podemos especificar que os registos apareçam independentemente se existem em ambas as tabelas. Quando não existe numa das tabelas os valores aparecem a NULL

8$(#+$ Existem várias variantes: Left Outer Join além dos registos que fazem match, os registos da tabela esquerda que não existam na direita também aparecem Rigth Outer Join além dos registos que fazem match, aparecem todos os restantes registos da tabela direita que não existam na esquerda Full Outer Join aparecem todos os registos independentemente de fazerem ou não match. Com o Inner Join apenas aparecem os que fazem match. Tem o mesmo efeito que igualar ao campos de ambas as tabelas na cláusula WHERE

&'( )+$ SELECT S.sid, R.bid FROM Sailors S LEFT OUTER JOIN Reserves R ON (S.sid=R.sid) Resultado

/#('( )# Por cada barco vermelho, determine o número de reservas por barco.

/#('( )# Determine a média de idades dos marinheiros que têm idade superior a 17 para cada nível que tenha pelo menos dois marinheiros (independentemente da idade)

$ Baseado em Database Management Systems - Ramakrishnan