Linguagem SQL
Transcrição
Linguagem SQL
Linguagem SQL Bancos de Dados II Linguagem SQL SQL - Principais conceitos Machado cap.14 Introdução Importância da linguagem SQL; 19/2/2009 1970 - Fundamentada no modelo relacional de CODD; 1974 – 1ª versão - SEQUEL definida na IBM; 1975 – Primeiro protótipo em 1975; 1976 – Primeira revisão passando após ampliações para SQL por razões jurídicas; 1977 – SYSTEM R – ORACLE é lançado; 1983 – Popularizou-se: SQL/DS e DB2 (IBM), ZIM, RDB, SYBASE; 1983 – Padrão de acesso a SGBD Relacionais “de fato”; 1986 ANSI padrão oficial; Vários dialetos; 1989 – SQL recebe reforço de integridade – versão SQL/89; 1992 – É apresentada a versão SQL2; 1999 – É apresentada a versão SQL3. Bancos de Dados II SQL - Conceitos e comandos 2 SQL - Principais conceitos Machado cap.14 Conceitos Bancos de Dados Relacionais Linhas (registros); Colunas (campos); Não ordenadas; Localizadas por campo chave PK; Facilidade de manipulação e entendimento; Voltada para ambiente relacional mas pode ser usada em outros ambientes; 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 3 SQL - Principais conceitos Machado cap.14 Linguagem SQL Originalmente só interativa; Após acréscimos passou a ser suportada por linguagens hospedeiras (COBOL, PL/I, C, VB, DELPHI, etc.) - DML Embutido; 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 4 SQL - Principais conceitos Machado cap.14 Variedade de Enfoques Consultas “AD HOC” LIGAÇÃO COM OUTROS COMPUTADORES SQL FORMS Relatórios SQL SQL SQL SGBD – Sistema Gerenciador de Banco de Dados SQL SQL SQL Ferramentas Front-End BD Gateway Programas de Aplicação DBA Bancos de Dados Outros Bancos de Dados Queries “AD-HOC” 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 5 SQL - Principais conceitos Machado cap.14 Linguagem SQL - Usos Linguagem interativa de Consulta; Linguagem de programação – DML Embutido; 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 outras máquinas. 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 6 SQL - Principais conceitos Machado cap.14 Classes de Objetos (principais) DDL Criar Destruir Modificar Implementação do Ambiente SQL Segurança Controle Administração 19/2/2009 DML Consultar Inserir Alterar Apagar Bancos de Dados II SQL - Conceitos e comandos 7 SQL - Principais conceitos Machado cap.14 Classes de Objetos DDL – Data Definition Language (Linguagem de Definição de Dados); DML – Data Manipulation Language (Linguagem de Manipulação de Dados); Controle de Usuários e instâncias Integridade dos Dados; 19/2/2009 Grant, Revoke Compartilhamento de Dados; Select, Insert, Update Controle de acessos; Create, Alter, Drop Foreign Keys, constraints Bancos de Dados II SQL - Conceitos e comandos 8 SQL - Principais conceitos Machado cap.14 Vantagens Independência de fabricante; Portabilidade entre computadores; Redução dos custos com treinamento; Sentenças padrão em inglês para acesso e manipulação; Consulta interativa (atualmente há ferramentas visuais que facilitam ainda mais); Múltiplas visões dos dados; Definição dinâmica dos dados. 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 9 SQL - Principais conceitos Machado cap.14 Desvantagens A maioria dos fabricantes implementa suas próprias versões muitas vezes ignorando os padrões ISO e ANSI; A portabilidade é relativa em função das limitações do item acima; Padronização leva à inibição da criatividade; Interfaces gráficas; Não atende a todas as necessidades de processamento. 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 10 SQL - Principais conceitos SQL Ferramenta de acesso aos bancos de dados Relacionais Algumas características: Linguagem não procedural; Não atende a todas as necessidades de processamento. PL/SQL Linguagem de acesso a bancos de dados Relacionais Algumas características: Linguagem procedural; Supre as limitações de processamento da linguagem SQL. 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 11 SQL - Principais conceitos Classes de Comandos DRL – Data Retrieval Language – Recuperação ou extração de dados do BDR; DML – Data Manipulation Language – Linguagem de Manipulação de Dados do BDR; Inclusão (Insert), Alteração (Update) e Exclusão (Delete); DDL – Data Definition Language – Linguagem de Definição Tabelas no BDR; Seleção (Select); Criar (Create), Alterar (Alter), Eliminar (Drop); DCL – Data Configuration Language – Define autorização de acesso aos dados do BDR; 19/2/2009 Garanta (Grant), Revogue (Revoke). Bancos de Dados II SQL - Conceitos e comandos 12 SQL - Principais conceitos Estrutura básica dos comandos DRL O que mostrar? SELECT atributos De onde? FROM tabelas apelidos (quais tabelas preciso consultar para obter os dados necessários para a consulta); Em que condições? WHERE condições de seleção (colunas de tabelas, constantes, variáveis de sistema, resultados de cálculos, etc...); (critérios de seleção ou filtragem para obtenção dos dados desejados); Organizado como? ORDER atributos 19/2/2009 (quais atributos deverão ser utilizados para ordenação dos resultados); Bancos de Dados II SQL - Conceitos e comandos 13 SQL - Principais conceitos Modelo e tabelas utilizadas para os exemplos e exercícios. Registro de trabalhos selecionados para eventos acadêmicos. Modelo Conceitual (1:N) POSSUI (N:1) ACEITOS POSSUI EVENTO AUTOR TITULO ARTIGOS EVENTOS AUTOR EVENTO LOCAL MÊS NUMPARTICIPANTES UNIVERSIDADEORGANIZADORA TÍTULO UNIVERSIDADEORIGEM ÓRGÃOFINANCIADOR NOTA NOTA_DE_CORTE NOTA_CORTE 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 14 SQL - Principais conceitos Modelo e tabelas utilizadas para os exemplos e exercícios. Registro de trabalhos selecionados para eventos acadêmicos. Modelo Lógico ACEITOS ARTIGOS EVENTO AUTOR TITULO AUTOR TÍTULO EVENTOS UNIVERSIDADEORIGEM EVENTO LOCAL MÊS NUMPARTICIPANTES UNIVERSIDADEORGANIZADORA ÓRGÃOFINANCIADOR NOTA NOTA_DE_CORTE NOTA_CORTE 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 15 SQL - Principais conceitos Modelo e tabelas utilizadas para os exemplos e exercícios. Modelo Físico ARTIGOS AUTOR TÍTULO UNIVERSIDADEORIGEM ÓRGÃOFINANCIADOR NOTA VARCHAR2(30) Varchar2(30) Varchar2(30) Varchar2(30) Number(2,1) EVENTOS EVENTO LOCAL MÊS NUMPARTICIPANTES UNIVERSIDADEORGANIZADORA Varchar2(30 VARCHAR2(30) NUMBER(02) NUMBER(03)S VARCHAR2(30) ACEITOS EVENTO AUTOR TITULO VARCHAR2(30) VARCHAR2(30) VARCHAR2(30) NOTA_DE_CORTE NOTA_CORTE 19/2/2009 NUMBER(2,1) Bancos de Dados II SQL - Conceitos e comandos 16 SQL - Principais conceitos Morelli Comandos para criar ou alterar Tabelas CREATE TABLE parâmetros CREATE TABLE [schema.] tabela (coluna1 tipo_de_dado [default expressão] [constraint_coluna], ... (colunaN tipo_de_dado [default expressão] [constraint_coluna], [constraint_tabela] ); ALTER TABLE parâmetros ALTER TABLE [schema.] tabela [add (coluna tipo_de_dado [default expressão] [constraint_coluna], ...)] ... [modify (coluna tipo_de_dado [default expressão] [constraint_coluna], ...)] [rename to novo_nome_tabela] [add constraint_coluna/constraint_tabela] [drop constraint_coluna/constraint_tabela [cascade]] [enable/disable constraint_coluna/constraint_tabela]; 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 17 SQL - Principais conceitos Bandeira Criação das Tabelas do exemplo: ARTIGOS CREATE TABLE artigos ( Autor varchar2(30), Titulo varchar2(30), Universidadeorigemvarchar2(30), Orgaofinanciador varchar2(30), Nota number(2,1) ); EVENTOS CREATE TABLE eventos ( Evento varchar2(30), Local varchar2(30), Mês number(02), numparticipantes number(03), universidadeorganizadora varchar2(30) ); 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 18 SQL - Principais conceitos Bandeira Criação das Tabelas do exemplo (cont): ACEITOS CREATE TABLE aceitos ( Evento varchar2(30), Autor varchar2(30), Titulo varchar2(30) ); NOTA_DE_CORTE CREATE TABLE nota_de_corte ( Nota_corte number(2,1) ); 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 19 SQL - Principais conceitos Morelli pág. 12 Tipos de dados (principais) CHAR(N) Campos caracter de tamanho fixo. VARCHAR2(N) Campos caracter de tamanho variável (só considera os caracteres utilizados). LONG Utilizado para campos muito grandes. RAW e LONG RAW Equivalentes aos VARCHAR2 e LONG respectivamente mas binários para guardar imagens, sons, etc... NUMBER(p,e) Campos numéricos (p=parte inteira e e=número de decimais). DATE Campos de datas. 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 20 SQL - Principais conceitos Morelli pág. 12 Restrições de dados (constraints) Destinadas a garantir a integridade dos dados em determinadas condições NULL | NOT NULL Coluna aceita ou não valores nulos. UNIQUE Coluna somente aceita valores únicos. CHECK Coluna aceita somente os valores constantes na lista informada. PRIMARY KEY Identifica a chave primária da tabela. FOREIGN KEY Identifica que a coluna é uma chave estrangeira. 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 21 SQL - Principais conceitos Morelli pág. 15 Operadores Relacionais 19/2/2009 = Igual <> Diferente > Maior < Menor >= Maior ou igual <= Menor ou igual Bancos de Dados II SQL - Conceitos e comandos 22 SQL - Principais conceitos Morelli pág. 15 Operadores Lógicos And Not Operador restritivo – equivale a uma intersecção Operador associativo – equivale a uma união Negação Is null Se o campo é nulo Or 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 23 SQL - Principais conceitos Machado cap.14 Comando para recuperar dados de Tabelas SELECT parâmetros SELECT [distinct] {*,colunas [alias], expressões, funções, ...} FROM {tabelas [alias],} [WHERE condição] [GROUP BY colunas] [HAVING condição] [ORDER BY colunas [asc | desc]]; 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 24 SQL - Principais conceitos Machado cap.14 Funções de linha – para manipular dados UPPER/LOWER; Cálculos (SELECT 10 * 20 FROM DUAL); CONCAT ou ||; INITCAP; LENGTH; SUBSTR; LTRIM/RTRIM; ROUND; TRUNC MOD (resto da divisão); 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 25 SQL - Principais conceitos Machado cap.14 Funções de linha – para manipular datas ADD_MONTHS (data,n); MONTHS_BETWEEN (data1,data2); NEXT_DAY (data,’dia_da_semana’); TO_DATE(campo,máscara); TO_CHAR(campo,máscara); 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 26 SQL - Principais conceitos Machado cap.14 Funções de linha – para efetuar cálculos; AVG (campo); COUNT (campo|*); MAX (campo); MIN(campo); SUM(campo); 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 27 SQL - Principais comandos Morelli 3.1 e 3.2 Seleções básicas, ordenações e filtros SELECT [distinct] {*,colunas [alias], expressões, funções, ...} FROM {tabelas [alias],} [WHERE condição] [GROUP BY colunas] [HAVING condição] [ORDER BY colunas [asc | desc]]; Exercícios: 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 28 SQL - Principais comandos Recuperando dados de várias tabelas; Conceitos Qualificadores de nomes Permitem a efetivação de uma junção entre tabelas em uma consulta pois, pode haver colunas de mesmo nome em tabelas diferentes. Duas sintaxes diferentes: • Padrão standard Equalização de colunas na cláusula WHERE (utilizada pelo MS-SQL e ORACLE). • Padrão ANSI SQL Parâmetro JOIN na cláusula FROM 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 29 SQL - Principais comandos Recuperando dados de várias tabelas; Padrão ANSI SQL Parâmetro JOIN na cláusula FROM Tipos: • INNER JOIN Inclui somente as linhas que satisfacam a condição de junção; • CROSS JOIN Inclui cada uma das combinações de todas as linhas entre as tabelas; • OUTER JOIN Inclui as linhas que satisfaçam a condição de junção mais as linhas restantes de uma das tabelas da junção 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 30 SQL - Principais comandos Recuperando dados de várias tabelas; Padrão ANSI SQL (cont) Exemplos: INNER JOIN Ver os títulos de cada autor aceitos para um evento qualquer; Select artigos.autor, aceitos.titulo From artigos INNER JOIN aceitos ON artigos.autor = aceitos.autor; CROSS JOIN (produto cartesiano) Mostrar os eventos de todos os artigos; Select artigos.autor, artigos.titulo, aceitos.evento From artigos CROSS JOIN aceitos; 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 31 SQL - Principais comandos Recuperando dados de várias tabelas; Padrão ANSI SQL (cont) Exemplos (cont) : OUTER JOIN Possui um parâmetro adicional para indicar de qual tabela se deseja incluir todas as linhas. Utilidades: verificar quais linhas de uma tabela possuem relacionamento com a outra e quais não possuem. Qualificadores: LEFT OUTER JOIN – inclui todas as linhas da tabela do primeiro lado (esquerdo) RIGHT OUTER JOIN – inclui todas as linhas da tabela do segundo lado (direito) Select artigos.autor, aceitos.titulo From artigos LEFT OUTER JOIN aceitos ON artigos.autor = aceitos.autor; 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 32 SQL - Principais comandos Morelli 3.3 Seleções join (junção) de tabelas; Tipos de junções (relações) Padrão STANDARD. Equijoin – campos iguais de tabelas diferentes; SELECT [distinct] {*,alias.colunas [alias_coluna], expressões, funções, ...} FROM tabela1 alias1, tabela2 alias2 WHERE alias1.coluna1 = alias2.coluna2; Exemplo: Ver os títulos de cada autor aceitos para um evento qualquer; Select art.autor, ace.titulo From artigos art, aceitos ace Where art.autor = ace.autor; 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 33 SQL - Principais comandos Morelli 3.3 Seleções join (junção) de tabelas (cont); Tipos de junções (relações) (cont); Outerjoin – campos em comum existam em duas tabelas e os que faltam; SELECT [distinct] {*,alias.colunas [alias_coluna], expressões, funções, ...} FROM tabela1 alias1, tabela2 alias2 WHERE alias1.coluna1 = alias2.coluna2(+) [ORDER BY colunas]; Exemplos: Ver os títulos de cada autor aceitos para um evento qualquer e os que não o foram; Select art.autor, art.titulo, ace.evento From artigos art, aceitos ace Where art.autor(+) = ace.autor; 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 34 SQL - Principais comandos Morelli 3.32 Seleções join (junção) de tabelas (cont); Tipos de junções (relações) (cont); NonEquijoin – reunir campos de tabelas que não tenham nada em comum. SELECT [distinct] {*,alias.colunas [alias_coluna], expressões, funções, ...} FROM tabela1 alias1, tabela2 alias2, tabela3 alias3 WHERE alias1.coluna1 = alias2.coluna2 AND alias3.coluna3 between valor_mínimo AND valor_máximo; Exemplo: Ver os títulos, as notas, os eventos e a nota de corte dos trabalhos aceitos; Select art.titulo, art.nota, ace.evento, nc.nota_corte From artigos art, aceitos.ace, nota_de_corte nc Where art.autor = ace.autor And art.titulo = ace.titulo; 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 35 SQL - Principais comandos Morelli 3.3 Seleções join (junção) de tabelas (cont); Tipos de junções (relações) (cont); Selfjoin – reunir campos diferentes de uma mesma tabela que possam ter conteúdo do mesmo tipo. SELECT [distinct] {*,alias.colunas [alias_coluna], expressões, funções, ...} FROM tabela1 alias1, tabela1 alias2 WHERE alias1.coluna1 = alias2.coluna2; Nota: note que a tabela é a mesma embora os aliases sejam diferentes; Exemplos: Ver os artigos financiados pela própria universidade; Select art1.autor, art1.titulo, art1.universidadeorigem, art2.orgaofinanciador From artigos art1, artigos art2 Where art1.universidadeorigem = at2.orgaofinanciador; 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 36 SQL - Principais comandos Morelli 3.4.1 Seleções usando funções de linha; Funções de caracteres; Função Descrição lower/upper (coluna) Converte caracteres em minúsculas ou maiúsculas. initcap (coluna) Converte o primeiro caractere de cada palavra em maiúsculo e o resto minúsculo. concat (coluna1,coluna2) Concatena duas colunas ou cadeia de caracteres (semelhante ao operador de concatenação ‘||’). substr (coluna, posição,tamanho) Extrai parte dos caracteres de uma coluna ou grupo de caracteres. length (coluna) Informa a quantidade de caracteres da coluna. lpad/rpad (campo, n,c) Preenche à esquerda ou à direita com o caractere indicado em ‘c’ até o tamanho ‘n’, o campo indicado. 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 37 SQL - Principais comandos Morelli 3.4.2 Seleções usando funções de linha; Funções de datas; No ORACLE, o tipo DATE armazena internamente: século, ano, mês, dia, hora, minuto e segundo. O formato padrão é DD-MMM-AA. O usuário poderá, a seu critério, utilizar estes dados de formas diferentes, utilizando as funções abaixo. A variável de sistema sysdate, armazena a data/hora corrente. Função Descrição months_between (data1,data2) Retorna o número de meses entre duas datas. add_months (data, n) Adiciona ‘n’ meses à data informada next_day (data, ‘dia_da_semana’) Retorna uma data, após a data informada, em que o dia da semana seja igual a “dia_da_semana”. last_day (data) Retorna a data do último dia do mês em que se encontra a variável data. round (data, formato) Arredonda a data informada para o primeiro ou último dia do mês (quando o formato for MONTH) ou ano (quando formato for YEAR). trunc (data, formato) Trunca data informada (idem round) 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 38 SQL - Principais comandos Morelli 3.4.3 Seleções usando funções de linha; Funções de numéricas; Função Descrição round (coluna, d) Arredonda o valor ou coluna informada, em que ‘d’ indica o número de casas decimais desejado. trunc (coluna, d) Trunca o valor ou coluna informada, em que ‘d’ indica o número de casas decimais desejado. mod (a,b) Retorna o resto da divisão de ‘a’ por ‘b’, em que ‘a’ e ‘b’ podem ser constantes, colunas ou expressões. power (n1, n2) Calcula n1 elevado a n2. sqrt (n) Calcula a raiz quadrada de ‘n’. ceil/floor (num) Arredonda ‘num’ para cima ou para baixo. 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 39 SQL - Principais comandos Morelli 3.4.4 Seleções usando funções de linha; Funções de conversão de dados; Função Descrição to_char (número ou data, ‘formato’) Converte um campo numérico ou data em uma cadeia de caracteres do tipo varchar2, varchar2 com o formato definido pela variável formato. to_number (char) Converte a cadeia de caracteres numericos informados em um número inteiro. to_date (char, ‘formato’) Converte uma cadeia de caracteres, informando uma data, no tipo date, date de acordo com a variável formato. nvl (coluna, valor) Converte um null encontrado na coluna, em um valor especificado. 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 40 SQL - Principais comandos Morelli 3.4.5 Seleções usando funções de linha; Funções de grupo; Função Descrição Avg (coluna) Calcula a média dos valores de uma coluna. Count (coluna) Informa o total de linhas selecionadas. Max (coluna) Informa o valor máximo de uma coluna. Min (coluna) Informa o valor mínimo de uma coluna. Sum (coluna) Calcula a soma dos valores de uma coluna. Todas as funções desconsideram valores nulos, exceto count, count quando o argumento for *. 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 41 SQL - Principais comandos Morelli 3.5 Seleções usando operadores de conjunto; Operador Descrição Union Retorna a união entre dois conjuntos de dados com estruturas semelhantes. Intersect Retorna os dados que são comuns a dois conjuntos de dados. Minus Retorna o que um conjunto possui e o outro não. 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 42 SQL - Principais comandos Seleções usando conjuntos; Morelli 3.5 Lista de valores Parâmetro IN no comando WHERE; Ver os eventos dos meses de férias escolares (01, 07 e 12); Select evento, mês From eventos Where mês IN (1, 7, 12); Intervalos Parâmetro BETWEEN no comando WHERE; Ver os eventos dos meses letivos do primeiro semestre (02 a 06); Select evento, mês From eventos Where mês BETWEEN 2 AND 6; 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 43 SQL - Principais comandos Morelli 4.2 Atualização de dados; Alteração de linhas; UPDATE tabela SET coluna = valor [, coluna = valor ...] [WHERE condição]; 19/2/2009 Se a cláusula WHERE for omitida, todas as linhas da tabela serão alteradas. Bancos de Dados II SQL - Conceitos e comandos 44 SQL - Principais comandos Morelli 4.3 Atualização de dados; Eliminação de linhas; DELETE [from] tabela [WHERE condição]; 19/2/2009 Se a cláusula WHERE for omitida, todas as linhas da tabela serão eliminadas. Bancos de Dados II SQL - Conceitos e comandos 45 SQL - Principais comandos Morelli 6.3 Outras estruturas de dados; Visões de dados; Uma visão (view) é uma tabela virtual na qual os dados não estão fisicamente armazenados. É apenas uma visão de um grupo de colunas de uma ou mais tabelas do banco. Vantagens: Evitar que usuários não autorizados tenham acesso a todos os dados de uma tabela; Associar a uma visão, consultas que utilizam critérios de seleção complexos, para facilitar o acesso pelos usuários. 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 46 SQL - Principais comandos Outras estruturas de dados; Morelli 6.3 Criando visões; CREATE [OR REPLACE] [force | noforce] VIEW nome_visão [alias, ...] as subquery; Onde: Opção Descrição replace Recria a view, se ela já existir force Cria a view, mesmo que a tabela base não exista noforce Só cria a view se a tabela base existir. subquery Sentença select na qual será baseada a view. Há outros parâmetros que foram omitidos e que poderão ser consultados no livro. 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 47 SQL - Principais comandos Outras estruturas de dados; Morelli 6.4 Criando seqüências; Valores que podem ser gerados automaticamente pelo Oracle. Muito útil na geração de valores para chaves primárias; 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 48 SQL - Principais comandos Morelli 6.4 Outras estruturas de dados; Criando seqüências; CREATE SEQUENCE seqüência [increment by n] [start with n] [maxvalue n | nomaxvalue] [cycle | nocycle] [cache n | nocache]; Onde: Opção Descrição seqüência Nome da seqüência que não pode ser o mesmo de uma tabela ou view. Informa de quanto será o incremento increment by n ou decremento da seqüência. Informa o primeiro número a ser start with n gerado. maxvalue/minvalue Informa o valor máximo ou mínimo que a seqüência pode assumir. n cycle | nocycle cache n | nocache 19/2/2009 Indica que, quando atingir o valor máximo, a numeração continuará a partir do valor inicial ou não. Indica ao Oracle quantos valores são pré-alocados em memória Bancos de Dados II SQL - Conceitos e comandos 49 SQL - Principais comandos Morelli 6.5 Outras estruturas de dados; Criando sinônimos; Estabelece nomes alternativos para tabelas, views, índices ou seqüências; Objetiva facilitar a manipulação desses objetos por outros usuários que não o seu dono, dando-lhes nomes mais curtos ou mais significativos; Preservar a definição de um objeto por seu usuário original; Utilizado como forma de compartilhamento de objetos por vários usuários. 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 50 SQL - Principais comandos Morelli 6.5 Outras estruturas de dados; Criando sinônimos; CREATE [public] SYNONYM sinônimo for objeto; Onde: Opção Descrição public Indica que o sinônimo poderá ser usado por qualquer usuário. Informa o nome do objeto sobre o qual se aplica o sinônimo. objeto 19/2/2009 Bancos de Dados II SQL - Conceitos e comandos 51 SQL - Principais comandos Morelli 7 Subqueries; Consulta utilizada dentro de um comando SQL em diversas situações. Subqueries de uma linha; Quando se espera que a consulta retorne apenas um valor. Formato: SELECT coluna [, coluna ...] FROM tabela1 WHERE [tabela1.]coluna = (SELECT [tabela2.]coluna2 FROM tabela2 [WHERE condição] ); 19/2/2009 Observe: a presença do operador relacional =; que, de fato, a subquery retorne somente um valor; Que a subquery é colocada entre parênteses; Pode ser utilizada para outros comandos alem do select. Bancos de Dados II SQL - Conceitos e comandos 52 SQL - Principais comandos Morelli 7 Subqueries; Subqueries de múltiplas linhas; Quando se espera que a consulta retorne um, ou mais de um valor em apenas uma coluna. Formato: SELECT coluna [, coluna ...] FROM tabela1 WHERE [tabela1.]coluna IN | NOT IN (SELECT [tabela2.]coluna2 FROM tabela2 [WHERE condição] ); 19/2/2009 Observe: a presença do operador relacional IN, ou NOT IN; que, de fato, a subquery retorne somente uma coluna; Que a subquery é colocada entre parênteses. Bancos de Dados II SQL - Conceitos e comandos 53 SQL - Principais comandos Morelli 7 Subqueries; Subqueries de múltiplas colunas; Quando se espera que a consulta retorne um, ou mais de um valor em apenas uma ou várias colunas. Formato: SELECT coluna [, coluna ...] FROM tabela1 WHERE [tabela1.]coluna IN | NOT IN (SELECT [tabela2.]coluna2, [tabela2.]coluna3 FROM tabela2 [WHERE condição] ); 19/2/2009 Observe: a presença do operador relacional IN, ou NOT IN; que a subquery retorna mais de uma coluna; Que a subquery é colocada entre parênteses. Bancos de Dados II SQL - Conceitos e comandos 54 SQL - Principais comandos Morelli 7 Subqueries; Subqueries correlatas; Quando se utiliza uma coluna da consulta externa na subquery. Formato: SELECT coluna1 [, coluna2 ...] FROM tabela1 WHERE [tabela1.]coluna IN | NOT IN (SELECT [tabela2.]coluna2 FROM tabela2 WHERE tabela2.coluna2 = tabela1.coluna2 ); 19/2/2009 Observe: a presença do operador relacional IN, ou NOT IN; que a subquery utiliza uma coluna da tabela 1 (mais externa) na sua condição de comparação; Que a subquery é colocada entre parênteses. Bancos de Dados II SQL - Conceitos e comandos 55 Orientação Final Página do professor na internet: http://prof.cle.sites.uol.com.br 19/2/2009 Dúvidas?!? Bancos de Dados II SQL - Conceitos e comandos 56
Documentos relacionados
PROCEDURES, FUNÇÕES, PL/SQL, CURSORES, VIEW
BOOLEAN; CONT NUMBER(6) :=0; PERC CONSTANT NUMBER(4,2):= 36.00;
Leia mais