SlideShare a Scribd company logo
1 of 21
Download to read offline
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, ...

More Related Content

What's hot

Aula7 sql basico_6por_pag
Aula7 sql basico_6por_pagAula7 sql basico_6por_pag
Aula7 sql basico_6por_paganacri
 
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8Emiliano Barbosa
 
Fundamentos de SQL - Parte 5 de 8
Fundamentos de SQL - Parte 5 de 8Fundamentos de SQL - Parte 5 de 8
Fundamentos de SQL - Parte 5 de 8Emiliano Barbosa
 
Sql basico postgresql_v12
Sql basico postgresql_v12Sql basico postgresql_v12
Sql basico postgresql_v12aguicaetano
 
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 3/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 3/8Fundamentos SQL - Microsoft SQL Server 2019 - Parte 3/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 3/8Emiliano Barbosa
 
Criando um banco de dados com MySQL Workbench
Criando um banco de dados com MySQL WorkbenchCriando um banco de dados com MySQL Workbench
Criando um banco de dados com MySQL WorkbenchCentro Paula Souza
 
apostila de sql - oracle
 apostila de sql - oracle  apostila de sql - oracle
apostila de sql - oracle Rosete Lima
 
Funções integradas no sql
Funções integradas no sql Funções integradas no sql
Funções integradas no sql Gelivaldo Filho
 
Sql - Introdução ao mysql
Sql - Introdução ao mysqlSql - Introdução ao mysql
Sql - Introdução ao mysqlArley Rodrigues
 
Sql - Comandos dml do mysql - parte 1
Sql - Comandos dml do mysql - parte 1Sql - Comandos dml do mysql - parte 1
Sql - Comandos dml do mysql - parte 1Arley Rodrigues
 

What's hot (19)

Aula7 sql basico_6por_pag
Aula7 sql basico_6por_pagAula7 sql basico_6por_pag
Aula7 sql basico_6por_pag
 
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8
 
Fundamentos de SQL - Parte 5 de 8
Fundamentos de SQL - Parte 5 de 8Fundamentos de SQL - Parte 5 de 8
Fundamentos de SQL - Parte 5 de 8
 
Sql basico postgresql_v12
Sql basico postgresql_v12Sql basico postgresql_v12
Sql basico postgresql_v12
 
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 3/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 3/8Fundamentos SQL - Microsoft SQL Server 2019 - Parte 3/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 3/8
 
12 SQL - Junções / Join
12 SQL - Junções / Join12 SQL - Junções / Join
12 SQL - Junções / Join
 
Inner Join
Inner JoinInner Join
Inner Join
 
SQL Joins
SQL JoinsSQL Joins
SQL Joins
 
Criando um banco de dados com MySQL Workbench
Criando um banco de dados com MySQL WorkbenchCriando um banco de dados com MySQL Workbench
Criando um banco de dados com MySQL Workbench
 
apostila de sql - oracle
 apostila de sql - oracle  apostila de sql - oracle
apostila de sql - oracle
 
Apostila de sql oracle
Apostila de sql oracleApostila de sql oracle
Apostila de sql oracle
 
apostila-de-sql
apostila-de-sqlapostila-de-sql
apostila-de-sql
 
Apostila de sql
Apostila de sqlApostila de sql
Apostila de sql
 
Funções integradas no sql
Funções integradas no sql Funções integradas no sql
Funções integradas no sql
 
Apostila de sql
Apostila de sqlApostila de sql
Apostila de sql
 
Um pouco sobre sql
Um pouco sobre sqlUm pouco sobre sql
Um pouco sobre sql
 
Aula 250309
Aula 250309Aula 250309
Aula 250309
 
Sql - Introdução ao mysql
Sql - Introdução ao mysqlSql - Introdução ao mysql
Sql - Introdução ao mysql
 
Sql - Comandos dml do mysql - parte 1
Sql - Comandos dml do mysql - parte 1Sql - Comandos dml do mysql - parte 1
Sql - Comandos dml do mysql - parte 1
 

Viewers also liked

Aula de SQL - Básico
Aula de SQL - BásicoAula de SQL - Básico
Aula de SQL - BásicoAirton Zanon
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaDaniel Brandão
 
Banco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLBanco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLDaniel Brandão
 
PHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringPHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringDaniel Brandão
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosDaniel Brandão
 

Viewers also liked (8)

Aula de SQL - Básico
Aula de SQL - BásicoAula de SQL - Básico
Aula de SQL - Básico
 
SQL aula 1
SQL   aula 1SQL   aula 1
SQL aula 1
 
Aula 8 sql introdução
Aula 8   sql introduçãoAula 8   sql introdução
Aula 8 sql introdução
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 
Banco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLBanco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQL
 
PHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e QuerystringPHP Aula 06 - Include, Require e Querystring
PHP Aula 06 - Include, Require e Querystring
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
 
Hands on Labs - SQL Server 2008
Hands on Labs - SQL Server 2008Hands on Labs - SQL Server 2008
Hands on Labs - SQL Server 2008
 

Similar to BD Introdução SQL

UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6Wagner Bianchi
 
Principais instruções em sql
Principais instruções em sqlPrincipais instruções em sql
Principais instruções em sqlCharleston Anjos
 
wepik-introducao-aos-conceitos-de-sql-20230620200232U48s.pdf
wepik-introducao-aos-conceitos-de-sql-20230620200232U48s.pdfwepik-introducao-aos-conceitos-de-sql-20230620200232U48s.pdf
wepik-introducao-aos-conceitos-de-sql-20230620200232U48s.pdfJOSIMARMENEGATT2
 
Introdução a Banco de Dados (Parte 3)
Introdução a Banco de Dados (Parte 3)Introdução a Banco de Dados (Parte 3)
Introdução a Banco de Dados (Parte 3)Mario Sergio
 
Introdução ao MySQL - EuDala SF 2023.pptx
Introdução ao MySQL - EuDala SF 2023.pptxIntrodução ao MySQL - EuDala SF 2023.pptx
Introdução ao MySQL - EuDala SF 2023.pptxEuclidesDala2
 
Banco de dados aula 4
Banco de dados aula 4Banco de dados aula 4
Banco de dados aula 4Ed W. Jr
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosMarcos Thomaz
 
Banco II - PostgreSQL - Filtros
Banco II - PostgreSQL - FiltrosBanco II - PostgreSQL - Filtros
Banco II - PostgreSQL - FiltrosGustavo Sávio
 
Oracle 11g - Fundamentos
Oracle 11g - FundamentosOracle 11g - Fundamentos
Oracle 11g - FundamentosGustavo Sávio
 
6338 111121071604-phpapp01
6338 111121071604-phpapp016338 111121071604-phpapp01
6338 111121071604-phpapp01Gilson Figueredo
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLFábio Delboni
 
Banco dados lj
Banco dados ljBanco dados lj
Banco dados ljCarol Luz
 

Similar to BD Introdução SQL (20)

UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
UNIFAL - MySQL Linguagem SQL Básico - 5.0/5.6
 
Apostila de sql
Apostila de sqlApostila de sql
Apostila de sql
 
Consultas SQL
Consultas SQLConsultas SQL
Consultas SQL
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
Principais instruções em sql
Principais instruções em sqlPrincipais instruções em sql
Principais instruções em sql
 
wepik-introducao-aos-conceitos-de-sql-20230620200232U48s.pdf
wepik-introducao-aos-conceitos-de-sql-20230620200232U48s.pdfwepik-introducao-aos-conceitos-de-sql-20230620200232U48s.pdf
wepik-introducao-aos-conceitos-de-sql-20230620200232U48s.pdf
 
Introdução a Banco de Dados (Parte 3)
Introdução a Banco de Dados (Parte 3)Introdução a Banco de Dados (Parte 3)
Introdução a Banco de Dados (Parte 3)
 
Introdução ao MySQL - EuDala SF 2023.pptx
Introdução ao MySQL - EuDala SF 2023.pptxIntrodução ao MySQL - EuDala SF 2023.pptx
Introdução ao MySQL - EuDala SF 2023.pptx
 
Banco de dados aula 4
Banco de dados aula 4Banco de dados aula 4
Banco de dados aula 4
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos Comandos
 
Banco II - PostgreSQL - Filtros
Banco II - PostgreSQL - FiltrosBanco II - PostgreSQL - Filtros
Banco II - PostgreSQL - Filtros
 
Oracle 11g - Fundamentos
Oracle 11g - FundamentosOracle 11g - Fundamentos
Oracle 11g - Fundamentos
 
6338 111121071604-phpapp01
6338 111121071604-phpapp016338 111121071604-phpapp01
6338 111121071604-phpapp01
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
Modulo 15 PSI
Modulo 15 PSIModulo 15 PSI
Modulo 15 PSI
 
Basesdedados
BasesdedadosBasesdedados
Basesdedados
 
Bd08
Bd08Bd08
Bd08
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQL
 
Comandos DML
Comandos DMLComandos DML
Comandos DML
 
Banco dados lj
Banco dados ljBanco dados lj
Banco dados lj
 

More from Hélio Martins

Aula 9 insert, update e delete
Aula 9   insert, update e deleteAula 9   insert, update e delete
Aula 9 insert, update e deleteHélio Martins
 
Aula 5 normalização dos dados
Aula 5   normalização dos dadosAula 5   normalização dos dados
Aula 5 normalização dos dadosHélio Martins
 
Aula 4 modelo relacional
Aula 4   modelo relacionalAula 4   modelo relacional
Aula 4 modelo relacionalHélio Martins
 
Aula 3 modelagem de dados
Aula 3   modelagem de dadosAula 3   modelagem de dados
Aula 3 modelagem de dadosHélio Martins
 
Aula 2 arquitecturas de sgbd, utilizadores, perfis
Aula 2   arquitecturas de sgbd, utilizadores, perfisAula 2   arquitecturas de sgbd, utilizadores, perfis
Aula 2 arquitecturas de sgbd, utilizadores, perfisHélio Martins
 
Aula 1 introdução a base de dados
Aula 1   introdução a base de dadosAula 1   introdução a base de dados
Aula 1 introdução a base de dadosHélio Martins
 
T aula6-criptografia-certificado e assinatura digital
T aula6-criptografia-certificado e assinatura digitalT aula6-criptografia-certificado e assinatura digital
T aula6-criptografia-certificado e assinatura digitalHélio Martins
 
Trab prático-iteracao1
Trab prático-iteracao1Trab prático-iteracao1
Trab prático-iteracao1Hélio Martins
 
P aula3-trb teorico 2-criptografia
P aula3-trb teorico 2-criptografiaP aula3-trb teorico 2-criptografia
P aula3-trb teorico 2-criptografiaHélio Martins
 
T aula5-criptografia-distribuição de chaves,
T aula5-criptografia-distribuição de chaves,T aula5-criptografia-distribuição de chaves,
T aula5-criptografia-distribuição de chaves,Hélio Martins
 
T aula4-introducao-criptografia
T aula4-introducao-criptografiaT aula4-introducao-criptografia
T aula4-introducao-criptografiaHélio Martins
 
T aula3-politicas de segurança
T aula3-politicas de segurançaT aula3-politicas de segurança
T aula3-politicas de segurançaHélio Martins
 
P aula2-trb teorico 1-ameacas
P aula2-trb teorico 1-ameacasP aula2-trb teorico 1-ameacas
P aula2-trb teorico 1-ameacasHélio Martins
 
T aula2-revisões bases e ip
T aula2-revisões bases e ipT aula2-revisões bases e ip
T aula2-revisões bases e ipHélio Martins
 
T aula1-apresentação
T aula1-apresentaçãoT aula1-apresentação
T aula1-apresentaçãoHélio Martins
 

More from Hélio Martins (16)

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

BD Introdução SQL

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