Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Banco de Dados II – Prof Tavares 1 Banco de Dados II SQL Básica 2 Banco de Dados II – Prof Tavares 2 Sistema de Banco de Dados Definição do BD (Meta-dados) BD armazenado Consultas / Programas de Aplicação Software para processar consultas / programas Software para acessar dados armazenados Usuários / Programadores Sistema de BD SGBD Banco de Dados I – Prof Tavares Requisitos de Dados Projeto Conceitual Projeto Lógico Projeto Físico Coleta/Especificação de Requisitos Requisitos Funcionais Análise Funcional Projeto Funcional Programação Programa de aplicação de BD SGBD Programa de aplicação de BD Programa de aplicação dados e regras Mundo Real 4 Banco de Dados II – Prof Tavares Em princípio, qualquer sublinguagem de dados é, na realidade, uma combinação de pelo menos duas linguagens subordinadas: • Linguagem de definição de dados (LDD ou DDL - Data Definition Language), que dá suporte à definição ou à "declaração" de objetos dos bancos de dados • Linguagem de manipulação de dados (LMD ou DML - Data Manipulation Language), que admite o processamento ou a "manipulação" desses objetos. • CRUD: create / read / update / delete. Linguagem SQL 5 Banco de Dados II – Prof Tavares 5 Linguagem SQL • O nome "SQL" significa "Structured Query Language" - Linguagem Estruturada de Pesquisa. • Essa linguagem, de grande utilização, teve seus fundamentos no modelo relacional de Codd (l970). Sua primeira versão recebeu o nome de SEQUEL ("Structured English Query Language"), sendo definida por D. D. CHAMBERLIN, entre outros, em 1974, nos laboratórios de pesquisa da IBM (Califórnia). • Em 1975, foi implementado um protótipo de aplicação dessa nova linguagem. Entre 1976 e 1977, o SEQUEL foi revisado e ampliado, e teve seu nome alterado para "SQL" por razões jurídicas. 6 Banco de Dados II – Prof Tavares 6 Linguagem SQL • A SQL se tornou um padrão de fato, no mundo dos ambientes de banco de dados relacionais. • Em 1982, o American National Standard Institute (ANSI) tornou a SQL padrão oficial de linguagem em ambiente relacional. • Infelizmente, como todo padrão que se preze, existem hoje vários dialetos SQL, cada um, evidentemente, tentando ser mais padronizado que o outro. • A linguagem SQL foi desenvolvida especialmente para o ambiente relacional, podendo ser adaptada a qualquer ambiente não relacional. 7 Banco de Dados II – Prof Tavares 7 Linguagem SQL • Linguagem interativa de consulta (query AdHoc) • Linguagem de programação para acesso a banco de dados • Linguagem de administração de banco de dados • Linguagem cliente/servidor • Linguagem para banco de dados distribuído • Caminho de acesso a outros bancos de dados em diferentes máquinas 8 Banco de Dados II – Prof Tavares 8 Vantagens da Linguagem SQL • Independência de fabricante - A SQL é oferecida em praticamente todos os SGBD'S, e os que ainda não têm estão se encaminhando para lá. Com isso posso mudar de SGBD sem me preocupar com o novo que vai chegar • Portabilidade entre computadores - A SQL pode ser utilizada desde um computador pessoal, passando por uma estação de trabalho, até um computador de grande porte • Redução dos custos com treinamento - Baseado no item anterior, as aplicações podem se movimentar de um ambiente para o outro sem que seja necessária uma reciclagem da equipe de desenvolvimento 9 Banco de Dados II – Prof Tavares 9 Vantagens da Linguagem SQL • Inglês estruturado de alto nível - A SQL é formada por um conjunto bem simples de sentenças em inglês, oferecendo um rápido e fácil entendimento • Consulta interativa - A SQL provê um acesso rápido aos dados, fornecendo respostas ao usuário, a questões complexas, em minutos ou segundos • Múltiplas visões dos dados - A SQL permite ao criador do banco de dados levar diferentes visões dos dados a diferentes usuários • Definição dinâmica dos dados - Por meio da SQL, podem-se alterar, expandir ou incluir, dinamicamente, as estruturas dos dados armazenados com a máxima flexibilidade 10 Banco de Dados II – Prof Tavares 10 Slide Title 10 February 2014 11 Banco de Dados II – Prof Tavares 11 Operações SELEÇÃO e PROJEÇÃO (a) A Álgebra Relacional e o Cálculo Relacional 12 Banco de Dados II – Prof Tavares 12 Resultados de uma seqüência de operações. (a) (b) Usando as relações intermediárias e renomeando os atributos. A Álgebra Relacional e o Cálculo Relacional 13 Banco de Dados II – Prof Tavares O comando SELECT tem palavras-chaves em um comando básico: SELECT Especifica as colunas FROM - Especifica as tabelas WHERE - Especifica as linhas. SQL / COMANDO SELECT 14 Banco de Dados II – Prof Tavares 15 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT Selecionando Colunas da Tabela select <NOME(S) DA(S) COLUNA(S)> from <TABELA> Consulta: Listar todas as colunas de todos os PAÍSES. select * from customers 16 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT Selecionando Colunas da Tabela Consulta: Listar id, nome e telefone dos clientes. select customerNumber, customerName, phone from customers 17 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT Alterando o Heading da coluna select customerName as nome, phone as telefone from customers 18 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT Operadores Aritméticos Operadores aritméticos podem ser usados sobre qualquer coluna numérica. + Adição - Subtração / Divisão * Multiplicação 19 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT Consulta simples: select productname, buyprice * 1.2 from products Operadores Aritméticos 20 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT Consulta simples: SELECT productName, buyprice FROM products where buyPrice < 100 Operadores Aritméticos 21 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT Consulta: Listar os empregados vendedores. SELECT * FROM employees where jobTitle = "SALES REP" ... SELECT * FROM employees where jobTitle = "Sales Rep" Operadores de Comparação 22 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT Consulta: Listar os clientes que trabalham na Polônia. select * from CUSTOMERS where COUNTRY = 'Poland' Consulta: Listar o nome, telefone e o país dos clientes não residentes nos USA select customerNumber, phone, country from CUSTOMERS where COUNTRY <> 'USA‘ Operadores de Comparação 23 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT select concat(customerName, “ – “, phone) from CUSTOMERS where COUNTRY <> 'USA' Operador de Concatenação 24 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT AND ("e" ) OR ("ou" ) NOT (negação) Consulta: Listar os produtos com preço maior ou igual a $100 select * from PRODUCTS where not (BUYPRICE < 100) Operadores Lógicos 25 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT AND ("e" ) OR ("ou" ) NOT (negação) Consulta: Listar os produtos com preços entre $40 e $100, inclusive. select * from products where buyPrice >= 40 and buyPrice <=100 Operadores Lógicos26 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT AND ("e" ) OR ("ou" ) NOT (negação) Consulta: Listar os produtos com preços fora do intervalo de $ 40 e $ 100. select * from products where buyprice < 40 or buyprice > 100 Operadores Lógicos 27 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT AND ("e" ) OR ("ou" ) NOT (negação) Consulta: Listar os produtos 'Motorcycles' e 'Classic Cars‘ que custam acima de $50) select * from products where (productline = 'motorcycles' or productline = 'classic cars') and buyprice > 50 Operadores Lógicos 28 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT Consulta: Listar os produtos o intervalo de $50 a $100. select * from products where buyprice between 50 and 100 Operadores Between e NOT Between 29 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT Consulta: Listar os produtos fora do intervalo de $50 a $100. select * from products where buyprice not between 50 and 100 Operadores Between e NOT Between 30 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT Consulta: Listar os clientes cujos nomes iniciam entre A e J. select * from customers where customerName between 'A%' and 'J%' Operadores Between e NOT Between 31 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT WHERE <nome da coluna> <NOT> LIKE <valor> Os operadores LIKE e NOT LIKE só trabalham sobre colunas que sejam do tipo CHAR. % - substitui todos os caracteres a partir da posição indicada _ - substitui qualquer caractere na posição indicada Operadores LIKE e NOT LIKE 32 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT Exemplos: • 'abc%' - strings começando com 'abc' • '%xyz' - strings terminando com 'xyz' • '%aaa%' - strings contendo 'aaa' • '___' - strings contendo exatamente três caracteres • 'a_b%' - strings iniciando com 'a', seguido de um caracter simples, seguido de 'b‘ e seguido de zero ou mais caracteres. Operadores LIKE e NOT LIKE 33 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT Consulta: Listar os clientes dos países que iniciam com a letra “S”. select * from customers where country like 'S%' Operadores LIKE e NOT LIKE 34 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT Consulta: Listar os clientes dos países que não iniciam com a letra “S”. select * from customers where country not like 'S%' Operadores LIKE e NOT LIKE 35 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT Consulta: Listar os clientes com endereços que possuem a palavra “Long” select * from customers where addressLine1 like '%Long%' Operadores LIKE e NOT LIKE 36 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT WHERE <nome da coluna> <NOT> IN <valores> Consulta: Listar os clientes americanos e franceses select * from customers where country in ('USA', 'France') Operadores baseados em listas IN e NOT IN 37 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT WHERE <nome da coluna> <NOT> IN <valores> Consulta: Listar os clientes não americanos nem franceses select * from customers where country not in ('USA', 'France') Operadores baseados em listas IN e NOT IN 38 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT WHERE <nome da coluna> IS NULL WHERE <nome da coluna> IS NOT NULL Consulta: Mostrar os clientes sem o 2º endereço cadastrado. select * from CUSTOMERS where addressLine2 is null Operadores IS NULL e IS NOT NULL 39 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT Consulta: Mostrar os clientes com o 2º endereço cadastrado. select * from CUSTOMERS where addressLine2 is not null Operadores IS NULL e IS NOT NULL 40 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT Consulta: Mostrar os pedidos não despachados e em processamento select * from orders where shippedDate is null and status in ('In Process') Operadores IS NULL e IS NOT NULL 41 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT SELECT <nome da(s) coluna(s)> FROM <tabela> WRERE <condição(ões)> ORDER BY columnA ASC|DESC, columnB ASC|DESC, ... Ordenando os Dados Selecionados 42 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT Consulta: Listar os nomes dos clientes em ordem crescente. select customerName from customers order by customerName asc Ordenando os Dados Selecionados 43 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT Consulta: Listar os países dos clientes, que possuem estados cadastrados, em ordem ascendente de país e, depois, descendente de estado. SELECT country, state FROM customers where state is not null order by country, state desc Ordenando os Dados Selecionados 44 Banco de Dados II – Prof Tavares SQL / COMANDO SELECT -- Mostra as duas primeiras linhas SELECT * FROM products ORDER BY buyPrice LIMIT 2 -- Pula as duas primeiras linhas e mostra a próxima linha SELECT * FROM products ORDER BY buyPrice LIMIT 2, 1 Cláusula LIMIT 45 Banco de Dados II – Prof Tavares Fim
Compartilhar