SlideShare uma empresa Scribd logo
Base de Dados 1
Hélio Martins
Agenda
Introdução ao SQL
Famílias do SQL
Exercícios
Introdução ao SQL
Apareceu no início da década de 1970
Desenvolvida por um laboratório de Investigação da
IBM
Em 1986 surgiu uma normalização da linguagem
SQL, pela American National Standards Institute,
continuam a existir pequenas diferenças na
implementação desta linguagem comercial.
Linguagem SQL
Criar, Alterar, e Remover todas as componentes de
uma Base de Dados, como tabelas, views, índices,
etc.
Inserir, Alterar e Apagar dados.
Interrogar a base de dados – Fazer Consultas.
Controlar o acesso dos utilizadores à base de dados e
as operações a que cada um deles pode ter acesso.
Obter a garantia da consistência e integridade dos
dados.
Familias do SQL
DML – Data Manipulation Language – Permite
manipular os dados – Inserir, Apagar, Seleccionar e
actualizar.
DDL – Data Definition Language – Utilizada para
criar, apagar e alterar objectos como tabelas,
consultas (views).
DCL – Data Control Language – Permite controlar a
segurança de dados definindo quem pode aceder
cada operação em cada objecto.
Famílias do SQL
DML

DDL

DCL

SELECT

CREATE

GRANT

INSERT

ALTER

REVOKE

UPDATE

DROP

DENY

DELETE
…

A

sintaxe

básica

de

comando DDL é:

A

sintaxe

básica

de

um

comando DCL é:

CREATE <tipo> <nome><definição>

CREATE TABLE

um

GRANT <operação> ON <nome do

Clientes (Nome objeto> TO <usuário>

CHAR(30), Telefone CHAR(8))

GRANT UPDATE ON Clientes TO
João
Comando SELECT
A interrogação de qualquer base de dados relacional fazse sempre utilizando o comando SELECT.
A sintaxe é a seguinte:
SELECT campo1, campo2,…, campoN
FROM tabela1, …, tabela n
[WHERE condição]
[GROUP BY …]
[HAVING …]
[ORDER BY …]
Os parêntesis retos indicam que essa componente é facultativo
Comando SELECT
Exemplos
código
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013

local
Tarrafal
Assomada
Praia
Ribeira Grande
Tarrafal
Praia Branca
Mindelo
São Pedro
Tarrafal
Ribeira Grande
N. Cintra
S. Felipe
Porto Inglês

ilha
Santiago
Santiago
Santiago
Santiago
S. Nicolau
S. Nicolau
S. Vicente
S. Vicente
S. Antão
S. Antão
Brava
Fogo
Maio
Seleccionar todos os
registos
Para sabermos toda a informação existente na tabela,
teremos que seleccionar a informação existente nas
colunas Local e Ilha da tabela Localidade, o que
traduzido para SQL viria a ser:
SELECT códigoLocal, local, ilha
FROM localidade
Seleccionar todas as
colunas
Se se pretender, como no exemplo anterior,
seleccionar todas as colunas da tabela, então, para
não termos que indicar cada uma das colunas, o
nome de todas elas pode ser substituído pelo
carácter asterisco (*).
SELECT *
FROM Localidade
SELECT – Clausula
Where
A operação de restrição permite restringir o número
de linhas a apresentar.
Para podermos restringir o conjunto de registos a
apresentar, iremos utilizar outra cláusula do
comando SELECT – a cláusula WHERE.
SELECT …
FROM …
WHERE condição
Operadores
Operador

Descrição

Exemplo

Resultado

=

Igual a

7=5

FALSE

>

Maior que

7>5

TRUE

<

Menor que

7<5

FALSE

>=

Maior ou Igual que

7>=5

TRUE

<=

Menor ou Igual que

7<=5

FALSE

< > Ou !=

Diferente de

7<>5

TRUE

AND

E

OR

ou

NOT

Negação
Exemplos
id

nome

idade

salário

telefone

códigoLocal

42

António Dias

43

792000

2619043

1

5

Célia Morais

26

536000

2693454

3

32

Florinda Simões

35

137000

1

37

Isabel Espada

28

86000

6

49

José António

17

210000

3

14

São Nascimento

35

220000

SELECT *
FROM pessoa
WHERE idade = 35
SELECT id, nome, salário
FROM pessoa
WHERE idade >= 30 AND idade <= 40

2318440

5

SELECT id, nome, salário
FROM pessoa
WHERE idade >= 18

SELECT id, nome, salário
FROM pessoa
WHERE idade < 30 OR idade > 40
SELECT ALL
4.3.5 Eliminação de repetições (DISTINCT e ALL)
Problema: Selecionar o conjunto das ilhas existentes na
tabela localidade.
SELECT ilha
FROM localidade
Equivalente a
SELECT ALL ilha
FROM Localidade
O resultado devolve ilhas repetidas
SELECT DISTINCT
SELECT DISTINCT ilha
FROM localidade
Remove os duplicados
SELECT com expressões
O SELECT permite, selecção de expressões ou
mesmo a selecção de constantes.
Seleccione o nome e idade de todas as pessoas.
Selecione também a idade que irão ter daqui a um
ano. O resultado deverá vir ordenado por nome.
SELECT nome, idade, idade+1
FROM pessoa
ORDER BY nome
Renomear Colunas
O nome da coluna que resulta da expressão é Expr...Este
nome pode variar de sistema para sistema e é atribuído
automaticamente.
Nota: O nome com que uma coluna ou expressão é
representada no resultado de um SELECT pode ser
alterado através da cláusula AS novo_nome a seguir às
colunas ou expressões cujo título se pretende alterar.
SELECT nome, idade AS idadeHoje, idade+1 AS
idadeDaquiUmAno
FROM pessoa
ORDER BY nome
SELECT – Clausula
ORDER BY
A ordenação é baseada no valor do código ASCII de
cada carácter. Assim, os dígitos aparecem antes dos
caracteres alfabéticos e as maiúsculas antes das
minúsculas.
A ordenação pode ser realizada através da cláusula
ORDER BY no comando SELECT. Esta cláusula, se
existir, aparece sempre posicionada no final do
comando SELECT.
Order By
SELECT campo1, campo2,…, campon
FROM tabela1, …, tabela n
[WHERE condição]
[GROUP BY …]
[HAVING …]
ORDER BY campo1[ASC|DESC],
campo2[ASC|DESC],…
Onde campo representa o nome do campo, uma
expressão ou a posição da coluna do SELECT.
ASC indica que a ordenação é Ascendente e DESC indica
que a ordenação é Descendente.
Ordenar uma coluna
A ordenação por coluna faz-se especificando, na
cláusula ORDER BY, qual a coluna pela qual se
pretende ordenar.
Problema: Seleccionar todas as pessoas, ordenando o
resultado pela idade.
SELECT *
FROM pessoa
ORDER BY idade
Ordenar Varias colunas
Para se ordenar o resultado de um SELECT por mais
do que uma coluna, basta indicar, na cláusula
ORDER BY, o conjunto das colunas pela ordem em
que se pretende ordenar.
Caso se indique que se pretende ordenar o resultado
de um SELECT por mais do que uma coluna a
ordenação é feita pela primeira coluna, e entre
valores iguais é ordenada pela segunda coluna, ...

Mais conteúdo relacionado

PDF
Aula 7 sql - select
PDF
Aula 8 select & joi ns
PDF
Consultas básicas em SQL
PPT
Fundamentos de SQL - Parte 6 de 8
PPT
Fundamentos de SQL - Parte 1 de 8
PPT
Fundamentos de SQL - Parte 4 de 8
PPT
Fundamentos de SQL - Parte 3 de 8
PPT
Fundamentos de SQL - Parte 2 de 8
Aula 7 sql - select
Aula 8 select & joi ns
Consultas básicas em SQL
Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 1 de 8
Fundamentos de SQL - Parte 4 de 8
Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 2 de 8

Mais procurados (19)

PDF
Aula7 sql basico_6por_pag
PDF
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8
PPT
Fundamentos de SQL - Parte 5 de 8
PDF
Sql basico postgresql_v12
PDF
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 3/8
PPTX
12 SQL - Junções / Join
PPT
Inner Join
PPTX
Criando um banco de dados com MySQL Workbench
PDF
apostila de sql - oracle
PDF
Apostila de sql oracle
PDF
apostila-de-sql
DOC
Apostila de sql
PDF
Funções integradas no sql
DOCX
Apostila de sql
PDF
Um pouco sobre sql
PDF
DOCX
Sql - Introdução ao mysql
DOCX
Sql - Comandos dml do mysql - parte 1
Aula7 sql basico_6por_pag
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8
Fundamentos de SQL - Parte 5 de 8
Sql basico postgresql_v12
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 3/8
12 SQL - Junções / Join
Inner Join
Criando um banco de dados com MySQL Workbench
apostila de sql - oracle
Apostila de sql oracle
apostila-de-sql
Apostila de sql
Funções integradas no sql
Apostila de sql
Um pouco sobre sql
Sql - Introdução ao mysql
Sql - Comandos dml do mysql - parte 1
Anúncio

Destaque (8)

PDF
Aula de SQL - Básico
PPTX
SQL aula 1
PPTX
Aula 8 sql introdução
PDF
Programação Orientação a Objetos - Herança
PDF
Banco de dados - Aula 1 SQL
PDF
PHP Aula 06 - Include, Require e Querystring
PDF
Encapsulamento em Orientação a Objetos
PPTX
Hands on Labs - SQL Server 2008
Aula de SQL - Básico
SQL aula 1
Aula 8 sql introdução
Programação Orientação a Objetos - Herança
Banco de dados - Aula 1 SQL
PHP Aula 06 - Include, Require e Querystring
Encapsulamento em Orientação a Objetos
Hands on Labs - SQL Server 2008
Anúncio

Semelhante a Aula 6 sql - introdução (20)

PDF
Introdução ao Banco de Dados, Introdução ao Banco de Dados,
PDF
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
PDF
Apostila de sql
PDF
Consultas SQL
PPTX
Aula 10 banco de dados
PDF
Principais instruções em sql
PDF
wepik-introducao-aos-conceitos-de-sql-20230620200232U48s.pdf
PDF
Introdução a Banco de Dados (Parte 3)
DOCX
Tutoriavapihwjejejjeekkekekekekekl_SQL.docx
PPTX
Introdução ao MySQL - EuDala SF 2023.pptx
PPTX
Banco de dados aula 4
PPTX
Curso de PostgreSQL: Um pouco Além dos Comandos
PDF
Banco II - PostgreSQL - Filtros
PDF
Oracle 11g - Fundamentos
PDF
6338 111121071604-phpapp01
PDF
Introdução ao SQL
PPT
Modulo 15 PSI
PPT
Aula 11 - Conceitos de SQL Básicos, uso constante
PPTX
Basesdedados
Introdução ao Banco de Dados, Introdução ao Banco de Dados,
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
Apostila de sql
Consultas SQL
Aula 10 banco de dados
Principais instruções em sql
wepik-introducao-aos-conceitos-de-sql-20230620200232U48s.pdf
Introdução a Banco de Dados (Parte 3)
Tutoriavapihwjejejjeekkekekekekekl_SQL.docx
Introdução ao MySQL - EuDala SF 2023.pptx
Banco de dados aula 4
Curso de PostgreSQL: Um pouco Além dos Comandos
Banco II - PostgreSQL - Filtros
Oracle 11g - Fundamentos
6338 111121071604-phpapp01
Introdução ao SQL
Modulo 15 PSI
Aula 11 - Conceitos de SQL Básicos, uso constante
Basesdedados

Mais de Hélio Martins (16)

PDF
Aula 9 insert, update e delete
PPTX
Aula 5 normalização dos dados
PPTX
Aula 4 modelo relacional
PPTX
Aula 3 modelagem de dados
PPTX
Aula 2 arquitecturas de sgbd, utilizadores, perfis
PPTX
Aula 1 introdução a base de dados
PPTX
Aula 0 apresentação
PDF
T aula6-criptografia-certificado e assinatura digital
PDF
Trab prático-iteracao1
PDF
P aula3-trb teorico 2-criptografia
PDF
T aula5-criptografia-distribuição de chaves,
PDF
T aula4-introducao-criptografia
PDF
T aula3-politicas de segurança
PDF
P aula2-trb teorico 1-ameacas
PPTX
T aula2-revisões bases e ip
PPTX
T aula1-apresentação
Aula 9 insert, update e delete
Aula 5 normalização dos dados
Aula 4 modelo relacional
Aula 3 modelagem de dados
Aula 2 arquitecturas de sgbd, utilizadores, perfis
Aula 1 introdução a base de dados
Aula 0 apresentação
T aula6-criptografia-certificado e assinatura digital
Trab prático-iteracao1
P aula3-trb teorico 2-criptografia
T aula5-criptografia-distribuição de chaves,
T aula4-introducao-criptografia
T aula3-politicas de segurança
P aula2-trb teorico 1-ameacas
T aula2-revisões bases e ip
T aula1-apresentação

Aula 6 sql - introdução

  • 1. Base de Dados 1 Hélio Martins
  • 3. Introdução ao SQL Apareceu no início da década de 1970 Desenvolvida por um laboratório de Investigação da IBM Em 1986 surgiu uma normalização da linguagem SQL, pela American National Standards Institute, continuam a existir pequenas diferenças na implementação desta linguagem comercial.
  • 4. Linguagem SQL Criar, Alterar, e Remover todas as componentes de uma Base de Dados, como tabelas, views, índices, etc. Inserir, Alterar e Apagar dados. Interrogar a base de dados – Fazer Consultas. Controlar o acesso dos utilizadores à base de dados e as operações a que cada um deles pode ter acesso. Obter a garantia da consistência e integridade dos dados.
  • 5. Familias do SQL DML – Data Manipulation Language – Permite manipular os dados – Inserir, Apagar, Seleccionar e actualizar. DDL – Data Definition Language – Utilizada para criar, apagar e alterar objectos como tabelas, consultas (views). DCL – Data Control Language – Permite controlar a segurança de dados definindo quem pode aceder cada operação em cada objecto.
  • 6. Famílias do SQL DML DDL DCL SELECT CREATE GRANT INSERT ALTER REVOKE UPDATE DROP DENY DELETE … A sintaxe básica de comando DDL é: A sintaxe básica de um comando DCL é: CREATE <tipo> <nome><definição> CREATE TABLE um GRANT <operação> ON <nome do Clientes (Nome objeto> TO <usuário> CHAR(30), Telefone CHAR(8)) GRANT UPDATE ON Clientes TO João
  • 7. Comando SELECT A interrogação de qualquer base de dados relacional fazse sempre utilizando o comando SELECT. A sintaxe é a seguinte: SELECT campo1, campo2,…, campoN FROM tabela1, …, tabela n [WHERE condição] [GROUP BY …] [HAVING …] [ORDER BY …] Os parêntesis retos indicam que essa componente é facultativo
  • 8. Comando SELECT Exemplos código 00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 local Tarrafal Assomada Praia Ribeira Grande Tarrafal Praia Branca Mindelo São Pedro Tarrafal Ribeira Grande N. Cintra S. Felipe Porto Inglês ilha Santiago Santiago Santiago Santiago S. Nicolau S. Nicolau S. Vicente S. Vicente S. Antão S. Antão Brava Fogo Maio
  • 9. Seleccionar todos os registos Para sabermos toda a informação existente na tabela, teremos que seleccionar a informação existente nas colunas Local e Ilha da tabela Localidade, o que traduzido para SQL viria a ser: SELECT códigoLocal, local, ilha FROM localidade
  • 10. Seleccionar todas as colunas Se se pretender, como no exemplo anterior, seleccionar todas as colunas da tabela, então, para não termos que indicar cada uma das colunas, o nome de todas elas pode ser substituído pelo carácter asterisco (*). SELECT * FROM Localidade
  • 11. SELECT – Clausula Where A operação de restrição permite restringir o número de linhas a apresentar. Para podermos restringir o conjunto de registos a apresentar, iremos utilizar outra cláusula do comando SELECT – a cláusula WHERE. SELECT … FROM … WHERE condição
  • 12. Operadores Operador Descrição Exemplo Resultado = Igual a 7=5 FALSE > Maior que 7>5 TRUE < Menor que 7<5 FALSE >= Maior ou Igual que 7>=5 TRUE <= Menor ou Igual que 7<=5 FALSE < > Ou != Diferente de 7<>5 TRUE AND E OR ou NOT Negação
  • 13. Exemplos id nome idade salário telefone códigoLocal 42 António Dias 43 792000 2619043 1 5 Célia Morais 26 536000 2693454 3 32 Florinda Simões 35 137000 1 37 Isabel Espada 28 86000 6 49 José António 17 210000 3 14 São Nascimento 35 220000 SELECT * FROM pessoa WHERE idade = 35 SELECT id, nome, salário FROM pessoa WHERE idade >= 30 AND idade <= 40 2318440 5 SELECT id, nome, salário FROM pessoa WHERE idade >= 18 SELECT id, nome, salário FROM pessoa WHERE idade < 30 OR idade > 40
  • 14. SELECT ALL 4.3.5 Eliminação de repetições (DISTINCT e ALL) Problema: Selecionar o conjunto das ilhas existentes na tabela localidade. SELECT ilha FROM localidade Equivalente a SELECT ALL ilha FROM Localidade O resultado devolve ilhas repetidas
  • 15. SELECT DISTINCT SELECT DISTINCT ilha FROM localidade Remove os duplicados
  • 16. SELECT com expressões O SELECT permite, selecção de expressões ou mesmo a selecção de constantes. Seleccione o nome e idade de todas as pessoas. Selecione também a idade que irão ter daqui a um ano. O resultado deverá vir ordenado por nome. SELECT nome, idade, idade+1 FROM pessoa ORDER BY nome
  • 17. Renomear Colunas O nome da coluna que resulta da expressão é Expr...Este nome pode variar de sistema para sistema e é atribuído automaticamente. Nota: O nome com que uma coluna ou expressão é representada no resultado de um SELECT pode ser alterado através da cláusula AS novo_nome a seguir às colunas ou expressões cujo título se pretende alterar. SELECT nome, idade AS idadeHoje, idade+1 AS idadeDaquiUmAno FROM pessoa ORDER BY nome
  • 18. SELECT – Clausula ORDER BY A ordenação é baseada no valor do código ASCII de cada carácter. Assim, os dígitos aparecem antes dos caracteres alfabéticos e as maiúsculas antes das minúsculas. A ordenação pode ser realizada através da cláusula ORDER BY no comando SELECT. Esta cláusula, se existir, aparece sempre posicionada no final do comando SELECT.
  • 19. Order By SELECT campo1, campo2,…, campon FROM tabela1, …, tabela n [WHERE condição] [GROUP BY …] [HAVING …] ORDER BY campo1[ASC|DESC], campo2[ASC|DESC],… Onde campo representa o nome do campo, uma expressão ou a posição da coluna do SELECT. ASC indica que a ordenação é Ascendente e DESC indica que a ordenação é Descendente.
  • 20. Ordenar uma coluna A ordenação por coluna faz-se especificando, na cláusula ORDER BY, qual a coluna pela qual se pretende ordenar. Problema: Seleccionar todas as pessoas, ordenando o resultado pela idade. SELECT * FROM pessoa ORDER BY idade
  • 21. Ordenar Varias colunas Para se ordenar o resultado de um SELECT por mais do que uma coluna, basta indicar, na cláusula ORDER BY, o conjunto das colunas pela ordem em que se pretende ordenar. Caso se indique que se pretende ordenar o resultado de um SELECT por mais do que uma coluna a ordenação é feita pela primeira coluna, e entre valores iguais é ordenada pela segunda coluna, ...