SQL: Interrogações simples



Documentos relacionados
SQL: Definição de tabelas, Modificações à Base de Dados

Álgebra relacional. Fernando Lobo. Conjunto de operadores que permitem manipular relações: produtos cartesianos e joins.

Dependências Funcionais

Definida pelo American National Standard Institute (ANSI) em 1986

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

Álgebra relacional. Fernando Lobo. Base de Dados, aula 12

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD.

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:

Comandos de Manipulação

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

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Prof.: Clayton Maciel Costa

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

Principais Comandos SQL Usados no MySql

Conversão do modelo UML para o modelo relacional

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

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve

Introdução ao SQL. Aécio Costa

SQL. Agregações e agrupamentos. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

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

NOME SEXO CPF NASCIMENTO SALARIO

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

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

Banco de Dados I. SQL SELECT Parte 1 - Básico. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas

Bases de Dados. DML Data Manipulation Language Parte 1

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.

Fernando Albuquerque - fernando@cic.unb.br. Bancos de Dados. Fernando Albuquerque fernando@cic.unb.br

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

Triggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

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

SQL DML. Frederico D. Bortoloti

Bases de dados semi-estruturadas, XML

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

Linguagem de Consulta Estruturada SQL- DML

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

SQL. Ambientes de programação O catálogo do sistema. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

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

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

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

SQL Structured Query Language

4.6. SQL - Structured Query Language

Structured Query Language (SQL)

O que são Bancos de Dados?

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

António Rocha Nuno Melo e Castro

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

Tarefa Orientada 16 Vistas

SQL. Prof. Márcio Bueno.

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Banco de Dados. Prof. Antonio

DESENVOLVIMENTO DE SOFTWARE

Introdução e motivação SGBD XML Nativo Consultas em SGBDs XML Prática. Bancos de dados XML. Conceitos e linguagens de consulta

Introdução ao SQL Avançado

Linguagem SQL Parte I

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

Processamento e Otimização de Consultas

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

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

Núcleo de Pós Graduação Pitágoras

Nome: n.º WEB Série 2B 2C 2D 2E Barueri, 17/08/2009 2ª Postagem Disciplina: Gerenciamento e Estrutura de Banco de Dados Professor: Márcio

Desenvolvimento de uma base de dados. Relação. Modelo lógico: SGBD relacional

Bases de Dados. Álgebra Relacional ou Como manipular uma BD SQL. P. Serendero,

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

Programação SQL. Introdução

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

Introdução às Bases de Dados

Texto Base Livro texto: SQL Guia Prático 2ª Edição Rogério Luís de C. Costa. Banco de Dados II Comando Select. Gustavo Dibbern Piva

SQL. Subqueries. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

SQL (Linguagem de Consulta Estruturada)

SQL. Índices, views e restrições. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

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

Forma Normal de Boyce Codd 3 a Forma Normal

SQL DDL. Frederico D. Bortoloti

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

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Consistem num conjunto de apontadores para instâncias especificas de cada relação.

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

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

Linguagem de Consulta - SQL

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

PHP INTEGRAÇÃO COM MYSQL PARTE 1

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

Tarefa Orientada 14 Subconsultas

Modelo de Dados. Modelo para organização dos dados de um BD

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

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

Prof. Ronaldo R. Goldschmidt. geocities.yahoo.com.br/ronaldo_goldschmidt

Curso de Aprendizado Industrial Desenvolvedor WEB. Disciplina: Banco de Dados Professora: Cheli Mendes Costa Modelo de Dados

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

Prof.: Clayton Maciel Costa

SQL Consultas Básicas

Operações sobre sacos. Álgebra Relacional Extendida.

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

Ministério da Educação Secretaria de Educação Profissional e Tecnológica Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul

BDII SQL Junção Revisão 8

Linguagem SQL - Structured Query Language

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

Transcrição:

SQL: Interrogações simples Fernando Lobo Base de Dados, Universidade do Algarve 1 / 20 Structured Query Language (SQL) É uma implementação da álgebra relacional incluindo os operadores extendidos. Contém um ou outro aspecto que não existe em álgebra relacional. Para além de operadores de interrogação, contém comandos de inserção, actualização e remoção de tuplos. Contém também comandos de definição de relações/tabelas. É uma linguagem usada em praticamente todos os SGBDs. 2 / 20

Porquê SQL? É uma linguagem de muito alto nível. Bem mais adequada para manipular relações do que linguagens como o C ou Java. O programador apenas se tem de preocupar com o conceito de relação/tabela. Não necessita de saber detalhes físicos sobre, 1 o modo como as tabelas são implementadas, e 2 o modo como as interrogações são executadas. As interrogações em SQL são optimizadas pelo SGBD. 3 / 20 SQL também tem limitações Não é uma linguagem completa. Não se consegue calcular o factorial de um número em SQL. Mas consegue-se fazer programas de 5 linhas que necessitariam de centenas de linhas de código em C. 4 / 20

Vamos usar este esquema para a BD de filmes Estudios(nome, morada) Realizadores(nome, categoria) Filmes(nome, ano, duracao, acores, nomeestudio, nomerealizador) Actores(nome, morada, sexo, datanascimento) Participa(nomeFilme, anofilme, nomeactor) 5 / 20 Interrogações simples: SELECT-FROM-WHERE SELECT atributos FROM uma ou mais relações WHERE condição SELECT nome WHERE ano=1977; 6 / 20

SELECT-FROM-WHERE Não confundir SELECT com o operador de selecção da álgebra relacional. SELECT é equivalente à projecção (π). WHERE é equivalente à selecção (σ). 7 / 20 Operação em termos de álgebra relacional SELECT nome WHERE ano=1977; 1 Começar com a relação que aparece a seguir a FROM. 2 Aplicar o operador σ usando a condição do WHERE. 3 Aplicar o operador π usando os atributos de SELECT. 8 / 20

SQL versus Álgebra Relacional Quais os filmes feitos em 1977? SQL SELECT nome WHERE ano=1977; Álgebra Relacional ( ) π nome σ ano = 1977 (Filmes) 9 / 20 Outra maneira de pensar SELECT nome WHERE ano=1977; Imaginem uma variável que percorre todos os tuplos da relação. Verifica se satisfaz a condição WHERE. Se sim, envia os atributos especificados em SELECT para o output. 10 / 20

Asterisco dá todos os atributos SELECT * FROM Participa WHERE nomefilme= Moulin Rouge ; nomefilme anofime nomeactor Moulin Rouge 2001 Nicole Kidman Moulin Rouge 2001 Ewan McGregor Moulin Rouge 2001 Jim Broadbent 11 / 20 Mudar o nome a colunas utilizar AS <novo nome> SELECT nome AS nome do filme WHERE ano=1977; nome do filme Star Wars Saturday Night Fever... 12 / 20

Operadores lógicos a cláusula WHERE pode ter operadores lógicos (AND, OR, NOT) pode-se usar os operadores relacionais habituais ( =, <>, <, >, <=, >= ) SELECT nome, duracao WHERE estudio= Disney AND ano=1977; 13 / 20 Expressões em SELECTs pode-se usar expressões como elementos da cláusula SELECT. SELECT nome, ano, duracao/60 AS duração em horas ; nome ano duração em horas Star Wars 1977 2.07 Empire Strikes Back 1980 2.38 Return of the Jedi 1983 2.75 Moulin Rouge 2001 2.07 14 / 20

Padrões (pattern matching em strings) a condição WHERE pode especificar uma comparação entre uma string e um padrão. <atributo> LIKE <padrão> <atributo> NOT LIKE <padrão> um padrão é uma string em que % significa 0 ou mais caracteres e significa apenas 1 caracter. 15 / 20 Exemplo Quais são os filmes cujo nome contem a palavra King? SELECT nome, ano WHERE nome LIKE %King% ; nome ano King Kong 1933 King Kong 1976 Lion King 1994 16 / 20

SQL trabalha com sacos SELECT nomeestudio ; nomeestudio Fox Fox Fox Disney Paramount Disney... 17 / 20 Usar DISTINCT para eliminar repetidos SELECT DISTINCT(nomeEstudio) ; nomeestudio Fox Disney Paramount Universal Warner Brothers 18 / 20

Ordenação de tuplos ORDER BY <lista de atributos> ordem crescente por defeito (colocar DESC para ordem decrescente) ordem lexicográfica para strings. 19 / 20 Exemplos Filmes da Disney ordenados por ano, e dentro de cada ano, ordenados por nome. SELECT * WHERE nomeestudio= Disney ORDER BY ano, nome; Filmes da Disney ordenados por ordem decrescente de duração, e em caso de empate, ordenados por ordem crescente de nome. SELECT * WHERE nomeestudio= Disney ORDER BY duracao DESC, nome; 20 / 20