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



Documentos relacionados
Query SQL (Structured Query Language)

Computadores. Sistemas de Informação (2005/2006)

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

Comandos de Manipulação

Definida pelo American National Standard Institute (ANSI) em 1986

Tarefa Orientada 13 Agrupamento e sumário de dados

Á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:

PROGRAMA. Objectivos Gerais :

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

Structured Query Language (SQL)

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

António Rocha Nuno Melo e Castro

Banco de Dados. Prof. Antonio

Linguagem de Consulta Estruturada SQL- DML

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

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

SQL. Prof. Márcio Bueno.

SQL (Structured Query Language)

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

SQL Structured Query Language

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

ANÁLISE E PROJETO DE BANCO DE DADOS

SQL DML. Frederico D. Bortoloti

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

Tarefa Orientada 16 Vistas

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

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

Prof.: Clayton Maciel Costa

SQL UMA ABORDAGEM INTERESSANTE

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

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

Linguagem de Consulta - SQL

EXEMPLOS DE COMANDOS NO SQL SERVER

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

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

Linguagem de Banco de Dados DML Exercícios

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

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

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

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

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

NOME SEXO CPF NASCIMENTO SALARIO

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

Projeto de Banco de Dados

Tarefa Orientada 15 Manipulação de dados

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

Consultas SQL Parte II

SQL (Tópicos) Structured Query Language

SQL (Linguagem de Consulta Estruturada)

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

EXERCÍCIOS PRÁTICOS. Banco de Dados

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

Bases de Dados 2005/2006. Aula 5

DML - SELECT Agrupando Dados

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

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

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

Bases de Dados. DML Data Manipulation Language Parte 1

Linguagem de Consulta Estruturada (SQL)

Curso PHP Aula 08. Bruno Falcão

Os dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas.

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

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

Linguagem de Consulta - SQL

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

Linguagem SQL - Structured Query Language

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

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

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

Linguagem SQL. Comandos Básicos

Tarefa Orientada 14 Subconsultas

Consultas (Queries) ou Interrogações

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

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

Introdução ao SQL Avançado

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

Banco de Dados. Maurício Edgar Stivanello

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

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

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

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

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS

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

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

Tarefa Orientada 19 Triggers

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

Projeto e Implementação

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados.

Principais Comandos SQL Usados no MySql

Rápida revisão do Modelo Relacional

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

Linguagem SQL - Structured Query Language

Introdução ao SQL. Aécio Costa

Tarefa Orientada 11 Junção Interna

PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki

Banco de Dados I. Linguagem de Consulta (parte I) DDL DML

Escrito por Sex, 14 de Outubro de :12 - Última atualização Seg, 26 de Março de :33

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

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

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

Transcrição:

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

A instrução SELECT As consultas a uma base de dados relacional fazem-se em SQL recorrendo à instrução SELECT. Esta instrução permite criar conjuntos de registos de uma ou mais tabelas da base de dados seleccionados segundo diversos critérios. A sintaxe completa da instrução SELECT é complexa.

A forma mais simples da instrução SELECT utiliza apenas a cláusula FROM selecciona todos os registos de uma tabela Sintaxe ª variante: SELECT { * table.* [table.]field [, [table.]field [,...]]} FROM table; onde * especifica que todos os campos devem ser seleccionados table especifica o nome da tabela que contém os campos e os registos seleccionados field especifica os nomes dos campos que são seleccionados 3

Exemplo Considere o seguinte esquema relacional: Trabalhador (número, nome, datanasc, especialidade) Produto (códigop, designaçãop, área, número) Comprador (códigoc, identificaçãoc, moradac,telefonec) Venda (códigop, códigoc, datav, quantidadev, valorv, datarecebim) MatériaPrima (códigomp, designaçãomp, quantarmaz) Utiliza (códigop, códigomp, datau, quantidadeu) Fornecedor (códigof, identificaçãof, moradaf, TelefoneF) Compra (códigomp, códigof, datac, quantidadec, valorc, datapagam) Suponha que na base de dados existem as tabelas com os seguintes registos:

Exemplo (cont.) Tabela Trabalhador Tabela Produto número nome datanasc especialidade códigop designaçãop área número João Dias 955-0-05 hortelão 5 cenoura.5 Luísa Ferreira 95--5 jardineiro 6 feijão verde 6.5 3 Mário Horta 960--05 motorista 7 batata.6 Joana Garcia eng agrónomo 8 rosa Tabela Comprador códigoc identificaçãoc Manel Maria moradac Casais de Cima telefonec 79658365 Luisa Fraga Casais de Baixo 58906587 3 Duarte Silva Vila Nova 563789 Tabela Venda códigop 5 códigoc datav 999-0-07 quantidadev 50 valorv 5000 datarecebim 999-05-07 5 999-0-0 5.6 000 6 999-0-05 00 60000 6 999-03-9 50 90000 Tabela Fornecedor códigof identificaçãof Ana Sousa moradaf ISA - Tapada da Ajuda telefonef 36386 5

A forma mais simples da instrução SELECT Exemplo: SELECT * FROM Produto; Conjunto de registos seleccionados: códigop designaçãop área número 5 cenoura.5 6 feijão verde 6.5 7 batata.6 8 rosa 6

A cláusula WHERE permite especificar uma condição que os registos seleccionados verificam. Sintaxe ª variante: SELECT fieldlist FROM table WHERE condition; onde fieldlist... table... condition uma condição que os registos seleccionados verificam; podem ser utilizados operadores relacionais (<, <=, >, >=, =, <>), operadores lógicos (NOT, AND, OR) e os operadores IN, IS BETWEEN e LIKE. 7

A cláusula WHERE Exemplo: SELECT códigop, códigoc, datav, valorv FROM Venda WHERE datav > {D 999-0-0 }; Conjunto de registos seleccionados: códigop códigoc datav valorv 5 07-0-999 5000 6 05-0-999 60000 8

A cláusula FROM A cláusula FROM especifica o(s) nome(s) da(s) tabela(s) em que se encontram os registos a seleccionar. Quando é indicada mais do que uma tabela, a instrução SELECT produz um conjunto de registos cujos campos são os indicados na lista de campos. Os registos seleccionados correspondem aos tuplos do produto cartesiano das tabelas especificadas, isto é, cada registo é composto por um registo de cada uma dessas tabelas. 9

A cláusula FROM Sintaxe 3ª variante: SELECT fieldlist FROM tableexpression [ WHERE condition ] ; onde tableexpression especifica o(s) nome(s) da(s) tabela(s) que contém os campos e os registos seleccionados Exemplo: SELECT designaçãop, área, Produto.número, Trabalhador.número, nome, especialidade FROM Produto, Trabalhador; 0

A cláusula FROM designaçãop área Produto.número Trabalhador.número nome especialidade cenoura.5 João Dias hortelão feijão verde 6.5 João Dias hortelão batata.6 João Dias hortelão rosa João Dias hortelão cenoura.5 Luísa Ferreira jardineiro feijão verde 6.5 Luísa Ferreira jardineiro batata.6 Luísa Ferreira jardineiro rosa Luísa Ferreira jardineiro cenoura.5 3 Mário Horta motorista feijão verde 6.5 3 Mário Horta motorista batata.6 3 Mário Horta motorista rosa 3 Mário Horta motorista cenoura.5 Joana Garcia eng agrónomo feijão verde 6.5 Joana Garcia eng agrónomo batata.6 Joana Garcia eng agrónomo rosa Joana Garcia eng agrónomo

A cláusula FROM e a cláusula WHERE Quando a cláusula FROM refere mais do que uma tabela, a cláusula WHERE é frequentemente utilizada para seleccionar no resultado do produto cartesiano os tuplos que correspondem a registos em que o valor de uma chave estrangeira é igual ao valor de uma chave primária. Neste caso, a instrução SELECT produz um subconjunto do produto cartesiano das tabelas referidas na cláusula FROM e é usual dizer-se que se efectua um join ou cruzamento de tabelas.

A cláusula FROM e a cláusula WHERE Exemplo: SELECT designaçãop, área, Trabalhador.número, nome, especialidade FROM Produto, Trabalhador WHERE Produto.número=Trabalhador.número; Conjunto de registos seleccionados: designaçãop área número nome especialidade feijão verde 6.5 João Dias hortelão rosa Luísa Ferreira jardineiro cenoura.5 Joana Garcia eng agrónomo batata.6 Joana Garcia eng agrónomo 3

Eliminação de registos duplicados Algumas queries podem conduzir a conjuntos de registos com duplicações. Os registos duplicados podem ser eliminados recorrendo à utilização de DISTINCT. Sintaxe ª variante: SELECT DISTINCT fieldlist FROM tableexpression WHERE condition;

Eliminação de registos duplicados Exemplo: SELECT DISTINCT Trabalhador.número, nome, especialidade FROM Produto, Trabalhador WHERE Produto.número=Trabalhador.número; Conjunto de registos seleccionados: número Nome João Dias Luísa Ferreira Joana Garcia especialidade hortelão jardineiro eng agrónomo 5

Sub-query numa cláusula WHERE Na cláusula WHERE pode ainda figurar uma query, neste caso denominada sub-query, constituída por outra instrução SELECT. O resultado da sub-query define um conjunto de valores que são utilizados na condição especificada pela cláusula WHERE. 6

Sub-query numa cláusula WHERE Exemplo: SELECT nome, especialidade, designaçãop FROM Trabalhador, Produto WHERE Trabalhador.número=Produto.número AND Produto.códigoP IN (SELECT códigop FROM Venda); Conjunto de registos seleccionados: nome Joana Garcia João Dias especialidade eng agrónomo hortelão designaçãop cenoura feijão verde 7

A cláusula ORDER BY A cláusula ORDER BY apenas ordena os registos seleccionados pelos valores de um conjunto de campos especificado. Sintaxe 5ª variante: SELECT fieldlist FROM tableexpression WHERE condition ORDER BY field [ASC DESC ][, field [ASC DESC ][,...]]; onde ASC DESC especifica a ordem ascendente especifica a ordem descendente 8

Funções de agregação Estas funções possibilitam o resumo dos resultados de uma selecção de registos, como alternativa à selecção de registos. Podem ser utilizadas as funções SUM, AVG, MAX, MIN e COUNT. Exemplo: SELECT SUM (área) AS Área total, AVG (área) AS Área média, COUNT(*) AS Nº de produtos FROM Produto; 9

Funções de agregação Exemplo: SELECT SUM (área) AS Área total, AVG (área) AS Área média, COUNT(*) AS Nº de produtos FROM Produto; Conjunto de registos seleccionados: Área total.59999990636 Área média 3.6999997658 Nº de produtos 0

Cláusula GROUP BY A utilização de funções de agregação é feita frequentemente em conjunto com a cláusula GROUP BY. Esta especifica os conjuntos de registos seleccionados que são objecto da(s) função(ões). Quando é utilizada a cláusula GROUP BY, só podem ser indicados na cláusula SELECT os atributos incluídos na cláusula GROUP BY (para além daqueles que são objecto de uma função).

Cláusula GROUP BY Exemplo: SELECT códigop, COUNT(códigoP) AS Nº de vendas, SUM(quantidadeV) AS Quantidade Tot FROM Venda GROUP BY códigop; Conjunto de registos seleccionados: códigop 5 6 Nº de vendas Quantidade Tot 55.59999990636 550

Cláusula GROUP BY... HAVING A cláusula GROUP BY pode ser utilizada em conjunto com HAVING para restringir os registos seleccionados áqueles que verificam a condição especificada em HAVING. Exemplo: SELECT códigop, COUNT(códigoP) AS Nº de vendas, SUM(quantidadeV) AS Quantidade Tot FROM Venda WHERE datarecebim IS null GROUP BY códigop HAVING SUM(quantidadeV)>=50; 3

Cláusula GROUP BY Exemplo: SELECT códigop, COUNT(códigoP) AS Nº de vendas, SUM(quantidadeV) AS Quantidade Tot FROM Venda WHERE datarecebim IS Null GROUP BY códigop HAVING SUM(quantidadeV)>=50; Conjunto de registos seleccionados: códigop 6 Nº de vendas Quantidade Tot 550

Outras instruções SQL A linguagem SQL inclui instruções para definição do esquema de uma base de dados: CREATE TABLE ALTER TABLE INSERT DELETE UPDATE 5