sistemas de informaÇÃo sql
Post on 15-Feb-2015
28 Views
Preview:
TRANSCRIPT
SISTEMAS DE INFORMAÇÃOSISTEMAS DE INFORMAÇÃO
Curso ProfissionalCurso Profissional
Técnico de MultimédiaTécnico de Multimédia
2
Sistemas de InformaçãoSistemas de Informação
Breve evolução histórica do SQLBreve evolução histórica do SQL
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- - SQLSQL - - Structured Query LanguageStructured Query Language, ou , ou Linguagem de Linguagem de Consulta EstruturadaConsulta Estruturada, é uma linguagem de pesquisa , é uma linguagem de pesquisa declarativa para base de dados relacional. Muitas das declarativa para base de dados relacional. Muitas das características originais do SQL foram inspiradas na álgebra características originais do SQL foram inspiradas na álgebra relacional .relacional .
3
Sistemas de InformaçãoSistemas de Informação
Breve evolução histórica do SQLBreve evolução histórica do SQL
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- - Para aceder a uma base de dados relacional, é necessário Para aceder a uma base de dados relacional, é necessário uma linguagem de programaçãouma linguagem de programação;;
- O - O SQLSQL é a linguagem de programação usada pela maioria das é a linguagem de programação usada pela maioria das bases de dados;bases de dados;
- A - A Structured Query LanguageStructured Query Language (SQL), ou (SQL), ou Linguagem Linguagem Estruturada de ConsultaEstruturada de Consulta, foi criada pela IBM no início dos anos , foi criada pela IBM no início dos anos 70;70;
4
Sistemas de InformaçãoSistemas de Informação
Breve evolução histórica do SQLBreve evolução histórica do SQL
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- A Linguagem - A Linguagem SQLSQL, tornou-se um padrão mundial em meados , tornou-se um padrão mundial em meados da década de 80;da década de 80;
- Esse padrão é regido actualmente pela norma ISO/IEC 9075 de - Esse padrão é regido actualmente pela norma ISO/IEC 9075 de 1999 e suas actualizações.1999 e suas actualizações.
- O - O SQLSQL foi revisto em 1992 e a esta versão foi dado o nome de foi revisto em 1992 e a esta versão foi dado o nome de SQL-92SQL-92. Foi revisto novamente em 1999 e 2003 para se tornar . Foi revisto novamente em 1999 e 2003 para se tornar SQL:1999SQL:1999 (SQL3) e (SQL3) e SQL:2003SQL:2003, respectivamente , respectivamente
5
Sistemas de InformaçãoSistemas de Informação
Características do SQLCaracterísticas do SQL
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- É uma linguagem de comandos que permite - É uma linguagem de comandos que permite DefinirDefinir, , ManipularManipular e e AdministrarAdministrar bases de dados Relacionais; bases de dados Relacionais;
- É uma linguagem baseada no inglês, e usa palavras como: - É uma linguagem baseada no inglês, e usa palavras como: SELECTSELECT, , INSERTINSERT, , DELETEDELETE como parte do seu conjunto de como parte do seu conjunto de comandos;comandos;
- É uma linguagem onde se especifica qual a informação que - É uma linguagem onde se especifica qual a informação que queremos e não como trazê-la;queremos e não como trazê-la;
6
Sistemas de InformaçãoSistemas de Informação
Características do SQLCaracterísticas do SQL
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- O - O SQLSQL oferece uma série de comandos para uma variedade de oferece uma série de comandos para uma variedade de tarefas diferentes, incluindo:tarefas diferentes, incluindo:
- selecção de dados;- selecção de dados;
- inserção, alteração, e eliminação de linhas em uma - inserção, alteração, e eliminação de linhas em uma tabela;tabela;
- criar, eliminar e alterar objectos de bases de dados;- criar, eliminar e alterar objectos de bases de dados;
- controlar o acesso aos dados e aos objectos de bases - controlar o acesso aos dados e aos objectos de bases de de dados;dados;
- garantir a consistência da base de dados;- garantir a consistência da base de dados;
- etc.- etc.
7
Sistemas de InformaçãoSistemas de Informação
Componentes do SQLComponentes do SQL
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- A Linguagem - A Linguagem SQLSQL é mais que uma linguagem de interrogação é mais que uma linguagem de interrogação estruturada. Inclui características para a definição da estrutura estruturada. Inclui características para a definição da estrutura de dados, para alterar os dados de uma base de dados, e para de dados, para alterar os dados de uma base de dados, e para especificar esquemas de segurança. A linguagem especificar esquemas de segurança. A linguagem SQLSQL possui possui três componentes principais: três componentes principais:
- - DDL – Data Definition LanguageDDL – Data Definition Language;;
- - DML – Data Manipulation LanguageDML – Data Manipulation Language;;
- - DCL – Data Control LanguageDCL – Data Control Language..
8
Sistemas de InformaçãoSistemas de Informação
Componentes do SQLComponentes do SQL
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Componentes principias do SQL:- Componentes principias do SQL:
- - DDLDDL – Data Definition Language (Linguagem de – Data Definition Language (Linguagem de definição definição de dados) – descreve a estrutura do BD.de dados) – descreve a estrutura do BD.
9
Sistemas de InformaçãoSistemas de Informação
Componentes do SQLComponentes do SQL
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Componentes principias do SQL:- Componentes principias do SQL:
- - DMLDML - Data Manipulation Language (Linguagem de - Data Manipulation Language (Linguagem de manipulação de dados) – permite recuperar e alterar os manipulação de dados) – permite recuperar e alterar os dados dados do BD. Pode ser embutida em outra linguagem de do BD. Pode ser embutida em outra linguagem de programação.programação.
10
Sistemas de InformaçãoSistemas de Informação
Componentes do SQLComponentes do SQL
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Componentes principias do SQL:- Componentes principias do SQL:
- - DCLDCL – Data Control Language (Linguagem de controlo – Data Control Language (Linguagem de controlo de de dados)dados)
SQL = DML + DDL + DCL
11
Sistemas de InformaçãoSistemas de Informação
Componentes do SQLComponentes do SQL
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Numa base de dados relacional, toda a informação está - Numa base de dados relacional, toda a informação está logicamente organizada em logicamente organizada em tabelastabelas..
- Podemos considerar a existência de - Podemos considerar a existência de dois tipos de tabelas dois tipos de tabelas numa base de dadosnuma base de dados::
• • as as tabelas basetabelas base que efectivamente estão armazenadas que efectivamente estão armazenadas num suporte físico da base de dados;num suporte físico da base de dados;
• • as as tabelas virtuaistabelas virtuais que só existem em resultado da que só existem em resultado da execução de um conjunto de comandos de execução de um conjunto de comandos de consultaconsulta, , executados sobre as tabelas base.executados sobre as tabelas base.
12
Sistemas de InformaçãoSistemas de Informação
Componentes do SQLComponentes do SQL
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- A palavra inglesa - A palavra inglesa Querie (query)Querie (query) designa uma designa uma consulta à consulta à base de dadosbase de dados e consiste na execução de uma ou mais e consiste na execução de uma ou mais operações sobre tabelas.operações sobre tabelas.
- As - As QueriesQueries ou consultas podem ser executadas sobre as ou consultas podem ser executadas sobre as tabelas basetabelas base ou sobre as ou sobre as tabelas virtuaistabelas virtuais que resultam de que resultam de outras consultas.outras consultas.
13
Sistemas de InformaçãoSistemas de Informação
Componentes do SQLComponentes do SQL
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Do ponto de vista lógico, o resultado de uma consulta (- Do ponto de vista lógico, o resultado de uma consulta (queriequerie) ) é uma tabela. é uma tabela.
- A diferença entre uma - A diferença entre uma tabela basetabela base e uma e uma tabela virtualtabela virtual é é basicamente a seguinte: basicamente a seguinte:
. as . as tabelas basetabelas base existem fisicamente como estruturas existem fisicamente como estruturas de de dados; dados;
. as . as tabelas virtuaistabelas virtuais (resultados de (resultados de queriesqueries) existem ) existem apenas como um apenas como um conjunto de comandosconjunto de comandos que permitem que permitem extrair informação da base de dados.extrair informação da base de dados.
14
Sistemas de InformaçãoSistemas de Informação
Comandos do SQLComandos do SQL
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- A- A Linguagem de Definição de DadosLinguagem de Definição de Dados (DDL), contém (DDL), contém comandos que permitem por exemplo:comandos que permitem por exemplo:
- Criar uma base de dados (- Criar uma base de dados (CREATE DATABASECREATE DATABASE););
- Criar uma nova tabela (- Criar uma nova tabela (CREATE TABLECREATE TABLE););
- Alterar uma tabela (- Alterar uma tabela (ALTER TABLEALTER TABLE););
- Eliminar uma tabela (- Eliminar uma tabela (DROP TABLEDROP TABLE););
- Eliminar uma base de dados (- Eliminar uma base de dados (DROP DATABASEDROP DATABASE).).
15
Sistemas de InformaçãoSistemas de Informação
Comandos do SQLComandos do SQL
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Exemplos:- Exemplos:
Linguagem de Definição de DadosLinguagem de Definição de Dados (DDL) (DDL)
CREATE tableCREATE table "CATEGORIAS_PRODUTOS" ("CATEGORIAS_PRODUTOS" (
"CAT_CODIGO" NUMBER NOT NULL Primary Key,"CAT_CODIGO" NUMBER NOT NULL Primary Key,
"CAT_DESCRICAO" VARCHAR2(100) NOT NULL,"CAT_DESCRICAO" VARCHAR2(100) NOT NULL,
););
16
Sistemas de InformaçãoSistemas de Informação
Comandos do SQLComandos do SQL
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- A- A Linguagem de Manipulação de DadosLinguagem de Manipulação de Dados (DML), contém (DML), contém comandos que permitem efectuar os seguintes tipos de comandos que permitem efectuar os seguintes tipos de operações:operações:
- Inserir novos registos numa tabela (- Inserir novos registos numa tabela (INSERT INTOINSERT INTO););
- Apagar registos numa tabela (- Apagar registos numa tabela (DELETE FROMDELETE FROM););
- Alterar dados numa tabela (- Alterar dados numa tabela (UPDATEUPDATE););
- Consultar uma Base de Dados (- Consultar uma Base de Dados (SELECTSELECT).).
17
Sistemas de InformaçãoSistemas de Informação
Comandos do SQLComandos do SQL
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Exemplos:- Exemplos:
Linguagem de Manipulação de DadosLinguagem de Manipulação de Dados (DML) (DML)
SELECTSELECT CLI_NOME, CLI_ENDERECOCLI_NOME, CLI_ENDERECO
FROMFROM CLIENTESCLIENTES;;
18
Sistemas de InformaçãoSistemas de Informação
Comandos do SQLComandos do SQL
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Os comandos podem ser escritos em mais de uma linha;- Os comandos podem ser escritos em mais de uma linha;
- Cláusulas diferentes são colocadas usualmente em linhas - Cláusulas diferentes são colocadas usualmente em linhas
diferentes;diferentes;
- Podem ser usadas tabulações;- Podem ser usadas tabulações;
- Comandos podem ser escritos em letras maiúsculas e/ou - Comandos podem ser escritos em letras maiúsculas e/ou
minúsculas;minúsculas;
- Finaliza-se a - Finaliza-se a queryquery com o sinal de ponto e vírgula (;) com o sinal de ponto e vírgula (;)
19
Sistemas de InformaçãoSistemas de Informação
Noções elementares do SQLNoções elementares do SQL
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Ao - Ao programar em SQLprogramar em SQL, utilizam-se os seguintes operadores , utilizam-se os seguintes operadores aritméticos:aritméticos:
• • Soma +Soma +
• • Subtracção -Subtracção -
• • Multiplicação *Multiplicação *
• • Divisão /Divisão /
- Os operadores lógicos são: - Os operadores lógicos são:
• • ANDAND
• • OR OR
• • NOTNOT
20
Sistemas de InformaçãoSistemas de Informação
Noções elementares do SQLNoções elementares do SQL
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- - PredicadosPredicados – Um predicado é uma condição que pode ser – Um predicado é uma condição que pode ser realizada para produzir um valor verdadeiro, falso ou realizada para produzir um valor verdadeiro, falso ou desconhecido. São eles:desconhecido. São eles:
• • Comparação (=, <, >, <>, <=, =>)Comparação (=, <, >, <>, <=, =>)
• • Entre (... BETWEEN ... AND ..., IN, NOT IN)Entre (... BETWEEN ... AND ..., IN, NOT IN)
• • LIKELIKE
• • NULLNULL
• • Quantificadores (ALL, SOME, ANY)Quantificadores (ALL, SOME, ANY)
• • EXISTS, NOT EXISTSEXISTS, NOT EXISTS
21
Sistemas de InformaçãoSistemas de Informação
Noções elementares do SQLNoções elementares do SQL
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- As - As cláusulascláusulas são expressões realizadas em tabelas que se são expressões realizadas em tabelas que se usam para derivar tabelas, tais como:usam para derivar tabelas, tais como:
• • FROMFROM
• • WHEREWHERE
• • GROUP BYGROUP BY
• • HAVINGHAVING
• • ORDER BYORDER BY
22
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- A - A Linguagem de Manipulação de DadosLinguagem de Manipulação de Dados (DML) é utilizada (DML) é utilizada para efectuar operações de para efectuar operações de selecçãoselecção, , ordenaçãoordenação, , cálculocálculo de de informação guardada em tabelas, entre outras.informação guardada em tabelas, entre outras.
- O comando - O comando SELECT - SELECT - Permite extrair informação de uma Base Permite extrair informação de uma Base de Dados (DB – Data Base).de Dados (DB – Data Base).
- Sintaxe:- Sintaxe:
SELECTSELECT <lista_campos> <lista_campos>
FROMFROM <lista_tabelas> <lista_tabelas>
23
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Exemplos:- Exemplos:
• • Consulta todos os autores da tabela Autores:Consulta todos os autores da tabela Autores:
SELECTSELECT Autor Autor FROMFROM Autores Autores
• • Consulta todos os campos da tabela Autores:Consulta todos os campos da tabela Autores:
SELECTSELECT * * FROMFROM Autores Autores
• • Consulta todos os autores visualizando o dobro da sua Consulta todos os autores visualizando o dobro da sua idade:idade:
SELECTSELECT Autor, Idade * 2 Autor, Idade * 2 ASAS [Idades] [Idades]
FROMFROM Autores Autores
24
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- A cláusula - A cláusula WHEREWHERE, permite estabelecer condições entre , permite estabelecer condições entre campos da tabela(s) ou até mesmo envolvendo input’s digitados campos da tabela(s) ou até mesmo envolvendo input’s digitados pelo utilizador.pelo utilizador.
- Sintaxe:- Sintaxe:
SELECTSELECT <lista_campos> <lista_campos>
FROMFROM <lista_tabelas> <lista_tabelas>
[ [ WHEREWHERE <critérios_de_selecção> ] <critérios_de_selecção> ]
- as listas são separadas por vírgulas- as listas são separadas por vírgulas
- se desejarmos seleccionar todos os campos usamos - se desejarmos seleccionar todos os campos usamos **
25
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Exemplos:- Exemplos:
• • Uma consulta à tabela no sentido de obter apenas os Uma consulta à tabela no sentido de obter apenas os elementos relativos às editoras situadas na cidade de elementos relativos às editoras situadas na cidade de Lisboa:Lisboa:
SELECTSELECT Pubid, Nome AS [Nome Editora], Pubid, Nome AS [Nome Editora], Morada, Morada, Cod_Postal, Cidade, Cod_Postal, Cidade, TelefoneTelefone
FROMFROM Editoras Editoras
WHEREWHERE Cidade=’Lisboa’ Cidade=’Lisboa’
26
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Exemplos:- Exemplos:
• • Consulta o nome e morada de todas as editoras da Consulta o nome e morada de todas as editoras da cidade de Lisboa:cidade de Lisboa:
SELECTSELECT Nome, Morada Nome, Morada
FROMFROM Editoras Editoras
WHEREWHERE Cidade=’Lisboa’ Cidade=’Lisboa’
27
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Exemplos:- Exemplos:
• • Consulta o Nome, Região e Cidade quando a região Consulta o Nome, Região e Cidade quando a região toma toma o valor ‘CA’ e a cidade é Lisboa:o valor ‘CA’ e a cidade é Lisboa:
SELECTSELECT Nome, Região, Cidade Nome, Região, Cidade
FROMFROM Editoras Editoras
WHEREWHERE Região=’CA’ Região=’CA’ ANDAND Cidade=’Lisboa’ Cidade=’Lisboa’
28
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- A cláusula - A cláusula WHERE - LIKEWHERE - LIKE, destina-se a comparar strings com , destina-se a comparar strings com padrão.padrão.
- Exemplo:- Exemplo:
• • Consulta os nomes de todos os autores que tenham Consulta os nomes de todos os autores que tenham Lopes Lopes no nome:no nome:
SELECTSELECT Autor Autor
FROMFROM Autores Autores
WHEREWHERE Autor Autor LIKELIKE ‘*Lopes*’ ‘*Lopes*’
29
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Exemplo:- Exemplo:
• • Consulta o(s) código(s) e descrição(ões) do(s) Consulta o(s) código(s) e descrição(ões) do(s) produto(s) produto(s) quando na descrição está envolvida a palavra quando na descrição está envolvida a palavra sumos:sumos:
SELECTSELECT Prod_Cod, Prod_Descrição Prod_Cod, Prod_Descrição
FROMFROM Produtos Produtos
WHEREWHERE Prod_Descrição Prod_Descrição LIKELIKE ‘*sumos*’ ‘*sumos*’
30
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- A cláusula - A cláusula WHERE - BETWEEN … ANDWHERE - BETWEEN … AND, destina-se a , destina-se a
especificar um intervalo de valoresespecificar um intervalo de valores.
- Exemplo:- Exemplo:
• • Consulta todos os nomes e cidades onde o campo Consulta todos os nomes e cidades onde o campo Pubid Pubid toma valores entre 10 e 20:toma valores entre 10 e 20:
SELECTSELECT Nome, Cidade Nome, Cidade
FROMFROM Editoras Editoras
WHEREWHERE Pubid Pubid BETWEENBETWEEN 10 10 ANDAND 20 20
31
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- A cláusula - A cláusula WHERE - INWHERE - IN, destina-se a especificar conjuntos de , destina-se a especificar conjuntos de valores.valores.
- Exemplo:- Exemplo:
• • Consulta todos os nomes e cidades onde o campo Consulta todos os nomes e cidades onde o campo região região toma valores no conjunto (‘NY’,’CA’, ’AK’):toma valores no conjunto (‘NY’,’CA’, ’AK’):
SELECTSELECT Nome, Cidade Nome, Cidade
FROMFROM Editoras Editoras
WHEREWHERE Região Região ININ (‘NY’, ’CA’, ’AK’) (‘NY’, ’CA’, ’AK’)
32
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- A cláusula - A cláusula WHERE WHERE na “ligação” de duas ou mais tabelas.na “ligação” de duas ou mais tabelas.
- Sintaxe:- Sintaxe:
SELECTSELECT <tabela1.colunaA>, <tabela2.colunaA> <tabela1.colunaA>, <tabela2.colunaA>
FROMFROM <tabela1>, <tabela2> <tabela1>, <tabela2>
WHEREWHERE <tabela1.colunaA> <tabela1.colunaA> == <tabela2.colunaA> <tabela2.colunaA>
33
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Exemplo:- Exemplo:
• • Consulta todas as linhas da tabela Títulos e da tabela Consulta todas as linhas da tabela Títulos e da tabela Autores com o mesmo campo Au_ID. Se existir algum título Autores com o mesmo campo Au_ID. Se existir algum título para o qual não foi introduzido código de um Autor, o para o qual não foi introduzido código de um Autor, o mesmo mesmo não aparecerá (se o código do autor não for chave não aparecerá (se o código do autor não for chave primária).primária).
SELECTSELECT Titulos.Titulo, Autores.Autor Titulos.Titulo, Autores.Autor
FROMFROM Titulos, Autores Titulos, Autores
WHEREWHERE Titulos.Au_ID Titulos.Au_ID == Autores.Au_ID Autores.Au_ID
• • Esta operação designa-se por Esta operação designa-se por INNER JOININNER JOIN..
34
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- A cláusula - A cláusula ASAS,, permite alterar o cabeçalho (titulo) que irá permite alterar o cabeçalho (titulo) que irá aparecer na listagem obtida.aparecer na listagem obtida.
- Exemplo:- Exemplo:
SELECTSELECT Titulos.Titulo AS [Titulo do Livro], Autores.Autor Titulos.Titulo AS [Titulo do Livro], Autores.Autor ASAS [Autor do Livro] [Autor do Livro]
FROMFROM Titulos.Autores Titulos.Autores
WHEREWHERE Titulos.Au_ID Titulos.Au_ID == Autores.Au_ID Autores.Au_ID
35
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Funções agregadas à cláusula - Funções agregadas à cláusula ASAS::
• • COUNTCOUNT(<nome_campo>) - Devolve o (<nome_campo>) - Devolve o número de linhasnúmero de linhas em que em que o campo <nome_campo> não é o campo <nome_campo> não é
nulo.nulo.
• • MAXMAX(<nome_campo>) - Devolve o (<nome_campo>) - Devolve o maiormaior valor para o campo valor para o campo <nome_campo>.<nome_campo>.
• • MINMIN(<nome_campo>) - Devolve o (<nome_campo>) - Devolve o menormenor valor para o campo valor para o campo <nome_campo>.<nome_campo>.
36
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Funções agregadas à cláusula - Funções agregadas à cláusula ASAS::
• • SUMSUM(<nome_campo>) - Devolve a (<nome_campo>) - Devolve a somasoma dos conteúdos do dos conteúdos do campo <nome_campo>.campo <nome_campo>.
• • AVGAVG(<nome_campo>) - Devolve a (<nome_campo>) - Devolve a médiamédia dos conteúdos do dos conteúdos do campo <nome_campo>.campo <nome_campo>.
• • FIRSTFIRST(<nome_campo>) - Devolve o (<nome_campo>) - Devolve o valor do primeiro registovalor do primeiro registo da tabela ou Querie.da tabela ou Querie.
• • LASTLAST(<nome_campo>) - Devolve o (<nome_campo>) - Devolve o valor do último registovalor do último registo da da tabela ou Querie.tabela ou Querie.
37
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Exemplos de funções agregadas à cláusula - Exemplos de funções agregadas à cláusula ASAS::
• • Devolve o número de elementos da tabela Produtos:Devolve o número de elementos da tabela Produtos:
SELECTSELECT COUNTCOUNT(Prod_Codigo) (Prod_Codigo) ASAS [Total] [Total]
FROMFROM Produtos Produtos
Se não for mencionado o Nome da coluna [Total], é por Se não for mencionado o Nome da coluna [Total], é por defeito Expr1000. Como tal, é conveniente atribuir um título à defeito Expr1000. Como tal, é conveniente atribuir um título à coluna.coluna.
38
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Exemplos de funções agregadas à cláusula - Exemplos de funções agregadas à cláusula ASAS::
• • Devolve o menor, o maior e o preço médio dos livros:Devolve o menor, o maior e o preço médio dos livros:
SELECTSELECT COUNTCOUNT(Unidades) (Unidades) ASAS [Nº Elementos], [Nº Elementos],
MINMIN(Preço_Unidades) (Preço_Unidades) ASAS Min, Min, MAXMAX(Preço_Unidades) (Preço_Unidades) ASAS Max, Max, AVGAVG(Preço_Unidades) (Preço_Unidades) ASAS Média Média
FROMFROM Preços_Livros Preços_Livros
39
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Exemplos de funções agregadas à cláusula - Exemplos de funções agregadas à cláusula ASAS::
• • Consulta os livros com menor preçoConsulta os livros com menor preço
SELECTSELECT titulo, anopublicação, preço titulo, anopublicação, preço
FROMFROM titulos, preços titulos, preços
WHEREWHERE titulos.codpreco = precos.codpreco titulos.codpreco = precos.codpreco ANDAND
Preco = (Preco = (SELECTSELECT MinMin(preco)(preco)
FROMFROM precos) precos)
40
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- A cláusula - A cláusula INNER JOININNER JOIN, estabelece ligação entre duas ou mais estabelece ligação entre duas ou mais tabelas através de campos chave.tabelas através de campos chave.
- Exemplo:- Exemplo:
SELECTSELECT titulos.titulo, autores.autor titulos.titulo, autores.autor
FROMFROM titulos, autores.titulos titulos, autores.titulos INNER JOININNER JOIN autores autores ONON titulos.au_ID titulos.au_ID = autores.au_ID= autores.au_ID
41
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- A cláusula - A cláusula INNER JOININNER JOIN, estabelece ligação entre duas ou mais estabelece ligação entre duas ou mais tabelas através de campos chave.tabelas através de campos chave.
- Exemplo: Poderíamos escrever o mesmo comando com uma - Exemplo: Poderíamos escrever o mesmo comando com uma cláusula cláusula WHEREWHERE (talvez mais prático). (talvez mais prático).
SELECTSELECT titulos.titulo, titulos.ISBN, autores.autor, editoras.nome titulos.titulo, titulos.ISBN, autores.autor, editoras.nome
FROMFROM titulos, autores, editoras titulos, autores, editoras
WHEREWHERE editoras.editID editoras.editID = = titulos.editID AND titulos.au_ID titulos.editID AND titulos.au_ID = = autores.au_IDautores.au_ID
42
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- A cláusula - A cláusula LEFT JOINLEFT JOIN, inclui todos os registos da primeira tabela , inclui todos os registos da primeira tabela (à esquerda), mesmo que não exista nenhuma relação com a (à esquerda), mesmo que não exista nenhuma relação com a segunda tabela (à direita).segunda tabela (à direita).
- Exemplo:- Exemplo:
• • Listar todos os títulos, mesmo os que não tenham Listar todos os títulos, mesmo os que não tenham editoras:editoras:
SELECTSELECT titulos.titulo, editoras.nome titulos.titulo, editoras.nome
FROMFROM titulos, editoras titulos, editoras
titulos titulos LEFT JOINLEFT JOIN editoras editoras ONON titulos.editID titulos.editID == editoras.auIDeditoras.auID
43
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- A cláusula - A cláusula RIGHT JOINRIGHT JOIN, inclui todos os registos da segunda , inclui todos os registos da segunda tabela (à direita), mesmo que não exista nenhuma relação com a tabela (à direita), mesmo que não exista nenhuma relação com a primeira tabela (à esquerda).primeira tabela (à esquerda).
- Exemplo:- Exemplo:
• • Listar todas as editoras, mesmo que não tenham nenhum Listar todas as editoras, mesmo que não tenham nenhum titulo publicado:titulo publicado:
SELECTSELECT titulos.titulo, editoras.nome titulos.titulo, editoras.nome
FROMFROM titulos, editoras titulos, editoras
titulos titulos RIGHT JOIN RIGHT JOIN editoras editoras ONON titulos.editID titulos.editID == editoras.auIDeditoras.auID
44
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- A cláusula - A cláusula ORDER BYORDER BY, permite ordenar a listagem pelo campo , permite ordenar a listagem pelo campo referido, por ordem crescente.referido, por ordem crescente.
- Exemplo:- Exemplo:
• • ordena a listagem pelo campo autor, por ordem ordena a listagem pelo campo autor, por ordem crescente:crescente:
SELECTSELECT au_ID, autor au_ID, autor
FROMFROM autores autores
ORDER BYORDER BY autor autor
45
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Exemplo:- Exemplo:
• • Consulta as regiões e cidades por ordem descendente e Consulta as regiões e cidades por ordem descendente e ascendente respectivamente:ascendente respectivamente:
SELECTSELECT regiao, cidade regiao, cidade
FROMFROM editoras editoras
ORDER BYORDER BY regiao regiao DESCDESC, cidade , cidade ASCASC
46
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- As cláusulas - As cláusulas TOP nTOP n e e TOP n PERCENTTOP n PERCENT - Estas cláusulas - Estas cláusulas servem para limitar o número de registos num conjunto de servem para limitar o número de registos num conjunto de resultados.resultados.
- - TOP nTOP n – Devolve os primeiros n registos. Quando utilizamos a – Devolve os primeiros n registos. Quando utilizamos a cláusula TOP por vezes recorre-se ao uso da cláusula ORDER BY.cláusula TOP por vezes recorre-se ao uso da cláusula ORDER BY.
SELECTSELECT TOPTOP 5 5 * *
FROMFROM precos_livros precos_livros
ORDER BYORDER BY unidades unidades DESCDESC
47
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- As cláusulas - As cláusulas TOP nTOP n e e TOP n PERCENTTOP n PERCENT - Estas cláusulas - Estas cláusulas servem para limitar o número de registos num conjunto de servem para limitar o número de registos num conjunto de resultados.resultados.
- - TOP n PERCENTTOP n PERCENT – Devolve os primeiros n por centos de – Devolve os primeiros n por centos de registos.registos.
SELECT TOPSELECT TOP 5 5 PERCENTPERCENT * *
FROMFROM preco_livros preco_livros
ORDER BYORDER BY unidades unidades DESCDESC
48
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- A cláusula - A cláusula GROUP BY GROUP BY - Agrupa os resultados das queries - Agrupa os resultados das queries segundo um determinando critério.segundo um determinando critério.
- Sintaxe:- Sintaxe:
GROUP BYGROUP BY <coluna1>, <coluna2>, ..., <colunaN> <coluna1>, <coluna2>, ..., <colunaN>
49
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Exemplo:- Exemplo:
• • Consulta o número de elementos da tabela Produtos para cada Consulta o número de elementos da tabela Produtos para cada categoria de Produto:categoria de Produto:
SELECTSELECT prod_categoria prod_categoria ASAS Categoria, Categoria, COUNTCOUNT(prod_categoria) (prod_categoria) ASAS [Nº Elementos] [Nº Elementos]
FROMFROM Produtos Produtos
GROUP BYGROUP BY prod_categoria prod_categoria
A cláusula A cláusula GROUP BYGROUP BY especifica o modo como queremos agrupar especifica o modo como queremos agrupar o resultado da função agregada.o resultado da função agregada.
50
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Exemplo:- Exemplo:
• • Consulta o menor preço, maior preço e preço médio dos Consulta o menor preço, maior preço e preço médio dos produtos por categoria:produtos por categoria:
SELECTSELECT prod_categoria prod_categoria ASAS Categoria, Categoria,
COUNTCOUNT(prod_categoria) (prod_categoria) ASAS [Nº Elementos], [Nº Elementos],
MINMIN(prod_preco) (prod_preco) ASAS Min, Min,
MAXMAX(prod_preco) (prod_preco) ASAS Max, Max,
AVGAVG(prod_preco) (prod_preco) AS AS MédiaMédia
FROMFROM Produtos Produtos
GROUP BYGROUP BY prod_categoria prod_categoria
51
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Exemplo:- Exemplo:
• • Consulta o nome dos autores e o número de títulos Consulta o nome dos autores e o número de títulos publicados pelos mesmos:publicados pelos mesmos:
SELECTSELECT autores.autor, autores.autor, COUNTCOUNT(titulos.titulo)(titulos.titulo)
FROMFROM titulos, autores titulos, autores
WHEREWHERE titulos.au_ID titulos.au_ID = = autores.au_IDautores.au_ID
GROUP BYGROUP BY autores.autor autores.autor
52
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- A cláusula - A cláusula HAVING HAVING – Utiliza-se para aplicar um filtro ao resultado – Utiliza-se para aplicar um filtro ao resultado de um querie ao contrário dacláusula WHERE que aplica um filtro de um querie ao contrário dacláusula WHERE que aplica um filtro a toda(s) a(s) tabela(s) envolvida(s).a toda(s) a(s) tabela(s) envolvida(s).
53
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Exemplo:Vejamos a mesma querie com a aplicação de um filtro, - Exemplo:Vejamos a mesma querie com a aplicação de um filtro, para limitar as categorias de produtos a bolachas e aperitivos.para limitar as categorias de produtos a bolachas e aperitivos.
SELECTSELECT prod_categoria prod_categoria ASAS Categoria, Categoria,
COUNTCOUNT(prod_categoria) (prod_categoria) ASAS [Nº Elementos], [Nº Elementos],
MINMIN(prod_preco) (prod_preco) ASAS Min, Min,
MAXMAX(prod_preco) (prod_preco) ASAS Max, Max,
AVGAVG(prod_preco) (prod_preco) ASAS Média Média
FROMFROM Produtos Produtos
GROUP BYGROUP BY prod_categoria prod_categoria
HAVINGHAVING prod_categoria prod_categoria ININ [“Bolachas”,”Aperitivos”] [“Bolachas”,”Aperitivos”]
54
Sistemas de InformaçãoSistemas de Informação
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Exemplo: - Exemplo:
• • Consulta os autores que escrevam mais de um tituloConsulta os autores que escrevam mais de um titulo
SELECTSELECT autores.autor, autores.autor, COUNTCOUNT(titulos.titulo)(titulos.titulo)
FROMFROM titulos, autores titulos, autores
WHEREWHERE titulos.au_ID titulos.au_ID == autores.au_ID autores.au_ID
GROUP BYGROUP BY autores.autor autores.autor
HAVINGHAVING COUNTCOUNT(titulos.titulo)(titulos.titulo)>>11
55
Sistemas de InformaçãoSistemas de Informação
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- O predicado - O predicado ALLALL – Se não incluir um dos predicados referidos, – Se não incluir um dos predicados referidos, ALLALL é assumido e todos os registos que verificam as condições é assumido e todos os registos que verificam as condições são devolvidos.são devolvidos.
- Exemplo:- Exemplo:
SELECTSELECT ALLALL
FROMFROM titulos, autores titulos, autores
WHEREWHERE editoras.editID editoras.editID == titulos.editID titulos.editID
Linguagem de Manipulação de Dados (DML)Linguagem de Manipulação de Dados (DML)
56
Sistemas de InformaçãoSistemas de Informação
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- O predicado - O predicado ALLALL – Se não incluir um dos predicados referidos, – Se não incluir um dos predicados referidos, ALLALL é assumido e todos os registos que verificam as condições é assumido e todos os registos que verificam as condições são devolvidos.são devolvidos.
- Exemplo equivalente ao anterior:- Exemplo equivalente ao anterior:
SELECTSELECT **
FROMFROM titulos, autores titulos, autores
WHEREWHERE editoras.editID editoras.editID = = titulos.editIDtitulos.editID
Linguagem de Manipulação de Dados (DML) Linguagem de Manipulação de Dados (DML)
57
Sistemas de InformaçãoSistemas de Informação
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- O predicado - O predicado DISTINCTDISTINCT - Esta cláusula omite todos os registos - Esta cláusula omite todos os registos que contêm dados duplicados nos campos seleccionados. Por que contêm dados duplicados nos campos seleccionados. Por outras palavras, se a querie contiver um campo com o mesmo outras palavras, se a querie contiver um campo com o mesmo valor em mais do que uma linha, a cláusula valor em mais do que uma linha, a cláusula DISTINCTDISTINCT elimina elimina todos os duplicados.todos os duplicados.
- Exemplo:- Exemplo:
• • Lista as editoras que têm pelo menos um titulo publicado:Lista as editoras que têm pelo menos um titulo publicado:
SELECTSELECT editoras.nome editoras.nome
FROMFROM titulos, editoras titulos, editoras
WHEREWHERE editoras.editID editoras.editID == titulos.edit.ID titulos.edit.ID
Linguagem de Manipulação de Dados (DML) Linguagem de Manipulação de Dados (DML)
58
Sistemas de InformaçãoSistemas de Informação
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Exemplo:- Exemplo:
• • Este querie devolve tantas linhas quantos os títulos que Este querie devolve tantas linhas quantos os títulos que existem na tabela de títulos. Para eliminar a repetição do existem na tabela de títulos. Para eliminar a repetição do nome das editoras, usa-se:nome das editoras, usa-se:
SELECTSELECT DISTINCTDISTINCT editoras.nome editoras.nome
FROMFROM titulos, editoras titulos, editoras
WHEREWHERE editoras.editID editoras.editID == titulos.edit.ID titulos.edit.ID
Linguagem de Manipulação de Dados (DML) Linguagem de Manipulação de Dados (DML)
59
Sistemas de InformaçãoSistemas de Informação
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- O predicado - O predicado DISTINCTROW DISTINCTROW - Omite dados baseados em - Omite dados baseados em registos duplicados, mas não referentes a campos duplicados.registos duplicados, mas não referentes a campos duplicados.
- Exemplo:- Exemplo:
SELECTSELECT DISTINCTROWDISTINCTROW titulos.titulo, titulos.anoedicao, titulos.titulo, titulos.anoedicao, autores.autor, editoras.nome autores.autor, editoras.nome ASAS Editora Editora
FROMFROM editoras, titulos.(editoras editoras, titulos.(editoras RIGHT JOINRIGHT JOIN titulos titulos ONON editoras.editID editoras.editID == titulos.editID) titulos.editID) LEFT JOINLEFT JOIN autores autores ONON titulos.au_ID titulos.au_ID == autores.au_ID autores.au_ID
WHEREWHERE (editoras.nome (editoras.nome = = [Insira Nome]) [Insira Nome]) ORDER BYORDER BY titulos.titulo titulos.titulo
Linguagem de Manipulação de Dados (DML) Linguagem de Manipulação de Dados (DML)
60
Sistemas de InformaçãoSistemas de Informação
Módulo 6 – Programação SQLMódulo 6 – Programação SQL
- Exemplo:- Exemplo:
WHEREWHERE (editoras.nome (editoras.nome = = [Insira Nome]) [Insira Nome]) ORDER BYORDER BY titulos.titulo titulos.titulo
Observa que no exemplo anterior existe [Insira Nome]. Isto Observa que no exemplo anterior existe [Insira Nome]. Isto significa que é solicitado ao utilizador que insira um nome para significa que é solicitado ao utilizador que insira um nome para depois efectuar-se a comparação. Deste modo, quando se utiliza depois efectuar-se a comparação. Deste modo, quando se utiliza uma string entre parêntesis rectos que não seja o nome de um uma string entre parêntesis rectos que não seja o nome de um campo, o SQL solicita ao utilizador que insira um valor (string ou campo, o SQL solicita ao utilizador que insira um valor (string ou não) pelo teclado.não) pelo teclado.
Linguagem de Manipulação de Dados (DML) Linguagem de Manipulação de Dados (DML)
top related