08 LabMM4 - Bases de dados

760 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
760
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
108
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • 08 LabMM4 - Bases de dados

    1. 1. Bases de dados: SQL (continuação)Carlos SantosLabMM 4 - NTC - DeCA - UAAula 08, 14-03-2012
    2. 2. SQL | Structured Query LanguageDesenvolvida no início dos anos 70. Permite a interação com os SGBD eas BD aí existentes. Utilizada por todos os SGBDR (embora com pequenasdiferenças!). Está estruturada em várias categorias: • Data Query Language (DQL) – consultar os dados existentes na BD • SELECT • Data Manipulation Language (DML) – criar e modificar os dados na BD • INSERT, UPDATE, DELETE • Data Definition Language (DDL) – criar e modificar objectos da BD (tabelas, views, …), ou a própria BD • CREATE, ALTER, DROP • Data Control Language (DCL) – gerir os privilégios dos utilizadores na gestão da BD, dos seus objectos e dos dados aí existentes • GRANT, REVOKE
    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;
    17. 17. SQL DELETEDELETE FROM oficinasql.clientesWHERE oficinasql.clientes.idClientes = 12;DELETE FROM oficinasql.clientes; • Apagaria todos os registos da tabela!

    ×