nota de aula sql. exemplos de comandos criar e alterar a estrutura de uma bd: create database –...

87
NOTA DE AULA SQL

Upload: henri-rodriguez

Post on 07-Apr-2016

233 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

NOTA DE AULA SQL

Page 2: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Exemplos de comandos

Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base

de dados; Create table – para criar a estrutura de uma tabela; Alter table – modificar a estrutura de uma tabela; Drop table – eliminar uma tabela; Drop database – eliminar uma BD.

2

Page 3: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Exemplos de comandos

Atualizar e consultar uma BD:

Insert – inserir dados numa tabela; Update – atualizar ou alterar dados; Delete – apagar dados; Select – efetuar consultas ou pesquisas a

uma base de dados.

3

Page 4: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Exemplos de comandos Controlar o acesso e o funcionamento

seguros de uma BD: grant – permite atribuir ou definir os direitos dos utilizadores de

uma BD; revoke – retira os direitos atribuídos; Lock table – bloqueia uma tabela de forma a impedir que

outros utilizadores a alterem; Unlock table – desbloqueia tabela bloqueada; Start transation – inicia uma transação/operação controlada

numa BD.

4

Page 5: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Comandos para criar e eliminar uma BD

Criação de uma BDCriação de uma BD

Create database Vendas

Objetivo: iniciar a criação de uma bd com o nome Vendas.

5

Page 6: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Comandos para criar e eliminar uma BD

Eliminar uma BD em SQLEliminar uma BD em SQL

Drop database Vendas

Objetivo: elimina a bd com o nome Vendas, de forma irrecuperável (a não ser que tenham sido feitas cópias de segurança).

NOTA: Só os utilizadores do sistema que tenham o estatuto de superutilizador ou a quem tenham sido atribuídos todos os direitos sobre a base de dados, é que podem efetuar este tipo de operação.

6

Page 7: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Criar uma tabela - sintaxe

7

Create table nome_tabela(definição_campo1…Definição campo_n);

Cria uma tabela com um dado nome. Dentro dos parêntesis é indicada a estrutura dos campos que se pretende para a tabela.

Page 8: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Assim…

Definição_campo1 corresponde a:

Nome_campo tipo_dados[not null] [default valor][primary key][references…]

8

Page 9: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Ou seja…

Para cada campo da tabela indicam-se obrigatoriamente:

Nome do campo Tipo de dados do campo

Para além destes elementos obrigatórios, podem ainda ser indicados outros elementos opcionais.

9

Page 10: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

NOTA: os parêntesis retos servem apenas para indicar os elementos opcionais; se estes elementos forem indicados, são escritos sem os parêntesis retos.

10

Page 11: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Elementos opcionais

Not null – serve para indicar que o campo não pode conter valores nulos

Default valor – permite indicar um valor por defeito para o campo.

Por exemplo: default 10 (o campo assume este valor se não for indicado outro)

11

Page 12: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Elementos opcionais

Primary key – indica que o campo é ou faz parte da chave primária da tabela.

References – inicia a indicação que o campo funciona como chave estrangeira.

Deve ser escrito:

References nome_tabela (nome_campo) , ou seja, a seguir à palavra

References é escrito o nome da tabela e o nome do campo (dentro

parêntesis curvos) a que o campo faz referência como chave estrangeira.

12

Page 13: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Principais tipos de dados em SQL

13

Tipos de dados Descrição

Char (n) Caracter ou string – de comprimento indicado até um máximo de 255.

VarChar (n) Semelhante ao anterior, mas neste caso, Var significa tamanho variável em relação ao espaço realmente ocupado, consoante o dado inserido.

text Texto até um máximo de 65535.

smallint Números inteiros de tamanho reduzido

Page 14: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Principais tipos de dados em SQL

14

Tipos de dados Descrição

Int ou integer Números inteiros de tamanho médiobigint Números inteiros de tamanho grande

Numeric (m,d) ou decimal (M,d)

Valor numérico que é guardado como uma string formada por digitos decimais, em que m representa o n.º digitos e d as casas decimais

Float (m,d) Valor numérico que é guardado com o formato floating point (virgula flutuante)

Page 15: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Principais tipos de dados em SQL

15

Tipos de dados Descrição

Double Semelhante ao anteriorDate No mysql o formato padrão é “yyyy-mm-dd”

– ano, mês, diatime Formato da hora: “hh:mm:ss”

Page 16: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Exemplo de um Modelo físico de uma base de dados

16

Page 17: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Exemplificação da criação de tabelas

Create table Clientes(CodCli Int auto_increment primary key,Cliente Varchar(20), morada varchar (30));

17

CodCli Cliente Morada

Page 18: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Explicação

A tabela Clientes é composta por 3 campos:

CodCli - int Cliente - varchar Morada – varchar

18

Page 19: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Campo Codcli Código do cliente é definido como int, isto é

número inteiro, além disso é auto_increment, ou seja, o sistema incrementa o n.º do código sempre que é inserido um novo registo nesta tabela.

É indicado como primary key, pois é a chave primária da tabela clientes.

19

Page 20: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Campo Cliente Definido como varchar(20), o campo cliente

aceita até um máximo de 20 carateres.

20

Page 21: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Campo Morada Definido como varchar(30), o campo morada

aceita até um máximo de 30 carateres.

21

Page 22: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Exemplificação da criação de tabelas

Create table Produtos(Codprod Int auto_increment primary key,Produto Varchar(20), preco numeric (10,2));

22

CodProd Produto preco

Page 23: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Tabela Produtos

É semelhante à tabela Clientes, o que muda é o campo Preco.

NOTA: não se deve escrever preço, porque os nomes tabelas, campos em SQL só podem conter os carateres do alfabeto inglês, onde não há acentos nem caracteres especiais como o ç.

23

Page 24: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Campo Preco

O campo preço é do tipo numérico, não inteiro, mas com casas decimais, aconselhável para pôr por exemplo, valores monetários.

24

Page 25: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Tabela Encomendas

Create table Encomendas(Nenc Int Auto_increment primary key,CodCli Int references Clientes (CodCli),CodProd Int references Produtos (CodProd),Quant Int);

25

Page 26: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Campo NEnc

O campo Nenc (nº da encomenda) é definido como inteiro, incrementado, e chave primária da tabela encomendas.

26

Page 27: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Campo Quant

O campo Quant (quantidade) é definido como inteiro.

27

Page 28: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Parte especial da tabela encomendas…

Reside nos campos codCli e CodProd que são chaves estrangeiras, por se referirem a campos que são chaves primárias em outras tabelas.

Esses campos vão fazer referência aos mesmos campos nas tabelas de origem (Clientes e produtos).

28

Page 29: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Eliminar e alterar a estrutura de uma tabela

Para eliminar uma tabela, o comando sql é

drop table nome_tabela

Ex: drop table Encomendas

29

Page 30: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Eliminar e alterar a estrutura de uma tabela Para alterar uma tabela, o comando sql é

alter table que contém 3 variantes: add, modify e drop.

Ex: alter table nome_tabela{Add (novo_campo tipo_dados)| modify (nome_campo tipo_dados)| drop (nome_campo)};

30

Page 31: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

O facto de as 3 opções, add, modify e drop serem incluídas dentro de chavetas {} significa que só uma delas pode ser usada em cada instrução.

31

Page 32: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

32

Adiciona um novo campo à tabela xxx

Modifica um novo campo na tabela xxx

Elimina um novo campo na tabela xxx

Page 33: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Exemplo 1

Alter table ClientesAdd telefone integer;

Acrescenta na tabela clientes, um novo campo com o nome Telefone e do tipo inteiro.

33

Page 34: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Exemplo 2

Alter table ClientesModify telefone char (9);

Modifica na tabela clientes, o campo Telefone passando a ser do tipo char com 9 carateres.

34

Page 35: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Exemplo 3

Alter table Clientesdrop telefone;

Modifica a tabela clientes, eliminando o campo telefone.

35

Page 36: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Atualizar dados numa tabela

Quando se fala em atualizar uma base de dados, tal compreende 3 tipos de operações: Inserir Apagar alterar

36

Page 37: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Inserir dados numa tabela

Insert into nome_tabela(lista de campos){values (valores) | select instrução};

Inserir dados na tabela indicada, especificando esses dados a seguir à palavra values ou obtendo-os através de uma instrução select.

37

Page 38: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

NOTA

Após a indicação do nome tabela, podemos indicar opcionalmente os nomes dos campos, onde queremos inserir os dados.

Se os campos não forem indicados, supõe-se que vamos inserir dados em todos os campos da tabela.

38

Page 39: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Exemplo 1

Insert into Clientes(Cliente, morada) values(“Aníbal”, “Lisboa”),(“Belmiro”, “Braga”),(“Casimiro”, “Coimbra”);

39

Page 40: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Tabela clientes

CodCli Cliente Morada1 Anibal lisboa2 Belmiro Braga3 Casimiro Coimbra

40

Page 41: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Exemplo 2

Insert into Produtos values(null, “portátil”, 400),(null, “berbequim”, 50),(null, “ms office”, 150);

41

Page 42: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Tabela produtos

42

CodProd Produto preço1 Portátil 4002 Berbequim 503 Ms office 150

Page 43: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

No exemplo anterior, como não indicámos os campos onde queríamos inserir dados, temos de atribuir valores para todos os campos da tabela.

Null significa que o 1º campo da tabela era auto increment (codprod) e não podemos mexer, por isso a forma é indicar o valor null.

43

Page 44: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Exemplo 3

Insert into Encomendas values(null, 1,1,10),(null, 2,1,2),(null, 3,2,5),(null, 1,3,1);

44

Page 45: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Tabela encomendas

45

NEnc Cod Cli CodProd Quant1 1 1 102 2 1 23 3 2 54 1 3 1

Na tabela encomendas, o primeiro campo é Nenc é do tipo auto_increment, o que impede de atribuir valores, por isso indicamos o null para todos os dados correspondentes a esse código.

Quanto aos campos CodCli e CodProd como são chaves estrangeiras, pois referem-se a chaves primárias de outras tabelas, isto obriga a que os valores inseridos devam existir nas tabelas iniciais, por forma a respeitar a integridade referencial.

Page 46: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Apagar registos e alterar dados

O comando delete apaga registos (linhas) por inteiro numa tabela.

Delete from nome_tabela[where condição];

46

Page 47: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Objetivo

Apagar todos os registos na tabela indicada, podendo apagar toda a tabela (se não for especificada uma condição) ou apenas o(s) registos que correspondam à condição indicada.

Se a cláusula Where condição não for indicada, serão apagados todos os registos (todos os dados) da tabela.

Se Where condição for indicada, serão apagados os registos que respeitem a condição indicada.

47

Page 48: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Exemplo 1

Delete from produtos;

Efeito: todos os dados da tabela produtos serão apagados.

48

Page 49: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Exemplo 2

Delete from ProdutosWhere produto=“Ms office”;

Efeito: apaga na tabela produtos os registos (linhas) em que o campo produto é igual a ms office.

49

Page 50: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Comando update

A alteração, modificação ou atualização de dados em SQL, faz-se com o comando update.

50

Page 51: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Sintaxe - update

Update nome_tabelaSet campo1=expressão1[, campo2=expressão2], [, …][where condição];

Alterar dados na tabela indicada, no(s) campo(s) indicado(s), podendo essa alteração abranger todos os dados de determinado campo ou apenas o que correspondem a uma condição indicada.

51

Page 52: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

A expressão set campo1=expressão1 indica a modificação a efetuar.

É possível efetuar a vários campos na mesma instrução, daí os parêntesis retos que se seguem.

52

Page 53: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Cláusula where

A cláusula Where condição é opcional – isto implica o seguinte:

Se a cláusula where condição não for usada, as alterações indicadas nas expressões campo1=expressão1 afetarão todos os dados do campo indicado em set.

53

Page 54: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

54

Se a cláusula where condição for usada, as alterações indicadas afetarão apenas os registos que respeitem a condição especificada.

Page 55: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Exemplo 1

Update ProdutosSet Preco =Preco*1.05;

Esta instrução altera a tabela produtos, no campo preço, para o resultado da expressão preco*1.05, ou seja, produz um aumento de 5% em todos os preços da tabela produtos.

55

Page 56: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Exemplo 2

Update ProdutosSet preco=250Where produto =“portátil”;

Neste caso, a alteração do preço para 250, incide apenas sobre o produto que tem o nome de portátil, uma vez que foi isso que foi indicado na cláusula where.

56

Page 57: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Comando Select

É o comando que permite efetuar consultas a uma BD relacional com SQL.

A sintaxe do comando select é, nas suas versões mais complexas, muito extensa, com muitas opções e pode revestir-se de alguma complexidade.

57

Page 58: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Sintaxe - select

Select lista_camposFrom tabela(s)[where condição][group by lista_campos][having condição][order by lista_campos]

58

Efetuar consultas à tabela(s) indicada,

baseadas em critérios de filtragem,

agrupamentos e/ou ordenação.

Page 59: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Exemplos

Select * from produtos;

Vai consultar todos os dados da tabela produtos.

59

Page 60: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Select produto, precoFrom produtos;

Vai apresentar os campos produto e preço da tabela produtos.

60

Page 61: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Operadores usados na cláusula where

Operadores de comparaçãoOperadores de comparação:

= igualdade< menor que> Maior que<= menor ou igual>= maior ou igual<> Diferente de

61

Page 62: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

62

Outros operadores de comparaçãoOutros operadores de comparação:

Between – compreendido entreIn – dentro deLike – semelhante a Is (not) null – é (não é) valor nulo

Page 63: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

63

Operadores lógicosOperadores lógicos:

And – eOr – ouNot - não

Page 64: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Exemplos

Select *From produtosWhere preco>=200 and preco<=400;

Select *From produtosWhere preco between 200 and 400;

64

Page 65: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Select *From produtos Where preco= 100 or preco=200;

Select *From produtosWhere preco in (100, 200);

65

Page 66: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Select *From produtosWhere produto like “P%”;

Vai buscar todos os dados de produtos, cujo nome de produto comece com a letra P.

66

Page 67: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Select *From produtosWhere produto like “%office”;

Vai buscar tds os dados de Produtos, cujo produto tenha a palavra office no seu nome.

67

Page 68: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Select *From produtosOrder by preco desc;

Vai buscar todos os dados da tabela produtos ordenando o preço por ordem descendente.

68

Page 69: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Select *From produtosWhere preco>200Order by produto;

Ordena por ordem alfabética crescente, os produtos cujos preços são maiores que 200.

69

Page 70: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Funções de cálculos e agregações

Função SignificadoCount Devolve o nº de linhas/registos encontradosSum Devolve a soma de todos os valores encontrados

no campo indicadoAvg Devolve a médiaMax Devolve o maior valorMin Devolve o menor valor

70

Page 71: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Tabela Produtos

CodPro Produto Preco1 Portátil 4005 Portátil 2003 Ms Office 1504 Impressora 1006 Impressora 502 Berbequim 50

71

Page 72: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Função Contar

Select count (*) As TotalFrom Produtos;

Vai contar quantas linhas existem na tabela Produtos e devolve o resultado através do campo total.

72

Total6

Page 73: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Exemplo

Select count (distinct preco)From produtos;

Devolve o número de preços distintos no campo preço, neste caso, o resultado seria 5; o preço 50 só é contado uma vez.

73

Page 74: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Funções Sum e Avg - exemplo

Select avg(preco) as MediaFrom produtos;

O resultado será a média do preço dos produtos.

74

Page 75: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Select Sum(preco)From produtosWhere produto like “portátil”;

O resultado será a soma dos preços dos produtos correspondentes a portáteis. Resultado: 600

75

Page 76: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Funções max e min

Select max(preco)From produtos;

Seleciona o maior valor encontrado.

76

Page 77: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Select min(preco)From produtosWhere produto like “impressora”;

O resultado será o menor valor encontrado, tendo em conta os produtos de nome impressora.

77

Page 78: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Claúsulas group by e having

A claúsula Group by é usada para agrupar dados que contenham características semelhantes.

Normalmente, é usada em conjugação com as funções de agregação (count, sum, avg, max e min), para obter cálculos por grupos.

78

Page 79: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Exemplo 1

Select produto, count(*)From produtosGroup by produto;

Vamos obter uma listagem com os nomes dos diferentes produtos e com a indicação de quantos registos de cada produto existem.

79

Page 80: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Resultado do exemplo anterior:

Produto Count(*)Berbequim 1Impressora 2Ms Office 1Portátil 2

80

Page 81: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Exemplo 2

Select produto, max(preco)From produtosGroup by produto;

Iremos obter o preço mais elevado dentro de cada grupo de produtos com o mesmo nome.

81

Page 82: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Quando se utiliza a cláusula group by, também podemos acrescentar a cláusula having.

A cláusula having aplica-se aos grupos de registos, agrupados com group by, apresentando apenas qs que correspondem à condição indicada com having.

82

Page 83: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Exemplo 3

Select produto, max(preco)From produtosGroup by produtoHaving max(preco) > 100;

Aqui iremos obter o preço mais elevado de cada grupo de produtos com o mesmo nome, mas queremos obter os grupos de produtos que têm um preço máximo superior a 100.

83

Page 84: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Resultado do exemplo 3

Produto Max(preco)Ms Office 150Portátil 400

84

Page 85: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Mais exemplos de comandos…

Select *From clientes, encomendas;

Vai buscar todos os dados, das 2 tabelas.

85

Page 86: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Select *From clientes, encomendasWhere clientes.codcli=encomendas.cod.cli;

Esta igualdade na cláusula where vai fazer com que sejam apresentados os dados dos clientes, com os dados das encomendas, mas apenas daqueles em que os valores dos campos codcli coincidem nas 2 tabelas.

86

Page 87: NOTA DE AULA SQL. Exemplos de comandos  Criar e alterar a estrutura de uma BD: Create database – para iniciar a criação de uma base de dados; Create

Expressão Inner join

O exemplo anterior pode ser substituído pela expressão inner join na cláusula from (deixando ser necessário utilizar a cláusula where).

Select *From clientes inner join encomendas onClientes.codcli=encomendas.codcli;

87