LabMM4 (T08 - 12/13) - SQL continuação

566 visualizações

Publicada em

Publicada em: Educação
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
566
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
64
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

LabMM4 (T08 - 12/13) - SQL continuação

  1. 1. Bases de dados: SQL (continuação)Carlos SantosLabMM 4 - NTC - DeCA - UAAula 08, 12-03-2013
  2. 2. Modelo lógico vs modelo físicoO modelo lógico representa todas as lógicas inerentes ao problema:tabelas, campos, chaves primárias e as suas relações. Deve incluir: • entidades e respetivos atributos • chaves primárias • propriedades de relações • relações e seus tiposO modelo físico é uma versão mais completa do modelo lógico, sendoadicionada a informação necessária para que esse modelo possa serimplementado num SGBDR. Deve incluir: • chaves estrangeiras • tabelas de relação • identificação do tipo de dados e suas características especiais (UN,NN,...)
  3. 3. SQL | Operadores e algumas funçõessímbolo descrição exemplo observações= Igual EmployeeNo = 2> Maior EmployeeNo > 2< Menor EmployeeNo < 2<> Diferente EmployeeNo <> 2>= Maior ou igual EmployeeNo >= 2<= Menor ou igual EmployeeNo <= 2IN Igual a um valor dentro de uma EmployeeNo IN (2,3,4) colecção de valoresLIKE Similar LastName LIKE ‘Nunes’BETWEEN ... AND Dentro de um conjunto de valores, EmployeeNo BETWEEN 2 AND Equivalente a: incluindo os limites 4 EmployeeNo IN (2,3,4)IS NULL DateEmployed IS NULLIS NOT NULL DateEmployed IS NOT NULLNOW() Devolve a DATA e HORA do servidor
  4. 4. SQL | Operadores LógicosAND, OR e NOT • Estes operadores têm uma prioridade inferior relativamente aos apresentados no slide anterior • As prioridades podem ser alteradas através da utilização de ( ) símbolo descrição exemplo observações AND As duas expressões SalesNo > 3 AND Customer O AND tem maior prioridade do que têm que ter o valor < “Smith” o OR verdadeiro para o resultado final ser verdadeiro OR Se qualquer uma das SalesNo > 3 OR Customer < expressões tiver o “Smith” valor verdadeiro, o resultado final é verdadeiro NOT Inverte o resultado SalesNo NOT IN (2; 3; 4) booleano
  5. 5. SQL: SELECT DISTINCT … FROMSELECT oficinasql.viaturas.MarcaFROM oficinasql.viaturas;SELECT DISTINCT oficinasql.viaturas.MarcaFROM oficinasql.viaturas;
  6. 6. SQL: SELECT … FROM ... WHERE • SELECT oficinasql.viaturas.Marca, oficinasql.viaturas.Modelo FROM oficinasql.viaturas WHERE oficinasql.viaturas.Marca < Fiat OR oficinasql.viaturas.Marca > Smart; • SELECT oficinasql.viaturas.Marca, oficinasql.viaturas.Modelo FROM oficinasql.viaturas WHERE ((oficinasql.viaturas.Marca < Fiat) OR (oficinasql.viaturas.Marca > Smart)) AND oficinasql.viaturas.Modelo LIKE ‘C%’;
  7. 7. SQL: SELECT … FROM ... WHERE • SELECT oficinasql.viaturas.Marca, oficinasql.viaturas.Modelo FROM oficinasql.viaturas WHERE oficinasql.viaturas.Marca IN (Citroen, Smart); • SELECT oficinasql.viaturas.Marca, oficinasql.viaturas.Modelo FROM oficinasql.viaturas WHERE oficinasql.viaturas.Marca BETWEEN "Ferrari" AND "Renault" ORDER BY oficinasql.viaturas.Marca;
  8. 8. SQL: exemplos • SELECT oficinasql.viaturas.Marca, oficinasql.viaturas.Modelo FROM oficinasql.viaturas WHERE oficinasql.viaturas.DataVenda IS NULL; • SELECT oficinasql.viaturas.Marca, oficinasql.viaturas.Modelo FROM oficinasql.viaturas WHERE oficinasql.viaturas.DataVenda IS NOT NULL;
  9. 9. SQL: exemplos • SELECT oficinasql.viaturas.Marca FROM oficinasql.viaturas WHERE NOT oficinasql.viaturas.Marca IN ("Subaru", "Ferrari", "Renault");
  10. 10. SQL: Funções pré-definidasFunções pré-definidas que trabalham sobre grupos de dados • AVG – valor médio • MIN– valor mínimo • MAX – valor máximo • COUNT – número de elementos • SUM – soma
  11. 11. SQL: Funções pré-definidas • SELECT MAX(oficinasql.viaturas.Preco) FROM oficinasql.viaturas; • SELECT COUNT(oficinasql.viaturas.Modelo) FROM oficinasql.viaturas;
  12. 12. SQL: AS • SELECT COUNT(oficinasql.viaturas.Modelo) AS TotalViaturas FROM oficinasql.viaturas; TotalViaturas • SELECT COUNT(oficinasql.viaturas.Modelo) FROM oficinasql.viaturas AS tViat ... a partir daqui podemos utilizar “tViat” sempre que for necessário referir a tabela “oficinasql.viaturas”;
  13. 13. SQL: Funções pré-definidas • SELECT oficinasql.viaturas.Marca, COUNT(oficinasql.viaturas.Modelo) FROM oficinasql.viaturas GROUP BY oficinasql.viaturas.Marca;
  14. 14. SQL INSERTINSERT INTO oficinasql.clientes VALUES (NULL, Joaquim Soares,981234567, ‘Rua Estreita); • Desta forma inserem-se valores em todos os campos da tabela pela ordem como estão declaradas as colunas • Utiliza-se o NULL em campos com AI (por exemplo, no caso da PK) ou onde não se queira inserir informação
  15. 15. SQL INSERTINSERT INTO oficinasql.clientes (Nome,Idade) VALUES (SerafimSaudade, 24); • Podem inserir-se valores apenas em alguns campos • Campos com AI serão actualizados automaticamente
  16. 16. SQL UPDATEUPDATE oficinasql.clientesSET oficinasql.clientes.Nome = "Serafim Saudoso",oficinasql.clientes.Idade = 65WHERE oficinasql.clientes.idClientes = 12;

×