sistemas de informaÇÃo sql

60
SISTEMAS DE INFORMAÇÃO SISTEMAS DE INFORMAÇÃO Curso Profissional Curso Profissional Técnico de Multimédia Técnico de Multimédia

Upload: abilio-silva

Post on 15-Feb-2015

28 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: SISTEMAS DE INFORMAÇÃO SQL

SISTEMAS DE INFORMAÇÃOSISTEMAS DE INFORMAÇÃO

Curso ProfissionalCurso Profissional

Técnico de MultimédiaTécnico de Multimédia

Page 2: SISTEMAS DE INFORMAÇÃO SQL

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 .

Page 3: SISTEMAS DE INFORMAÇÃO SQL

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;

Page 4: SISTEMAS DE INFORMAÇÃO SQL

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

Page 5: SISTEMAS DE INFORMAÇÃO SQL

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;

Page 6: SISTEMAS DE INFORMAÇÃO SQL

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.

Page 7: SISTEMAS DE INFORMAÇÃO SQL

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..

Page 8: SISTEMAS DE INFORMAÇÃO SQL

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.

Page 9: SISTEMAS DE INFORMAÇÃO SQL

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.

Page 10: SISTEMAS DE INFORMAÇÃO SQL

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

Page 11: SISTEMAS DE INFORMAÇÃO SQL

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.

Page 12: SISTEMAS DE INFORMAÇÃO SQL

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.

Page 13: SISTEMAS DE INFORMAÇÃO SQL

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.

Page 14: SISTEMAS DE INFORMAÇÃO SQL

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).).

Page 15: SISTEMAS DE INFORMAÇÃO SQL

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,

););

Page 16: SISTEMAS DE INFORMAÇÃO SQL

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).).

Page 17: SISTEMAS DE INFORMAÇÃO SQL

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;;

Page 18: SISTEMAS DE INFORMAÇÃO SQL

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 (;)

Page 19: SISTEMAS DE INFORMAÇÃO SQL

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

Page 20: SISTEMAS DE INFORMAÇÃO SQL

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

Page 21: SISTEMAS DE INFORMAÇÃO SQL

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

Page 22: SISTEMAS DE INFORMAÇÃO SQL

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>

Page 23: SISTEMAS DE INFORMAÇÃO SQL

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

Page 24: SISTEMAS DE INFORMAÇÃO SQL

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 **

Page 25: SISTEMAS DE INFORMAÇÃO SQL

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’

Page 26: SISTEMAS DE INFORMAÇÃO SQL

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’

Page 27: SISTEMAS DE INFORMAÇÃO SQL

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’

Page 28: SISTEMAS DE INFORMAÇÃO SQL

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*’

Page 29: SISTEMAS DE INFORMAÇÃO SQL

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*’

Page 30: SISTEMAS DE INFORMAÇÃO SQL

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

Page 31: SISTEMAS DE INFORMAÇÃO SQL

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’)

Page 32: SISTEMAS DE INFORMAÇÃO SQL

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>

Page 33: SISTEMAS DE INFORMAÇÃO SQL

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..

Page 34: SISTEMAS DE INFORMAÇÃO SQL

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

Page 35: SISTEMAS DE INFORMAÇÃO SQL

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>.

Page 36: SISTEMAS DE INFORMAÇÃO SQL

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.

Page 37: SISTEMAS DE INFORMAÇÃO SQL

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.

Page 38: SISTEMAS DE INFORMAÇÃO SQL

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

Page 39: SISTEMAS DE INFORMAÇÃO SQL

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)

Page 40: SISTEMAS DE INFORMAÇÃO SQL

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

Page 41: SISTEMAS DE INFORMAÇÃO SQL

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

Page 42: SISTEMAS DE INFORMAÇÃO SQL

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

Page 43: SISTEMAS DE INFORMAÇÃO SQL

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

Page 44: SISTEMAS DE INFORMAÇÃO SQL

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

Page 45: SISTEMAS DE INFORMAÇÃO SQL

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

Page 46: SISTEMAS DE INFORMAÇÃO SQL

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

Page 47: SISTEMAS DE INFORMAÇÃO SQL

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

Page 48: SISTEMAS DE INFORMAÇÃO SQL

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>

Page 49: SISTEMAS DE INFORMAÇÃO SQL

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.

Page 50: SISTEMAS DE INFORMAÇÃO SQL

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

Page 51: SISTEMAS DE INFORMAÇÃO SQL

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

Page 52: SISTEMAS DE INFORMAÇÃO SQL

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).

Page 53: SISTEMAS DE INFORMAÇÃO SQL

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”]

Page 54: SISTEMAS DE INFORMAÇÃO SQL

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

Page 55: SISTEMAS DE INFORMAÇÃO SQL

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)

Page 56: SISTEMAS DE INFORMAÇÃO SQL

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)

Page 57: SISTEMAS DE INFORMAÇÃO SQL

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)

Page 58: SISTEMAS DE INFORMAÇÃO SQL

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)

Page 59: SISTEMAS DE INFORMAÇÃO SQL

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)

Page 60: SISTEMAS DE INFORMAÇÃO SQL

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)