Sql server

227 visualizações

Publicada em

Banco de dados

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

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
227
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
10
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Sql server

  1. 1. Treinamento básico José Simão de Paula Pinto 1 SQL Linguagem de Consulta Estruturada Revisão José Simão de Paula Pinto 2 Servidores de arquivos x Gerenciadores de Bancos de Dados
  2. 2. José Simão de Paula Pinto 3 uVisão Geral n Sistemas de Arquivos x Banco de Dados Relacional n Conceitos Básicos de Bancos de Dados Relacional José Simão de Paula Pinto 4 uAcesso a Dados n Sistemas de Arquivos l Os dados são obtidos após percorrer-se um ou mais arquivos, por meio de linguagens de programação, sendo em geral necessária a construção de um novo programa para cada nova consulta n Banco de Dados Relacional l O gerenciador de banco de dados obtém as informações que foram solicitadas por meio de uma linguagem de consulta padrão, e entrega-as em forma de lista (ou relatório)
  3. 3. Informação de um cliente; informação de um pedido Colunas ou Tabelas Pedidos de um cliente José Simão de Paula Pinto 5 uO Modelo de Entidades e Relacionamentos EExxiissttee ccoommoo EExxeemmppllooss EEnnttiiddaaddeess RReellaacciioonnaammeennttooss AAttrriibbuuttooss TTaabbeellaass Informação de um cliente; informação de um pedido Colunas ou Tabelas Pedidos de um cliente Colunas (ou Campos) numa Tabela Colunas (ou Campos) numa Tabela Nome, Endereço, Telefone do cliente Nome, Endereço, Telefone do cliente uTabelas (Entidades) e Colunas (Atributos) n Tabelas tem nomes únicos n São compostas por linhas e colunas n Linhas e colunas podem estar em qualquer ordem n Tem um identificador único: chave primária (Primary Key) José Simão de Paula Pinto 6 identificador nome endereço telefone … … ... 1001 João … … . 5554444 ~~~ 1002 Alberto … … . 4687999 ~~~ 1003 Franciso … … .. NULL ~~~ 1004 Maria … … .. 5678900 1005 Sônia … … ... 0988855 ~~~ 1006 Roberto … … … . NULL ~~~ clientes n Colunas: atributos
  4. 4. José Simão de Paula Pinto 7 uRelacionamentos identificador nome … … … . … … … .. … … . … … … … .. 1001 1002 1008 João Alberto. Wilson S… .. S… .. … … . … . … . … . 98022 98022 98026 NULL 206-555-1212 NULL 05 Jun 1992 07 Ago 1992 03 Mar 1993 clientes PK NN NN NN NN numero cliente produto 112 1002 1001 1001 Pedidos PK PK,FK, NN NN 567 566 122 José Simão de Paula Pinto 8 uSQL - “Structured Query Language” n SQL - linguagem estruturada criada para a manipulação dos elementos do banco de dados n Características importantes: l Padronizada para os bancos de dados relacionais. l Cada comando é uma descrição do que se deseja obter. l Quem executa o comando é o gerenciador do banco de dados.
  5. 5. Definição de dados - DDL José Simão de Paula Pinto 9 Comandos da Linguagem de Consulta Estruturada José Simão de Paula Pinto 10 uCriar uma tabela - CREATE TABLE n Permite a criação de uma tabela e a especificação de como será seu conteúdo (nomes e tipos de dados das colunas) n Palavras chave: l CREATE TABLE - especifica o nome da tabela. l CHAR, VARCHAR - tipos de dados para caracteres. l INT - tipo de dados para números.
  6. 6. CREATE TABLE clientes ( nome VARCHAR(40), telefone VARCHAR(10) ) José Simão de Paula Pinto 11 uExemplo de criação de tabela - CREATE TABLE ANTES DEPOIS nome telefone CREATE TABLE clientes ( nome VARCHAR(40), telefone VARCHAR(10) ) José Simão de Paula Pinto 12 uApagar (destruir) uma tabela - DROP TABLE n Permite apagar uma tabela (não somente o conteúdo, mas a tabela em si) de um banco de dados. n Palavras chave: l DROP TABLE - apaga a tabela indicada n ATENÇÃO: este comando apagará a tabela e todo o seu conteúdo do banco de dados especificado ou em uso. Não existe volta ! Use com cuidado !
  7. 7. José Simão de Paula Pinto 13 uExemplo de deleção de tabela - DROP TABLE ANTES telefone João Alberto Maria Francisco 445-0988 465-98-87 789-9877 null nome DEPOIS DDRROOPP TTAABBLLEE cclliieenntteess Manipulação de dados - DML José Simão de Paula Pinto 14 Comandos da Linguagem de Consulta Estruturada
  8. 8. José Simão de Paula Pinto 15 uObtendo informações - SELECT n Seleciona linhas e colunas de uma tabela n Palavras chave: l SELECT - determina quais as colunas a serem retornadas ( o asterisco “ * ” seleciona todas). l FROM - determina de quais tabelas serão selecionados os dados. l WHERE - determina quais as linhas deverão ser retornadas. A cláusula where também é conhecida por critério. uExemplo do comando SELECT SELECT nome,telefone FROM clientes José Simão de Paula Pinto 16 SELECT nome,telefone FROM clientes nome telefone João Alberto Maria Francisco 445-0988 465-98-87 789-9877 null
  9. 9. uExemplo do comando SELECT condicional SELECT nome,telefone FROM clientes WHERE nome = ‘João’ José Simão de Paula Pinto 17 SELECT nome,telefone FROM clientes WHERE nome = ‘João’ nome telefone João 445-0988 José Simão de Paula Pinto 18 uAdicionando linhas - INSERT n Insere linhas em uma tabela n Palavras chave: l INSERT - indica a tabela e os nomes das colunas nas quais será realizada a inclusão dos dados. l VALUES - informa quais são os valores a serem incluídos nas respectivas colunas.
  10. 10. uExemplo do comando INSERT INSERT clientes (nome,telefone) VALUES (Sônia, null) José Simão de Paula Pinto 19 INSERT clientes (nome,telefone) VALUES (Sônia, null) telefone João Alberto Maria Francisco Sônia 445-0988 465-98-87 789-9877 null null nome ANTES telefone João Alberto Maria Francisco 445-0988 465-98-87 789-9877 null nome DEPOIS José Simão de Paula Pinto 20 uAlterando informações - UPDATE n Altera o conteúdo de determinadas colunas em uma ou mais linhas de uma tabela. n Palavras chave: l UPDATE - determina qual é a tabela que será alterada. l SET - determina quais são as alterações a serem realizadas, em em quais colunas elas ocorrerão. l WHERE - determina quais são as linhas a serem alteradas.
  11. 11. uExemplo do comando UPDATE UPDATE clientes SET telefone = ”882-3344” WHERE nome = ”Sônia” ANTES DEPOIS José Simão de Paula Pinto 21 UPDATE clientes SET telefone = ”882-3344” WHERE nome = ”Sônia” telefone João Alberto Maria Francisco Sônia 445-0988 465-98-87 789-9877 null 882-3344 nome telefone João Alberto Maria Francisco Sônia 445-0988 465-98-87 789-9877 null null nome José Simão de Paula Pinto 22 uApagando informações - DELETE n Apaga uma ou mais linhas de uma tabela. n Palavras chave: l DELETE - determina qual a tabela que terá linhas apagadas. l WHERE - determina quais são as linhas a serem apagadas. n Atenção: este comando não apaga a tabela, somente as suas linhas (seu conteúdo) !
  12. 12. uExemplo do comando DELETE condicional DELETE clientes WHERE nome = ”Sônia” José Simão de Paula Pinto 23 telefone João Alberto Maria Francisco Sônia 445-0988 465-98-87 789-9877 null 882-3344 nome ANTES telefone João Alberto Maria Francisco 445-0988 465-98-87 789-9877 null nome DEPOIS DELETE clientes WHERE nome = ”Sônia” José Simão de Paula Pinto 24 uExemplo de comando DELETE sem condição ! telefone João Alberto Maria Francisco Sônia 445-0988 465-98-87 789-9877 null 882-3344 nome ANTES DEPOIS nome telefone DDEELLEETTEE cclliieenntteess
  13. 13. José Simão de Paula Pinto 25 uResumo dos comandos de manipulação vistos n SELECT colunas FROM tabela WHERE condição n INSERT tabela VALUES ( conteúdo a armazenar ) n UPDATE tabela SET coluna = novo conteúdo WHERE condição n DELETE tabela WHERE condição Exercícios de fixação José Simão de Paula Pinto 26 Prática da Linguagem de Consulta Estruturada
  14. 14. José Simão de Paula Pinto 27 uExercício - Criação de tabelas cod nome cod descricao cod valor comprador produto qtdade n cliente n produto n preco n venda José Simão de Paula Pinto 28 uRespostas - Criação de tabelas n CREATE TABLE cliente ( cod INT, nome CHAR(20) ) n CREATE TABLE produto ( cod INT, descricao CHAR(20) )
  15. 15. José Simão de Paula Pinto 29 uRespostas - Criação de tabelas n CREATE TABLE preco ( cod INT, valor MONEY ) n CREATE TABLE venda ( comprador INT, produto INT, qtdade INT ) cod nome José Simão de Paula Pinto 30 uExercício - Inserção de valores cod descricao Barco Sabonete Abacaxi 123 Ana Pedro Tânia Maria João 12345
  16. 16. José Simão de Paula Pinto 31 uExercício - Inserção de valores cod valor 500.80 32.89 2.00 123 comprador produto qtdade 312142 1851 10 1 122331 José Simão de Paula Pinto 32 uRespostas - Inserção de valores n INSERT cliente VALUES(1,'ANA') n INSERT cliente VALUES(2,'PEDRO') n INSERT cliente VALUES(3,'TÂNIA') n INSERT cliente VALUES(4,'MARIA') n INSERT cliente VALUES(5,'JOÃO') n INSERT produto VALUES(1,'BARCO') n INSERT produto VALUES(2,'SABONETE') n INSERT produto VALUES(3,'ABACAXI')
  17. 17. José Simão de Paula Pinto 33 uRespostas - Inserção de valores n INSERT preco VALUES(1, 500.80) n INSERT preco VALUES(2, 32.89) n INSERT preco VALUES(3, 2.00) n INSERT venda VALUES(3,1,1) n INSERT venda VALUES(1,2,8) n INSERT venda VALUES(2,2,5) n INSERT venda VALUES(1,3,1) n INSERT venda VALUES(4,3,10) n INSERT venda VALUES(2,1,1) José Simão de Paula Pinto 34 uExercício - Comandos de seleção n Selecionar todos os clientes n Selecionar todos os produtos n Selecionar todos os preços n Selecionar todos os registros das vendas efetuadas
  18. 18. José Simão de Paula Pinto 35 uResposta - Selecionar todos os clientes SSEELLEECCTT nnoommee FFRROOMM cclliieennttee nome Ana Pedro Tânia Maria João José Simão de Paula Pinto 36 uResposta - Selecionar todos os produtos SSEELLEECCTTddeessccrriiccaaooFFRROOMM pprroodduuttoo descricao Barco Sabonete Abacaxi
  19. 19. José Simão de Paula Pinto 37 uResposta - Selecionar todos os preços SSEELLEECCTT vvaalloorr FFRROOMMpprreeccoo valor 500.80 32.89 2.00 José Simão de Paula Pinto 38 uResposta - Selecionar todas as vendas efetuadas SSEELLEECCTT ** FFRROOMM vveennddaa ??? comprador produto qtdade 312142 1851 10 1 122331
  20. 20. Classificação, comparações, junção e operadores agregadores José Simão de Paula Pinto 39 Comandos da Linguagem de Consulta Estruturada José Simão de Paula Pinto 40 uOperador de classificação - ORDER BY n Destina-se à classificação (ordenação) dos dados, na apresentação (não afeta os dados originais na tabela). n Palavras chave: l ASC - ordenação ascendente (do menor para o maior). l DESC - ordenação descendente (do maior para o menor)
  21. 21. SELECT nome FROM cliente ORDER BY nome DESC SELECT nome FROM cliente ORDER BY nome DESC DESC José Simão de Paula Pinto 41 uExemplo do uso de ORDER BY SELECT nome FROM cliente ORDER BY nome SELECT nome FROM cliente ORDER BY nome ASC nome Ana João Maria Pedro Tânia nome Tânia Pedro Maria João Ana José Simão de Paula Pinto 42 uOperadores de comparação = Igual > Maior < Menor >= Maior ou igual <= Menor ou igual <> ou != Diferente ou não igual LIKE Parecido
  22. 22. SELECT nome FROM cliente WHERE cod = 4 José Simão de Paula Pinto 43 uExemplo do uso do operador igual (=) SELECT nome FROM cliente WHERE cod = 4 nome Maria SELECT nome FROM cliente WHERE cod <> 4 SELECT nome FROM cliente WHERE cod <> 4 José Simão de Paula Pinto 44 uExemplo do uso do operador diferente ( <> ou != ) nome Ana Pedro Tânia João
  23. 23. SELECT nome FROM cliente WHERE nome LIKE ‘%a’ SELECT nome FROM cliente WHERE nome LIKE ‘%a’ José Simão de Paula Pinto 45 uExemplo do uso do operador LIKE nome Ana Tânia Maria José Simão de Paula Pinto 46 uOperadores AND e OR n Operador AND E = somente retornará os dados quando as condições forem todas satisfeitas n Operador OR OU = retorna dados assim que qualquer das condições for satisfeita
  24. 24. SELECT nome FROM cliente WHERE cod > 40 AND nome = ‘Maria’ SELECT nome FROM cliente WHERE cod > 40 AND nome = ‘Maria’ José Simão de Paula Pinto 47 uExemplo de uso do operador AND nome SELECT nome FROM cliente WHERE cod > 40 OR nome = ‘Maria’ SELECT nome FROM cliente WHERE cod > 40 OR nome = ‘Maria’ José Simão de Paula Pinto 48 uExemplo do uso do operador OR nome Maria
  25. 25. SELECT nome FROM cliente WHERE cod < 3 AND nome LIKE ‘%o’ OR nome = ‘Maria’ SELECT nome FROM cliente WHERE cod < 3 AND nome LIKE ‘%o’ OR nome = ‘Maria’ José Simão de Paula Pinto 49 uExemplo do uso dos operadores AND e OR juntos nome Pedro Maria José Simão de Paula Pinto 50 uJunção de tabelas - JOIN n Utilizamos a junção (JOIN) de tabelas, e seus operadores, de maneira a expressar os relacionamentos que foram criados quando da montagem da base de dados, obtendo os conjuntos de valores originais, desnormalizados. n A junção é efetuada basicamente efetuando-se uma comparação entre dois campos de valores semelhantes em tabelas distintas, selecionando em ambas as tabelas as linhas que atendam estes valores e combinando-as. Estas operações serão efetuadas automaticamente pelo gerenciador de bancos de dados.
  26. 26. SELECT descricao, valor FROM produto, preco WHERE produto.cod = preco.cod SELECT descricao, valor FROM produto, preco WHERE produto.cod = preco.cod José Simão de Paula Pinto 51 uExemplo de junção - JOIN cod descricao Barco Sabonete Abacaxi 123 cod valor 500.80 32.89 2.00 123 descricao valor 500.80 32.89 2.00 Barco Sabonete Abacaxi José Simão de Paula Pinto 52 uOperadores de agregação MIN Retorna o menor valor MAX Retorna o maior valor COUNT Retorna a quantidade de valores AVG Retorna a média dos valores SUM Retorna a soma dos valores
  27. 27. SELECT MAX( valor ) FROM preco --> Retorna o maior preço SELECT AVG( valor ) FROM preco --> Retorna a média de preços SELECT COUNT( * ) FROM cliente --> Retorna a quantidade de clientes José Simão de Paula Pinto 53 uExemplos de uso de operadores de agregação SELECT MAX( valor ) FROM preco --> Retorna o maior preço SELECT AVG( valor ) FROM preco --> Retorna a média de preços SELECT COUNT( * ) FROM cliente --> Retorna a quantidade de clientes José Simão de Paula Pinto 54 uAgrupamento / Subtotais - GROUP BY n Este comando permite que a apresentação dos dados retornados da consulta seja agrupada de acordo com uma determinada condição, digamos a soma dos valores vendidos para cada produto. É utilizado em conjunto com o comando SELECT. n Uso: SELECT colunas FROM tabela WHERE condição GROUP BY coluna ou agregado
  28. 28. SELECT descricao, unidades=sum(qtdade) FROM produto, venda WHERE produto.cod = venda.produto GROUP BY descricao José Simão de Paula Pinto 55 uExemplo de agrupamento - GROUP BY SELECT descricao, unidades=sum(qtdade) FROM produto, venda WHERE produto.cod = venda.produto GROUP BY descricao descricao unidades 11 2 13 Abacaxi Barco Sabonete José Simão de Paula Pinto 56 uOperador DISTINCT n O operador DISTINCT possibilita que uma consulta retorne valores únicos, sem repetições, para a coluna de dados.Este operador deve ser utilizado em conjunto com a declaração SELECT. n Uso: SELECT DISTINCT (coluna) FROM tabela WHERE condição
  29. 29. SELECT descricao FROM produto, venda WHEREproduto.cod = venda.produto SELECT descricao FROM produto, venda WHEREproduto.cod = venda.produto SELECT DISTINCT (descricao) FROM produto, venda WHEREproduto.cod = venda.produto SELECT DISTINCT (descricao) FROM produto, venda WHEREproduto.cod = venda.produto Usando DISTINCT descricao José Simão de Paula Pinto 57 uExemplo do uso do operador DISTINCT SEM usar DISTINCT descricao Barco Sabonete Sabonete Abacaxi Abacaxi Barco Abacaxi Barco Sabonete José Simão de Paula Pinto 58 uOperadores IN e BETWEEN n IN = para testar se um valor está dentro de um determinado conjunto de valores. Pode utilizar o operador IN em conjunto com o operador NOT (formando a expressão NOT IN). n BETWEEN = para testar se um valor está entre uma determinada faixa de valores.
  30. 30. SELECT descricao FROM produto WHERE descricao IN (‘Abacaxi, ‘Sabonete’) José Simão de Paula Pinto 59 uExemplo do uso do operador IN SELECT descricao FROM produto WHERE descricao IN (‘Abacaxi, ‘Sabonete’) descricao Sabonete Abacaxi SELECT nome FROM cliente WHERE cod BETWEEN 2 and 3 José Simão de Paula Pinto 60 uExemplo do uso do operador BETWEEN SELECT nome FROM cliente WHERE cod BETWEEN 2 and 3 descricao nome Pedro Barco Tânia Sabonete Abacaxi
  31. 31. José Simão de Paula Pinto 61 uOperador HAVING n O operador HAVING deverá ser utilizado em conjunto com a declaração SELECT e sua função será a de estabelecer um critério extra de agrupamento ou seleção de valores, quando utilizando-se a cláusula GROUP BY. Pode-se entender a declaração HAVING como sendo uma cláusula WHERE para a declaração GROUP BY. SELECT descricao, unidades=sum(qtdade) FROM produto, venda WHERE produto.cod = venda.produto GROUP BY descricao HAVING sum(qtdade) > 12 José Simão de Paula Pinto 62 uExemplo de uso do operador HAVING SELECT descricao, unidades=sum(qtdade) FROM produto, venda WHERE produto.cod = venda.produto GROUP BY descricao HAVING sum(qtdade) > 12 descricao unidades Sabonete 13
  32. 32. Exercícios de fixação José Simão de Paula Pinto 63 Prática da Linguagem de Consulta Estruturada José Simão de Paula Pinto 64 uExercícios - Comandos de seleção avançados n Quantas vendas foram registradas? n Qual dos clientes não comprou nada? n O que cada cliente comprou e por quanto? n Descritivo (descricao, preços unitários e total e quantidade) de cada venda, ordenado por produto n Quais os totais de compras por cliente? n Totais de vendas: quantas vendas e seu valor (geral)
  33. 33. Stored Procedures José Simão de Paula Pinto 65 Comandos da Linguagem de Consulta Estruturada José Simão de Paula Pinto 66 uSTORED PROCEDURES n Stored Procedures, ou procedimentos armazenados, são como que pequenos programas, escritos em linguagem SQL, e ficam armazenados no gerenciador de banco de dados. n O servidor de bancos de dados realiza uma pré-compilação dos procedimentos, e armazena-os em memória cache após a sua primeira execução, de maneira que tendem a ser / tornar-se mais rápidos que a execução de declarações com mesma finalidade a partir do cliente.
  34. 34. José Simão de Paula Pinto 67 uCriação de STORED PROCEDURES n A sintaxe para a criação de uma stored procedure é: l CREATE PROCEDURE nome do procedimento AS l Exemplo: l CREATE PROCEDURE TodosClientes AS SELECT * FROM cliente l Para sua execução, basta declarar o nome do procedimento, neste exemplo TodosClientes José Simão de Paula Pinto 68 uSTORED PROCEDURES com parâmetros n Podemos enviar parâmetros para uma stored procedured, desde que ela tenha sido declarada de maneira a recebê-lo. n Os parâmetros são declarados por meio do uso do símbolo @ seguido do nome da variável. Deve-se informar também o tipo de dados que será tratado: l @nome TipoDeDado n Os parâmetros (de entrada) são informados antes do uso da palavra reservada AS, na declaração da stored procedure.
  35. 35. CREATE PROCEDURE QualNome @codigo int AS SELECT cod, nome FROM cliente WHERE cod = @codigo José Simão de Paula Pinto 69 uExemplo de STORED PROCEDURE com parâmetro CREATE PROCEDURE QualNome @codigo int AS SELECT cod, nome FROM cliente WHERE cod = @codigo QQuuaallNNoommee55 cod nome 5 João José Simão de Paula Pinto 70 uVariáveis em STORED PROCEDURES n Podemos utilizar variáveis dentro de uma stored procedure, desde que elas sejam previamente declaradas. n A declaração ocorre dentro do corpo da stored procedure, utilizando-se a palavra reservada DECLARE e informando um nome de variável (precedido do símbolo @) e o tipo de dados que ela conterá. l DECLARE @nome TipoDeDado
  36. 36. CREATE PROCEDURE Total @codigo int, @quantos int AS DECLARE @saida money SELECT @saida = @quantos * (SELECT valor FROM preco José Simão de Paula Pinto 71 uExemplo de STORED PROCEDURE com variável CREATE PROCEDURE Total @codigo int, @quantos int AS DECLARE @saida money SELECT @saida = @quantos * (SELECT valor FROM preco WHERE cod = @codigo) SELECT ‘Preço total’ = @saida WHERE cod = @codigo) SELECT ‘Preço total’ = @saida TToottaall 33, , 1100 Preço total 20.00 José Simão de Paula Pinto 72 uAlgumas STORED PROCEDURES do sistema n SP_WHO - mostra quem está usando o servidor. n SP_HELP - mostra objetos do banco de dados. n SP_HELP parâmetro - mostra características de “parâmetro”. l SP_HELP cliente - exibe as características da tabela “cliente”. n SP_HELPTEXT parâmetro - exibe o conteúdo da stored procedure passada em. l “parâmetro” SP_HELP TodosClientes - exibe o conteúdo da stored procedure “TodosClientes”.
  37. 37. Exercícios de fixação José Simão de Paula Pinto 73 Prática da Linguagem de Consulta Estruturada José Simão de Paula Pinto 74 uExercícios usando STORED PROCEDURES n Criar STORED PROCEDURES para: l Exibir todos os produtos. l Exibir todos os produtos, e seus preços. l Retornar o preço de um produto desde que passado seu código para o procedimento. l Retornar quantos itens já foram vendidos de um produto, e sua descrição, desde que passado seu código para o procedimento.

×