SQL Oracle

2,117 views
2,065 views

Published on

SQL Oracle

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

No Downloads
Views
Total views
2,117
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
79
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

SQL Oracle

  1. 1. Bando de Dados Relacional RDBMS (Relational Database Management System)Treinar Informática : Oracle 3/6/2013 1
  2. 2. O que é? Conceito abstrato que define maneiras dearmazenar, manipular e recuperar dados estruturados unicamente na forma de tabelas, construindo um bando de dados.Treinar Informática : Oracle 3/6/2013 2
  3. 3. Visão PadrãoTreinar Informática : Oracle 3/6/2013 3
  4. 4. Integridade ReferencialTreinar Informática : Oracle 3/6/2013 4
  5. 5. Constraints Not Manter a Definições de Null, Unique, Prim integridade dos regras. ary Key, Foreign dados. Key e Check.Treinar Informática : Oracle 3/6/2013 5
  6. 6. SQL• Linguagem de pesquisa declarativa para banco de dados relacional.• Características inspiradas na álgebra relacional.• Padrão de banco de dados.• Simplicidade e facilidade de uso.• Uma consulta SQL especifica a forma do resultado e não o caminho para chegar a ele.• Pode ser migrado de plataforma para plataforma sem mudanças estruturais principais. Treinar Informática : Oracle 3/6/2013 6
  7. 7. SQL• Consulta a dados• Inserção, atualização e deleção das linhas de uma tabela• Criação, substituição, alteração e eliminação de objetos• Controle de acesso ao banco de dados e seus objetos• Garantia de consistência e integridade do banco de dados. Treinar Informática : Oracle 3/6/2013 7
  8. 8. Palavras Chaves SQL• DML – Linguagem de Manipulação de Dados• DDL – Linguagem de Definição de Dados• DCL – Linguagem de Controle de Dados• DTL – Linguagem de Transação de Dados• DQL – Linguagem de Consulta de Dados Treinar Informática : Oracle 3/6/2013 8
  9. 9. DDL• Definição de novas tabelas e elementos associados.• Os comandos básicos são:• CREATE• DROPTreinar Informática : Oracle 3/6/2013 9
  10. 10. Tipos de Colunas• Quando se cria uma tabela é necessário especificar o tipo de dados das colunas e a sua dimensão. Esta determina o comprimento máximo que podem ter os valores nela armazenados.• VARCHAR2 (n)• Armazena uma cadeia de caracteres de comprimento variável. O valor máximo de n são 4000 bytes. O Oracle só guarda o que o utilizador introduzir não preenchendo o que falta para o limite n. Se usarmos BYTE n traduz o número de bytes; Footer Text 3/6/2013 10
  11. 11. Tipos de Colunas• CHAR(n)• Caracteres de comprimento fixo n. O valor por omissão é 1 sendo o valor máximo 2000. A base de dados ocupa sempre n caracteres pois preenche o que falta com espaços em branco;• NUMBER(n,d)• Número com n digitos sendo d casas décimais (à direita da virgula);Footer Text 3/6/2013 11
  12. 12. Tipos de Colunas• DATE• Data desde 1 Jan de 4712 AC até 31 de Dez de 9999 DC. Também é armazenada a hora, minuto e segundo. O calendário interno da base de dados tem em conta as alterações de calendário impostas ao longo do tempo, por exemplo a passagem do calendário Juliano para Gregoriano em 1582-10-05, onde foram eliminados 10 dias;Footer Text 3/6/2013 12
  13. 13. Tipos de Colunas• VARCHAR2 surgiu na versão 7 para substituir VARCHAR• Se criar uma coluna com o tipo VARCHAR o SGBD converte em VARCHAR2• Quando insere valores do tipo VARCHAR2 o ORACLE não preenche espaços em branco no fim. Isto significa que JOSE e JOSE§§§ serão strings diferentes. Se os valores fossem do tipo CHAR o ORACLE acrescentava espaços no fim automaticamente;• Quando um valor a introduzir numa coluna excede a sua dimensão a base de dados emite uma mensagem de erro; Footer Text 3/6/2013 13
  14. 14. DML• Realizado para realizar inclusões, consultas, alterações e exclusões de dados presentes em registros.• Pode ser executado em diversos registros de diversas tabelas ao mesmo tempo.• Os comandos são:• INSERT• SELECT• UPDATE• DELETE Treinar Informática : Oracle 3/6/2013 14
  15. 15. DCL• Controla os aspectos de autorização de dados e licenças de usuários para controlar quem tem acesso para ver ou manipular dados dentro do banco de dados.• Os comandos são :• GRANT• REVOKETreinar Informática : Oracle 3/6/2013 15
  16. 16. DTL• Próprio nome ja diz: controle de transação de dados.• Os comandos são:• BEGIN WORK (ou START TRANSACTION, dependendo do dialeto SQL)• COMMIT• ROLLBACK Treinar Informática : Oracle 3/6/2013 16
  17. 17. DQL• É a mais utilizada• Possui apenas um comando : SELECT• Esse comando possui várias cláusulas:• FROM• WHERE• GROUP BY• HAVING• ORDER BY• DISTINCT Treinar Informática : Oracle 3/6/2013 17
  18. 18. DQL• Operadores lógicos:• AND• OR• NOT• Operadores Relacionais:• <• >• <=• >= Treinar Informática : Oracle 3/6/2013 18
  19. 19. DQL• Operadores Relacionais:• =• <>• BETWEEN• LIKE• IN• Funções de Agregação:• AVG• COUNT Treinar Informática : Oracle 3/6/2013 19
  20. 20. DQL• Funções de Agregação:• SUM• MAX• MIN Treinar Informática : Oracle 3/6/2013 20
  21. 21. DBA (Administrador de Banco de Dados)• Avaliar o hardware do servidor de banco de dados• Instalar o Oracle• Planejar, criar e abrir banco de dados• Backup• Controlar usuários• Design• Recuperação após falhas• Monitorar Treinar Informática : Oracle 3/6/2013 21
  22. 22. Arquitetura do Banco de Dados• Arquivos de Controle• Arquivos de dados• Arquivos de redo log on-line• Arquivo de parâmetros• Arquivo de senha• Arquivo de log arquivados Treinar Informática : Oracle 3/6/2013 22
  23. 23. Banco de dados objeto- relacional (BDOR)• A maior parte dos sistemas gerenciadores de bancos de dados (SGBDs) utilizados é baseada no modelo relacional. No entanto, SGBDs baseados em outros modelos têm surgido devido à demanda de novas aplicações. Muitas aplicações, impulsionadas pela WEB, requererem técnicas de acesso que melhorem o desempenho e estruturas de dados muito mais complexas que as tabelas relacionais, com diversos tipos adicionais, como imagem e vídeo, fundamentados na tecnologia de orientação a objetos.Footer Text 3/6/2013 23
  24. 24. Banco de dados objeto- relacional (BDOR)• Sistema de gerenciamento de banco de dados semelhante a um banco de dados relacional, porém com um modelo de banco de dados orientado a objetos: objetos, classes e herança são suportados diretamente nos esquemas de banco de dados e na linguagem de consulta.• Teve sua origem na combinação de idéias dos modelos de dados tradicionais e de linguagens de programação orientada a objetos. Treinar Informática : Oracle 3/6/2013 24
  25. 25. Banco de dados objeto- relacional (BDOR)• A principal estrutura do modelo objeto-relacional são as tabelas, entretanto, com muito mais recursos do que as tabelas puramente relacionais. Entre esses recursos podemos destacar:• definição de tipos pelo usuário;• registros e vetores;• métodos e funções;• referências, herança e polimorfismo.• São acrescentadas também estruturas a linguagens de consulta relacionais, como SQL, para tratar os tipos de dados acrescentados. Footer Text 3/6/2013 25
  26. 26. Banco de dados objeto- relacional (BDOR)• O objetivo é preservar os fundamentos relacionais, em particular o acesso declaratório ao dado, acrescentando novas funcionalidades.• Para utilizar os recursos de orientação a objetos a Oracle, a partir da versão 8, implementou diversos conceitos que definem um modelo objeto- relacional tais como: tipo objeto, tabela de objetos, etc. Footer Text 3/6/2013 26
  27. 27. Banco de dados objeto- relacional (BDOR)• Em que são utilizados:• Objetos complexos – são formados por construtores (conjunto, listas, tuplas, registros, coleções e arrays) aplicados a objetos simples (inteiros, booleans, strings)• Também podemos utilizar estes tipos de dados estruturados onde a consulta ao banco de dados precisa ser mais complexa, pois ao invés de acesso a tabela e registros, é necessário o acesso a listas, tuplas, arrays entre outros. Treinar Informática : Oracle 3/6/2013 27
  28. 28. Banco de dados objeto- relacional (BDOR)• Exemplo de aplicações complexas:• Projetos de engenharia e arquitetura• Experiências científicas• Telecomunicações• Sistemas de informações geográficas• Multimídia Treinar Informática : Oracle 3/6/2013 28
  29. 29. Banco de dados objeto- relacional (BDOR)• Características das aplicações complexas:• Transações de duração mais longa• Novos tipos de dados para armazenar imagens ou grandes itens de texto• Necessidade de definir operações específicas de de aplicações não-padronizadas.Treinar Informática : Oracle 3/6/2013 29
  30. 30. Banco de dados objeto- relacional (BDOR)• Características:• Cada objeto possui um identificador de objeto ou OID (object identifer), que o torna único, não usa a linguagem SQL, por isso não há querys, você busca seus objetos através de metodologias predefinidas. Essas metodologias são chamadas de Native Query´s.• Na diferenciação do modelo relacional e orientado a objeto, ficaria da seguinte maneira: Treinar Informática : Oracle 3/6/2013 30
  31. 31. Banco de dados objeto- relacional (BDOR)Treinar Informática : Oracle 3/6/2013 31
  32. 32. Banco de dados objeto- relacional (BDOR)• A forma de acesso aos dados é remodelada porque os SGDBs orientados a objetos sugerem novos tipos de dados como sequência de bits, ponteiros, linhas, números complexos e elementos de dados do tipo array.• Para acessar uma array, um modo especial de consulta teria que ser construído por exemplo: Treinar Informática : Oracle 3/6/2013 32
  33. 33. Banco de dados objeto- relacional (BDOR)• A consulta realizada retorna o nome dos carros vendidos no mês de fevereiro, representado pela sentença (2) e com quantidade acima de 200 unidades; o mês de fevereiro faz parte de uma array de 12 elementos, representando os meses.Treinar Informática : Oracle 3/6/2013 33
  34. 34. Banco de dados objeto- relacional (BDOR)• Oracle 11g – Um SGBD Objeto Relacional:• Mistura banco de dados relacional com conceitos de orientação a objetos.• Usa SQL no sistema Objeto Relacional.• Existe no Oracle o Object Type que um tipo definido pelo usuário na qual equivale ao de classe em POO (Programação Orientada a Objetos) .• O Object Type captura tanto a estrutura como o comportamento de um objeto. A sintaxe segue o exemplo: Treinar Informática : Oracle 3/6/2013 34
  35. 35. Banco de dados objeto- relacional (BDOR)Treinar Informática : Oracle 3/6/2013 35
  36. 36. Banco de dados objeto- relacional (BDOR)• Vantagens:• Capacidade de Armazenamento de Objetos• Poder de processamento de requisições• Não possuem chaves primárias nem estrangeiras, aumentando o desempenho das consultas e processos• Os objetos se comunicam entre si através de mensagens Treinar Informática : Oracle 3/6/2013 36
  37. 37. Banco de dados objeto- relacional (BDOR)• Desvantagens:• Falta de padronização das linguagens de manipulação dos dados• Alto custo de aquisição das novas tecnologias• Curva de aprendizagem e adaptação ao novo ambiente demorada.Treinar Informática : Oracle 3/6/2013 37
  38. 38. Diferentes Meios de Armazenar Dados• Os dispositivos de armazenamento foram um meio tecnológico inventado para trazer comodidade e mobilidade para as pessoas.• Os dispositivos podem reter informações, processar informações ou ambos.• Como exemplos de dispositivos de armazenamento por meio ópticos temos os CDs, DVDs e Blu-Ray.• Como exemplos de dispositivos de armazenamento por meio eletrônico temos os pen drives e cartões de memória. Treinar Informática : Oracle 3/6/2013 38
  39. 39. Modelo de Dados• É um subconjunto do modelo de implementação que descreve a representação lógica e física dos dados persistentes no sistema.• Abrange qualquer comportamento definido no banco de dados, como procedimentos armazenados, triggers, restrições etc.• O designer de banco de dados é responsável pela integridade do modelo de dados, garantindo que ele esteja correto, consistente e compreensível como um todo.Treinar Informática : Oracle 3/6/2013 39
  40. 40. Modelo de Dados• Precisa ser adaptado à semântica do banco de dados, que pode variar um pouco entre RDBMSes. Os sistemas de Bancos de Dados de Objetos possuem semânticas bem diferentes.Treinar Informática : Oracle 3/6/2013 40
  41. 41. Joins• Significa Unir ou União• Utilizamos quando precisamos buscar dados em outras tabelas desde que satisfaça as condiçõespara isso.• Funciona em qualquer banco de dados relacional.• Existem 3 tipos de Joins:• LEFT• RIGHT• INNERTreinar Informática : Oracle 3/6/2013 41
  42. 42. Joins• LEFT JOIN – o banco de dados irá analisar a estrutura da tabela da direita e comparar com a tabela da esquerda . Treinar Informática : Oracle 3/6/2013 42
  43. 43. Joins• Na primeira situação temos o Left Join, a seta está apontando para a tabela FUNCIONARIOS simbolizando que a precedência é da tabela da esquerda.• RIGHT JOIN – Também conhecido apenas por JOIN, dependência da tabela da Direita.• INNER JOIN – Oberva se existem registros combinados em ambas as tabelas, ou seja, para que um registro seja incluído na lista de resultados, o campo de ligação entre as duas tabelas deve satisfazer as condições de ambas. Treinar Informática : Oracle 3/6/2013 43
  44. 44. Functions• A function é usada para fazer um processamento e retornar o resultado deste processamento, ou seja, uma function obrigatoriamente precisa retornar um valor.• Uma function pode ser de única linha ou de várias linhas. É preciso criar um tipo para que nossa function saiba o que retornar, ja que dentro de um tipo temos um ou vários atributos. Esses atributos são os valores que vamos retornar na nossa function. Treinar Informática : Oracle 3/6/2013 44
  45. 45. Functions• Exemplo function com única linha :• CREATE OR REPLACE FUNCTION DIA_SEMANA (DATA DATE) RETURN DIA AS VARCHAR2(20);• BEGIN• SELECT DIA_SEM• INTO RESULT• FROM TABELA_DIAS_ANO• WHERE DATA_ANO = DATA• RETURN;• END;Treinar Informática : Oracle 3/6/2013 45
  46. 46. Functions• Exemplo function vários dados.• (Script exemplo aula) Treinar Informática : Oracle 3/6/2013 46
  47. 47. Funções de Caracter• Sua forma de utilização é bem simples: só precisa saber o nome da função que precisa trabalhar e os argumentos que utilizará.• Falaremos de algumas funções de caracter conhecidas e para isso usaremos a tabela de teste DUAL do ORACLE. A tabela DUAL permite ser utilzada por vários usuários do banco. ela contém apenas uma linha e uma coluna. Este objeto é muito utilizado para fazer testes. Treinar Informática : Oracle 3/6/2013 47
  48. 48. Funções de Caracter• Função LOWER• Retorna a informação do campo com caixa baixa(letras minúsculas).• Função UPPER• Retorna a informação do campo com caixa baixa(letras minúsculas).• Função INITCAP• Retorna o primeiro caractere em maiúsculo.• Função CONCAT• Concatena camposTreinar Informática : Oracle 3/6/2013 48
  49. 49. Funções de Caracter• Função SUBSTR Conta a partir do X caractere y caracteres Substr(campo,X,Y) X à posição Y à quantidade que vai contar• Função LPAD Joga o conteúdo disponível do campo para esquerda SELECT LPAD(SAL,10,’*’) FROM EMP2; LPAD(Campo,número , ‘caractere’); Treinar Informática : Oracle 3/6/2013 49
  50. 50. Funções de Caracter• Função RPAD• Joga o conteúdo disponível do campo para direita• Função TRIM• Tira os espaços do campo• Função REPLACE• Analisa a string de caracteres mencionada na função e substitui por outra string que foi especificada;• SELECT REPLACE(‘JACK AND JUE’,’J’,’BL’) FROM DUAL; Treinar Informática : Oracle 3/6/2013 50
  51. 51. Funções de Data• Com o Oracle é possível obter uma série de resultados a partir de uma ou mais datas, como por exemplo verificar o último dia do mês ou verificar a quantidade de meses entre duas datas, etc.• Data atual do sistema: SYSDATE• Remover meses de uma data: ADD_MONTHS(SYSDATE, -1)• Adicionar meses de uma data: ADD_MONTHS(SYSDATE, +1)• Buscar o último dia do mês: LAST_DAY(SYSDATE)• Primeiro dia do mês: TRUNC(SYSDATE, ‘MONTH’) Treinar Informática : Oracle 3/6/2013 51
  52. 52. Funções de Data• Quantidade de meses entre duas datas: MONTHS_BETWEEN(SYSDATE, ‘27/07/1982’)• Primeiro dia do ano: TRUNC(SYSDATE, ‘YEAR’)• Dias da semana:• DECODE( TO_NUMBER( TO_CHAR (SYSDATE, ‘D’) )• ,1, ‘domingo’• ,2, ‘segunda-feira’• ,3, ‘terça-feira’• ,4, ‘quarta-feira’• ,5, ‘quinta-feira’• ,6, ‘sexta-feira’• ,7,’sábado’• ) Treinar Informática : Oracle 3/6/2013 52
  53. 53. Funções para Conversão de Tipos• TO_DATE(string)• TO_CHAR(data)• TO_CHAR(número)• TO_NUMBER(string) Treinar Informática : Oracle 3/6/2013 53
  54. 54. Outras Funções• INSTR Pesquisa a posição de um caracter dentro de uma string. A função retorna um inteiro indicando a posição do primeiro caractere localizado na string.• SELECT INSTR(‘THIS IS A TEST’, ‘IS’) FROM DUAL;• TRANSLATE Substitui uma seqüência de caracteres em uma string com um outro conjunto de caracteres. No entanto, é importante destacar que ele substitui um único caractere de cada vez.• SELECT TRANSLATE(‘Mississippi’, ‘s’, ‘S’) FROM dual; Treinar Informática : Oracle 3/6/2013 54
  55. 55. Outras Funções• MEDIAN A ideia da mediana é separar a distribuição em duas partes iguais. Para calcular essa medida, inicialmente os dados devem ser ordenados. A mediana corresponderá ao ponto do meio da distribuição. Em nosso exemplo, se ordenarmos as punições de forma ascendente, teremos o seguinte conjunto de valores: 1, 2, 3, 3, 4, 4, 4.• Nesse caso, o valor 3 é a mediana, pois é ele quem separa a distribuição em duas partes (1, 2, 3 e 4 , 4, 4). No SGBD Oracle, a função MEDIAN (disponível a partir do Oracle 10) é responsável por realizar o cálculo da mediana. Treinar Informática : Oracle 3/6/2013 55
  56. 56. Outras Funções• MODA• A moda é a medida de tendência central que consiste no valor mais frequente em uma distribuição.• Para obter a moda da variável PUNICAO no SQL do Oracle, basta utilizar a função STATS_MODE.• O resultado é 4, pois, a maioria das punições (3 casos) foi de 4 jogos para os jogadores expulsos. Footer Text 3/6/2013 56
  57. 57. Outras Funções• GREATEST Função que irá retornar o maior valor de uma lista. Não confundir com MAX.• greatest(2, 5, 12, 3) -> retorna 12 greatest(’2′, ’5′, ’12′, ’3′) -> retorna ’5′ greatest(‘apples’, ‘oranges’, ‘bananas’) -> retorna ‘oranges’ greatest(‘apples’, ‘applis’, ‘applas’) -> retorna ‘applis’ Treinar Informática : Oracle 3/6/2013 57
  58. 58. Outras Funções• LEAST Esta função é utilizada para retornar o menor valor de uma lista. Não confundir que MIN.• least(2, 5, 12, 3) -> retorna 2 least(‘apples’, ‘oranges’, ‘bananas’) -> retorna ‘apples’ least(‘apples’, ‘applis’, ‘applas’) -> retorna ‘applas’ least(‘apples’, ‘applis’, ‘applas’, null) -> retorna NULL Treinar Informática : Oracle 3/6/2013 58
  59. 59. Union (all), Intersect e Minus• Essas quatro funcionalidade ( UNION ALL é um caso a parte ) são primordiais para obter fragmentos de resultados. Ao invés de sobrecarregar sua query com diversas condições e controles tente utilizar essas funcionalidades.• UNION• Agrega o resultado da query subsequente a query anterior, EX:• SELECT TABLE_NAME FROM USER_TABLES• UNION• SELECT TABLE_NAME FROM ALL_TABLES• Ela retornará todas as tabelas do usuario e todas as tabelas do sistema, porém não repetirá. Treinar Informática : Oracle 3/6/2013 59
  60. 60. Union (all), Intersect e Minus• Se voce quiser trazer tudo, mesmo que repita, use:• SELECT TABLE_NAME FROM USER_TABLES• UNION ALL• SELECT TABLE_NAME FROM ALL_TABLES• A query acima trará as tabelas de USER_TABLES e também de ALL_TABLES repetindo caso seja necessário. Treinar Informática : Oracle 3/6/2013 60
  61. 61. Union (all), Intersect e Minus• INTERSECT• Traz a diferença entre dois conjuntos de dados. Digamos que voce queira os registros que existam em uma query e NECESSARIAMENTE não existam na outra. ( e vice-versa )• SELECT TABLE_NAME FROM USER_TABLES• INTERSECT• SELECT TABLE_NAME FROM ALL_TABLES• Isso trará todas as tabelas do usuário que não estejam em ALL_TABLES ( que no caso é 0 porque todas as tabelas estão lá ) e também trará todas as tabelas que tenham na ALL_TABLES e não na USER_TABLES.• Podemos resumir o INTERSECT como: Traz todos os registros que se repetem nas sentenças. Treinar Informática : Oracle 3/6/2013 61
  62. 62. Union (all), Intersect e Minus• MINUS• Traz todos os registros da primeira consulta MENOS ( MINUS ) os registros da segunda consulta. (ele também ignora os repetidos)• SELECT TABLE_NAME FROM USER_TABLES• MINUS• SELECT TABLE_NAME FROM ALL_TABLES• O resultado será vazio. Pois todos os registros da primeira query estão na segunda. Treinar Informática : Oracle 3/6/2013 62
  63. 63. Truncate• O comando TRUNCATE é como se fosse um DELETE (sem cláusula Where) com COMMIT implícito, ou seja, ele elimina todas as linhas da tabela, deixando apenas sua estrutura e, NOTA IMPORTANTE, sem opção de ROLLBACK.• -- Executa um TRUNCATE (Delete+Commit implícito) na tabela• truncate table teste;Footer Text 3/6/2013 63

×