BANCO DE DADOS II LINGUAGEM SQL - STRUCTURED QUERY LANGUAGE. Prof.: Elvis Bloemer Meurer

Tamanho: px
Começar a partir da página:

Download "BANCO DE DADOS II LINGUAGEM SQL - STRUCTURED QUERY LANGUAGE. Prof.: Elvis Bloemer Meurer"

Transcrição

1 BANCO DE DADOS II LINGUAGEM SQL - STRUCTURED QUERY LANGUAGE Prof.: Elvis Bloemer Meurer ORLEANS,

2 CAPITULO 6: FUNÇÕES DE GRUPO OBJETIVOS DESTE CAPÍTULO FUNÇÕES DISPONÍVEIS USANDO FUNÇÕES DE GRUPO A CLÁUSULA GROUP BY EXCLUINDO LINHAS DOS GRUPOS GRUPOS DENTRO DE GRUPOS FUNÇÕES DE GRUPO E RESULTADOS INDIVIDUAIS A CLÁUSULA HAVING ORDEM DAS CLÁUSULAS EXERCÍCIOS...7 CAPÍTULO 7: EXTRAINDO DADOS DE MAIS DE UMA TABELA OBJETIVOS DESTE CAPÍTULO JUNÇÕES EQUIVALENTES SUMÁRIO DA SINTAXE EXERCÍCIOS...9 CAPÍTULO 8: OUTROS MÉTODOS DE JUNÇÃO OBJETIVOS DESTE CAPÍTULO JUNÇÕES EXTERNAS JUNÇÃO DE UMA TABELA COM ELA MESMO JUNÇÕES VERTICAIS União Interseção Subtração Combinação de operadores A cláusula ORDER BY Regras para utilizar junções verticais EXERCÍCIOS...12 CAPÍTULO 9: CONSULTAS ANINHADAS OBJETIVOS DESTE CAPÍTULO DEFINIÇÃO DE CONSULTAS ANINHADAS CONSULTAS INTERNAS QUE RETORNAM APENAS UM VALOR COMO AS CONSULTAS ANINHADAS SÃO EXECUTADAS CONSULTAS INTERNAS QUE RETORNAM MAIS DE UM VALOR CLÁUSULA HAVING COM CONSULTAS ANINHADAS O OPERADOR EXISTS EXERCÍCIOS...16 CAPÍTULO 10 - VISÕES OBJETIVOS DESTE CAPÍTULO O QUE É UMA VISÃO CLASSIFICAÇÃO DAS VISÕES Visões simples Visões complexas O COMANDO CREATE VIEW USANDO UMA VISÃO PARA OPERAÇÕES DE DML ALTERANDO DADOS ATRAVÉS DAS VISÕES ELIMINAÇÃO DE VISÕES EXERCÍCIOS

3 CAPÍTULO 11 - ÍNDICES OBJETIVOS DESTE CAPÍTULO FINALIDADES DOS ÍNDICES ESTRUTURA DOS ÍNDICES TIPOS DE ÍNDICES CRIAÇÃO DOS ÍNDICES Criação de um índice para melhorar o acesso Criação de um índice para garantir unicidade ELIMINAÇÃO DOS ÍNDICES QUANDO UM ÍNDICE É UTILIZADO ÍNDICES E JUNÇÕES SUGESTÕES PARA CRIAÇÃO DOS ÍNDICES EXERCÍCIOS...25 CAPÍTULO 12: SEQÜÊNCIAS OBJETIVOS DESTE CAPÍTULO O GERADOR DE SEQÜÊNCIAS GERAÇÃO DE NÚMEROS SEQÜENCIAIS COM NEXTVAL VALOR ATUAL DA SEQÜÊNCIA REGRAS PARA UTILIZAR CURRVAL E NEXTVAL ALTERANDO UMA SEQÜÊNCIA ELIMINANDO UMA SEQÜÊNCIA LISTANDO SEQÜÊNCIAS

4 6.1 Objetivos deste capítulo Capitulo 6: Funções de Grupo Este capítulo explica como informações sumarizadas (média, máximo, mínimo,...) podem ser obtidas para grupo de linhas. As funções vistas anteriormente operavam sobre cada linha, enquanto que as funções mostradas neste capítulo operam sobre um grupo de linhas. 6.2 Funções disponíveis Função AVG ([DISTINCT ALL]n) COUNT ([DISTINCT ALL]exp*) MAX ([DISTINCT ALL]exp) MIN ([DISTINCT ALL]exp) STDDEV ([DISTINCT ALL]n) SUM ([DISTINCT ALL]n) VARIANCE ([DISTINCT ALL]n) Valor retornado Valor médio de 'n', ignorando os valores nulos. Número de ocorrências não nulas da expressão. O '*' obriga a contagem total, incluindo valores duplicados e nulos. Valor máximo da expressão. Valor mínimo da expressão. Desvio padrão de 'n', ignorando os valores nulos. Soma dos valores de 'n', ignorando os valores nulos. Variância de 'n', ignorando os valores nulos. Quando DISTINCT é especificado, somente os valores não duplicados são considerados pela função, caso contrário ALL é assumido, considerando todos os valores, inclusive os duplicados. Todas as funções de grupo, exceto COUNT(*), ignoram os valores nulos. Podem ser fornecidas expressões dos tipos caracter, número ou data quando 'exp' estiver indicado. Quando 'n' estiver indicado, somente valores numéricos são aceitos. 6.3 Usando funções de grupo Para calcular o salário médio de todos os empregados: SQL> SELECT AVG(VL_SALARIO) Uma função de grupo pode ser aplicada sobre um subconjunto das linhas usando a cláusula WHERE. 4

5 Para encontrar o salário mínimo recebido por um BALCONIST: SQL> SELECT MIN(VL_SALARIO) 3 WHERE TP_CARGO='BALCONIST' Para contar o número de empregados que trabalham no departamento 20: SQL> SELECT COUNT(*) 3 WHERE CD_DEPARTAMENTO = A cláusula GROUP BY A cláusula GROUP BY é utilizada para dividir as linhas das tabelas em grupos. Funções de grupo podem ser utilizadas para retornar informações sumarizadas para cada grupo. Para calcular o salário médio de cada cargo: SQL> SELECT TP_CARGO, AVG(VL_SALARIO) 3 GROUP BY TP_CARGO 6.5 Excluindo linhas dos grupos A cláusula WHERE pode ser utilizada para excluir linhas, antes que estas sejam grupadas. Para mostrar o salário médio de cada cargo, excluindo os gerentes: SQL> SELECT TP_CARGO, AVG(VL_SALARIO) 3 WHERE TP_CARGO <> 'GERENTE' 4 GROUP BY TP_CARGO 6.6 Grupos dentro de grupos Os grupos podem conter subgrupos, fornecendo resultados para grupos dentro de grupos. Para listar o salário médio de cada cargo em cada departamento: SQL> SELECT CD_DEPARTAMENTO, TP_CARGO, AVG(VL_SALARIO) 3 GROUP BY CD_DEPARTAMENTO, TP_CARGO 6.7 Funções de grupo e resultados individuais A declaração abaixo mostra o salário máximo para cada tipo de cargo. O resultado não é muito significativo pois não mostra o cargo, mas mostra que não há obrigação de listar as colunas pelas quais o grupamento é realizado. 5

6 SQL> SELECT MAX(VL_SALARIO) 3 GROUP BY TP_CARGO Também não há necessidade de colocar as colunas a serem grupadas antes das outras: SQL> SELECT MAX(VL_SALARIO), TP_CARGO 3 GROUP BY TP_CARGO Lembre-se que quando funções de grupo são incluídas na cláusula SELECT, todas as colunas que não contém função de grupo devem aparecer na cláusula GROUP BY. Grupando-se por CD_DEPARTAMENTO o comando processa corretamente. SQL> SELECT CD_DEPARTAMENTO, MIN(VL_SALARIO) 3 GROUP BY CD_DEPARTAMENTO 6.8 A cláusula HAVING Somente os grupos que atendem as condições especificadas na cláusula HAVING são selecionados. A cláusula HAVING opera sobre a cláusula GROUP BY de maneira semelhante a que a cláusula WHERE opera sobre a cláusula SELECT. Para mostrar o salário médio dos departamento que possuem mais de três funcionários: SQL> SELECT CD_DEPARTAMENTO, AVG(VL_SALARIO) 3 GROUP BY CD_DEPARTAMENTO 4 HAVING COUNT(*) > 3 Para mostrar os cargos com salário máximo acima de 3000: SQL> SELECT TP_CARGO, MAX(VL_SALARIO) 3 HAVING MAX(VL_SALARIO) >= GROUP BY TP_CARGO Embora a cláusula HAVING possa ser escrita antes da cláusula GROUP BY, a leitura torna-se mais fácil quando a cláusula HAVING aparece após a cláusula GROUP BY. Os grupos são formados e as funções de grupo são calculadas antes da cláusula HAVING ser aplicada. A cláusula WHERE é utilizada para aplicar restrições sobre linhas individualmente, enquanto a cláusula HAVING é utilizada para aplicar restrições sobre grupos de linhas. As cláusulas WHERE e HAVING podem ser utilizadas em conjunto. 6

7 Para calcular o salário médio de todos os cargos, exceto o cargo de gerente: SQL> SELECT TP_CARGO, AVG(VL_SALARIO) 3 WHERE TP_CARGO <> 'GERENTE' 4 GROUP BY TP_CARGO 5 HAVING AVG(VL_SALARIO) > Ordem das cláusulas SELECT lista_de_colunas FROM lista_de_tabelas WHERE condições_de_linha GROUP BY lista_de_colunas HAVING condições_de_grupo ORDER BY lista_de_colunas São avaliados: WHERE para ficar somente as linhas que atendem a cláusula GROUP BY para montagem dos grupos HAVING para ficar somente os grupos que atendem a cláusula 6.10 Exercícios a) Encontrar o menor salário entre todos os empregados. b) Encontrar o salário maior, menor, e médio, entre todos os empregados. c) Listar o maior e o menor salário por cada tipo de cargo. d) Calcular o número de gerentes sem listar seus nomes. e) Encontrar o salário médio e a remuneração anual média de cada tipo de cargo, lembrando-se que os vendedores recebem comissão. f) Encontrar a diferença entre o maior e o menor salários. g) Listar todos os departamentos que possuem mais de três empregados. h) Verificar se não há duplicidade no número dos empregados i) Listar os empregados que recebem o menor salário em cada departamento, relacionando os seus gerentes. Excluir os grupos onde o menor salário é inferior a Ordenar os resultados pelo salário 7

8 Capítulo 7: Extraindo dados de mais de uma tabela 7.1 Objetivos deste capítulo Mostrar como obter informações de mais de uma tabela através das junções. Linhas de uma tabela podem ser juntadas com linhas de outra tabela, de acordo com valores comuns existentes em colunas correspondentes. 7.2 Junções equivalentes Para levantar, manualmente, o nome do departamento em que um funcionário trabalha, primeiro seria levantado na tabela EMPREGADO o número do departamento do empregado, e, em seguida, seria levantado na tabela DEPARTAMENTO o nome correspondente ao número do departamento. Este relacionamento entre as duas tabelas é chamado de junção equivalente (equi-join), uma vez o número do departamento nas duas tabelas é o mesmo. A condição de junção é especificada na cláusula WHERE usando o operador '='. SQL> SELECT NM_EMPREGADO, TP_CARGO, NM_DEPARTAMENTO, DEPARTAMENTO 3 WHERE EMPREGADO.CD_DEPARTAMENTO = DEPARTAMENTO.CD_DEPARTAMENTO As linhas da tabela EMPREGADO foram combinadas com as linhas da tabela DEPARTAMENTO para obtenção dos números dos departamentos. O nome da tabela é colocado antes do nome da coluna, para diferenciar colunas com mesmo nome em tabelas diferentes. Todas as colunas podem ser prefixadas com o nome da tabela, porém este procedimento só é obrigatório quando existe ambigüidade. SQL> SELECT DEPARTAMENTO.CD_DEPARTAMENTO, NM_EMPREGADO, TP_CARGO, NM_DEPARTAMENTO, DEPARTAMENTO 3 WHERE EMPREGADO.CD_DEPARTAMENTO = DEPARTAMENTO.CD_DEPARTAMENTO 4 ORDER BY DEPARTAMENTO.CD_DEPARTAMENTO Aliás para nomes de tabelas podem ser usado de forma semelhante à que foi usada para aliás de nomes de colunas. O nome do aliás é escrito após o nome da tabela. No exemplo abaixo foi utilizado o aliás 'E' para a tabela EMPREGADO, e o aliás 'D' para a tabela DEPARTAMENTO. SQL> SELECT E.NM_EMPREGADO, D.CD_DEPARTAMENTO, D.NM_DEPARTAMENTO E, DEPARTAMENTO D 3 WHERE E.CD_DEPARTAMENTO = D.CD_DEPARTAMENTO 4 ORDER BY D.CD_DEPARTAMENTO 7.3 Sumário da Sintaxe 8

9 SELECT [DISTINCT] {[tabela].* expressão [aliás],...} FROM tabela [alias],... WHERE [condição de junção]... AND [condição de linha]... OR [outra condição de linha] GROUP BY {expressão coluna} HAVING {condição de grupo} ORDER BY {expressão coluna} [ASC DESC] 7.4 Exercícios a) Mostrar o nome dos empregados e dos departamentos onde trabalham, ordenados pelo nome do departamento. b) Mostrar os nomes dos empregados, juntamente com os números e nomes dos departamentos onde trabalham c) Listar o nome, o local de trabalho e o departamento dos empregados com salário superior a f) Listar todos os empregados em ORLEANS. g) Listar os nomes dos empregados, o cargo, o salário e o nome do departamento para todos na companhia, exceto os BALCONISTs. Ordenar pelo salário, com os maiores primeiro. h) Listar os seguintes detalhes para os empregados que ganham por ano ou que são BALCONISTs. NM_EMPREGADO, TP_CARGO, SALARIO_ANUAL, CD_DEPARTAMENTO, NM_DEPARTAMENTO 9

10 8.1 Objetivos deste capítulo Capítulo 8: Outros métodos de junção Mostrar métodos alternativos para construção de junções. 8.2 Junções externas Se uma linha não satisfaz a condição de junção, então a linha não é mostrada no resultado da consulta. De fato, quando fazemos a junção equivalente (equi-join) das tabelas EMPREGADO e DEPARTAMENTO, o departamento 40 não aparece, uma vez que não há nenhum empregado lotado neste departamento. As linhas excluídas podem ser retornadas se um operador de junção externa (outer join) for utilizado na condição de junção. O operador é um sinal de '+' colocado entre parênteses, que deve ser ficar ao lado da tabela onde as informações que não seriam incluídas devem aparecer. No exemplo o operador está colocado ao lado da tabela DEPARTAMENTO, forçando listar os dados dos departamentos mesmo que não haja correspondência em EMPREGADO. SQL> SELECT E.NM_EMPREGADO, D.CD_DEPARTAMENTO, D.NM_DEPARTAMENTO E, DEPARTAMENTO D 3 WHERE E.CD_DEPARTAMENTO (+) = D.CD_DEPARTAMENTO 4 AND D.CD_DEPARTAMENTO IN (30,40) O operador de junção externa (outer join) só pode aparecer em um dos lados da expressão, causando uma junção externa esquerda (left outer join), ou uma junção externa direita (right outer join). 8.3 Junção de uma tabela com ela mesmo É possível utilizar rótulos nas tabelas (aliases) para fazer a junção de uma tabela com ela mesmo, como se fossem duas tabelas distintas. No exemplo abaixo são mostrados todos os funcionários que recebem menos que seus gerentes. SQL> SELECT E.NM_EMPREGADO EMP_NOME, E.VL_SALARIO EMP_SAL, 2 G.NM_EMPREGADO GER_NOME, G.VL_SALARIO GER_SAL 3 FROM EMPREGADO E, EMPREGADO G 4 WHERE E.CD_EMPREGADO_GERENTE = G.CD_EMPREGADO 5 AND E.VL_SALARIO < G.VL_SALARIO Note que EMPREGADO aparece na cláusula FROM duas vezes, uma com o aliás 'E', para os empregados, e outra com o aliás 'G', para os gerentes. 8.4 Junções verticais 10

11 Os operadores UNION, INTERSECT e MINUS são úteis para construir consultas que se referem a tabelas diferentes. Estes operadores combinam os resultados de dois ou mais SELECTs em um único resultado União O operador UNION retorna todas as linhas distintas das consultas unidas por este operador. No exemplo são listados todos os cargos dos departamentos 10 e 30 sem repetição. SQL> SELECT TP_CARGO 3 WHERE CD_DEPARTAMENTO = 10 4 UNION 5 SELECT TP_CARGO 6 FROM EMPREGADO 7 WHERE CD_DEPARTAMENTO = Interseção O operador INTERSECT retorna apenas as linhas comuns às duas consultas. Para listar os cargos existentes tanto no departamento 10 quanto no departamento 30: SQL> SELECT TP_CARGO 3 WHERE CD_DEPARTAMENTO = 10 4 INTERSECT 5 SELECT TP_CARGO 6 FROM EMPREGADO 7 WHERE CD_DEPARTAMENTO = Subtração O operador MINUS retorna as linhas presentes na primeira consulta mas não presentes na segunda consulta. Para listar os cargos existentes no departamento 10 mas não existentes no departamento 30: SQL> SELECT TP_CARGO 3 WHERE CD_DEPARTAMENTO = 10 4 MINUS 5 SELECT TP_CARGO 6 FROM EMPREGADO 7 WHERE CD_DEPARTAMENTO = Combinação de operadores É possível a construção de consultas com operadores UNION, INTERSECT e MINUS combinados. Quando isto é feito a execução é efetuada de cima para baixo, porém podem ser utilizados parênteses para alterar esta ordem A cláusula ORDER BY 11

12 Como as colunas das tabelas podem ter nomes diferentes quando usamos UNION, INTERSECT e MINUS, o nome da coluna não pode ser usado na cláusula ORDER BY quando estes operadores são utilizados. Ao invés do nome deve ser usado o número da coluna, como mostrado abaixo: SQL> SELECT CD_EMPREGADO, NM_EMPREGADO, VL_SALARIO 3 UNION 4 SELECT CD_EMPREGADO, NM_EMPREGADO, VL_SALARIO 5 FROM EMPREGADO 6 ORDER BY 2 A cláusula ORDER BY deve ser sempre a última Regras para utilizar junções verticais As declarações SELECT devem ter todas o mesmo número de colunas. Os tipos de dados das colunas correspondentes devem ser idênticos. Linhas duplicadas são automaticamente eliminadas (DISTINCT não pode ser usado). Os nomes das colunas da primeira consulta são os que aparecem no resultado. A cláusula ORDER BY deve ser sempre a última. A cláusula ORDER BY só pode conter os números das colunas, não os nomes. Declarações SELECT são executadas de cima para baixo. Múltiplas junções verticais podem ser utilizadas, com parênteses, se necessário, para alterar a ordem de execução. 8.5 Exercícios a) Listar os departamentos que não possuem empregados. b) Listar os números e os nomes dos empregados juntamente com os números e os nomes de seus gerentes. c) Alterar a solução do exercício b para mostrar KING que não possui gerente. d) Mostrar os cargos que foram preenchidos no primeiro semestre de 1983 e no mesmo período em e) Listar todos os empregados admitidos antes de seus gerentes. f) Encontrar outra maneira de resolver o exercício a. 12

13 9.1 Objetivos deste capítulo Capítulo 9: Consultas aninhadas Mostrar consultas declaradas nas cláusulas Where e Having. 9.2 Definição de consultas aninhadas Uma consulta aninhada, ou subconsulta, é aquela que está contida dentro de uma outra consulta, e que retorna valores intermediários. Por exemplo: SELECT FROM WHERE coluna1, coluna2 tabela coluna1 = (SELECT coluna FROM tabela WHERE condição) Consultas aninhadas são muito úteis quando é necessário selecionar linhas de uma tabela sob uma condição que depende dos dados da própria tabela. 9.3 Consultas internas que retornam apenas um valor Para encontrar o empregado com o menor salário da empresa são necessárias duas etapas: a) achar qual o menor salário SQL> SELECT MIN(VL_SALARIO) b) localizar o empregado que recebe o menor salário SELECT NM_EMPREGADO, TP_CARGO, VL_SALARIO FROM EMPREGADO WHERE VL_SALARIO = salário encontrado na etapa anterior Os dois comandos podem ser combinados em uma consulta aninhada: SQL> SELECT NM_EMPREGADO, TP_CARGO, VL_SALARIO 3 WHERE VL_SALARIO = (SELECT MIN(VL_SALARIO) 4 FROM EMPREGADO) Antes da consulta interna que retorna apenas um valor, podem ser usados os operadores =, <, >, <=, >=, <>. 9.4 Como as consultas aninhadas são executadas Uma declaração SELECT pode ser considerada como um bloco de consulta. No exemplo anterior, haviam dois blocos de consulta: um principal e outro interno. O bloco interno é 13

14 executado primeiro, produzindo o resultado: 800. Em seguida o bloco principal é executado, utilizando o valor retornado pelo bloco interno. Para listar todos os empregados com o mesmo cargo do BLAKE: SQL> SELECT NM_EMPREGADO, TP_CARGO 3 WHERE TP_CARGO = (SELECT TP_CARGO 4 FROM EMPREGADO 5 WHERE NM_EMPREGADO = 'BLAKE') O cargo de BLAKE é obtido pela consulta interna e utilizado pela consulta principal. 9.5 Consultas internas que retornam mais de um valor A consulta abaixo tenta localizar os empregados com o menor salário em cada departamento. SQL> SELECT NM_EMPREGADO, VL_SALARIO, CD_DEPARTAMENTO 3 WHERE VL_SALARIO IN (SELECT MIN(VL_SALARIO) FROM EMPREGADO GROUP BY CD_DEPARTAMENTO) Note que a consulta interna tem uma cláusula GROUP BY, e portanto retorna mais de um valor. Neste caso o operador IN deve ser usado para tratar a lista de valores. O resultado da consulta interna não indica o departamento, não havendo assim qualquer correspondência entre o salário retornado e o departamento do funcionário. Para haver correspondência entre o salário e o departamento a consulta foi escrita novamente: SQL> SELECT NM_EMPREGADO, VL_SALARIO, CD_DEPARTAMENTO 3 WHERE (VL_SALARIO, CD_DEPARTAMENTO) IN 4 (SELECT MIN(VL_SALARIO), CD_DEPARTAMENTO 5 FROM EMPREGADO 6 GROUP BY CD_DEPARTAMENTO) Nesta nova consulta, é retornado um par de colunas que é comparado com um par de colunas da consulta principal. Note que as colunas à esquerda da condição de procura estão entre parênteses e são separadas por vírgulas. As colunas listadas na consulta interna devem estar na mesma ordem das colunas à esquerda da condição de procura. As colunas retornadas pela consulta interna devem ser em mesmo número e do mesmo tipo de dados das colunas à esquerda da condição de procura. 14

15 Se uma consulta interna retornar mais de uma linha e a condição de procura utilizar um operador de uma linha apenas gera o erro mostrado abaixo: SQL> SELECT NM_EMPREGADO, VL_SALARIO, CD_DEPARTAMENTO 3 WHERE VL_SALARIO = (SELECT MIN(VL_SALARIO) 4 FROM EMPREGADO 5 GROUP BY CD_DEPARTAMENTO) ERROR: ORA-01427: single-row subquery returns more than one row no rows selected Se a consulta interna não retornar nenhuma linha: SQL> SELECT NM_EMPREGADO, TP_CARGO 3 WHERE TP_CARGO = (SELECT TP_CARGO 4 FROM EMPREGADO 5 WHERE NM_EMPREGADO = 'SMYTHE') ERROR: ORA-01426: sigle-row subquery returns no row no rows selected 9.6 Cláusula HAVING com consultas aninhadas Para mostrar os departamentos com salário médio superior ao salário médio do departamento 30, escrevemos: SQL> SELECT CD_DEPARTAMENTO, AVG(VL_SALARIO) 3 GROUP BY CD_DEPARTAMENTO 4 HAVING AVG(VL_SALARIO) > (SELECT AVG(VL_SALARIO) 5 FROM EMPREGADO 6 WHERE CD_DEPARTAMENTO = 30) Para descobrir qual o cargo com maior salário médio: SQL> SELECT TP_CARGO, AVG(VL_SALARIO) 3 GROUP BY TP_CARGO 4 HAVING AVG(VL_SALARIO) = (SELECT MAX(AVG(VL_SALARIO)) 5 FROM EMPREGADO 6 GROUP BY TP_CARGO) 9.7 O operador EXISTS O operador EXISTS é freqüentemente usado com consultas aninhadas correlacionadas, testando se o valor existe. Se o valor existir, retorna verdadeiro, caso contrário retorna falso. Para listar todas as empregados com ao menos um funcionário subordinado: SQL> SELECT CD_EMPREGADO, NM_EMPREGADO, TP_CARGO, CD_DEPARTAMENTO 15

16 E 3 WHERE EXISTS (SELECT CD_EMPREGADO 4 FROM EMPREGADO A 5 WHERE A.CD_EMPREGADO_GERENTE = E.CD_EMPREGADO ) 6 ORDER BY CD_EMPREGADO Uma outra forma para encontrar os departamentos sem funcionários é: SQL> SELECT CD_DEPARTAMENTO, NM_DEPARTAMENTO 2 FROM DEPARTAMENTO D 3 WHERE NOT EXISTS (SELECT 1 4 FROM EMPREGADO E 5 WHERE E.CD_DEPARTAMENTO = D.CD_DEPARTAMENTO) Note que neste exemplo a consulta interna não precisa retornar nada, porém a cláusula SELECT precisa de uma coluna, mesmo que seja um literal. 9.8 Exercícios a) Listar os empregados com o maior salário por cargo, em ordem descendente de salário. b) Listar os empregados com os menores salário por cargo, em ordem ascendente de salário. c) Listar os últimos empregados contratados em cada departamento. d) Listar o nome, o salário e o número do departamento dos funcionários que recebem acima da média de seus departamentos. Ordenar pelo número do departamento. e) Listar os departamentos sem funcionários. f) Mostrar o departamento que tem mais despesas com seus funcionários. g) Quais os três empregados que ganham mais? h) Em que ano a empresa contratou mais? i) Modificar o exercício d para mostrar o salário médio do departamento junto com as outras informações. j) Escreva uma consulta que mostre um '*' junto do funcionário contratado mais recentemente 16

17 Capítulo 10 - Visões 10.1 Objetivos deste capítulo Mostrar a criação e utilização de visões (views) O que é uma visão Uma visão é como uma janela através da qual os dados das tabelas podem ser vistos e alterados. Uma visão é derivada de uma tabela ou de outra visão, a qual é chamada de tabela ou visão base. - uma tabela real com os dados fisicamente armazenados. Uma visão é armazenada na forma de um comando SELECT apenas. É uma tabela virtual, ou seja, uma tabela que não existe fisicamente no banco de dados, mas parece existir. Uma visão não tem dados próprios. Os dados são manipulados a partir das tabelas base. Visões são úteis pelas seguintes razões: Restringir o acesso ao banco de dados. Permite enxergar apenas parte das tabelas. Permite aos usuários executar consultas simples para obter resultados de consultas complexas. Podem ser recuperados dados de várias tabelas como se fosse uma única tabela. Provê independência de dados, permitindo alterar as tabelas base sem afetar as aplicações dos usuários Classificação das visões Visões simples dados derivados de uma única tabela não contém funções ou dados grupados Visões complexas dados derivados de múltiplas tabelas contém funções ou dados grupados. 17

18 10.4 O comando CREATE VIEW Sintaxe: CREATE VIEW nome_da_view [(coluna1, coluna2,...)] AS SELECT cláusula_select [WITH CHECK OPTION [CONSTRAINT nome_da_restrição]] Para criar uma visão simples chamada D10EMP, a partir da tabela EMPREGADO, contendo certos detalhes dos funcionários do departamento 10: SQL> CREATE VIEW D10EMP 2 AS 3 SELECT CD_EMPREGADO, NM_EMPREGADO, CD_DEPARTAMENTO 4 FROM EMPREGADO 5 WHERE CD_DEPARTAMENTO = 10 6 WITH CHECK OPTION View created. Para recuperar os dados através da visão: SQL> SELECT * 2 FROM D10EMP Para criar uma visão complexa, chamada DEPARTAMENTO_SOMADO, contendo funções de grupo e dados de mais de uma tabela: CREATE VIEW DEPARTAMENTO_SOMADO ( NAME, MINSAL, MAXSAL, AVGSAL ) AS SELECT NM_DEPARTAMENTO, MIN(VL_SALARIO), MAX(VL_SALARIO), AVG(VL_SALARIO) FROM EMPREGADO, DEPARTAMENTO WHERE EMPREGADO.CD_DEPARTAMENTO = DEPARTAMENTO.CD_DEPARTAMENTO GROUP BY NM_DEPARTAMENTO Note que nomes alternativos para as colunas foram especificados na visão, o que é necessário quando os itens da cláusula Select não estão de acordo com as regras para nomes de colunas, ou se alguma coluna é derivada de uma função ou expressão. Quando um aliás é utilizado para o nome da coluna na cláusula Select, não é necessário colocar um nome para a coluna na cláusula Create View. CREATE VIEW DEPARTAMENTO20 AS SELECT NM_EMPREGADO, VL_SALARIO*12 SALANO FROM EMPREGADO WHERE CD_DEPARTAMENTO = Usando uma visão para operações de DML 18

19 Visões são poderosas porque permitem realizar verificação de integridade referencial nos dados modificados através delas. A cláusula WITH CHECK OPTION especifica que inserções e atualizações realizadas através da visão não podem gerar linhas que a visão não pode enxergar. Se na visão D10EMP tentarmos inserir um funcionário do departamento 20 um erro é gerado. SQL> INSERT INTO D10EMP(CD_EMPREGADO, NM_EMPREGADO, CD_DEPARTAMENTO) 2 VALUES ( 9999, 'MICHAEL', 20 ); INSERT INTO D10EMP ( CD_EMPREGADO, NM_EMPREGADO, CD_DEPARTAMENTO ) * ERROR at line 1: ORA-01402: view WITH CHECK OPTION where-clause violation A visão EMP_DADOS só permite inserções ou atualizações se o salário estiver na faixa 1000 a 2000, o gerente estiver cadastrado na tabela de empregados, e o departamento estiver cadastrado na tabela de departamentos. SQL> CREATE VIEW EMP_DADOS 2 AS 3 SELECT CD_EMPREGADO, NM_EMPREGADO, TP_CARGO, 4 CD_EMPREGADO_GERENTE, VL_SALARIO, CD_DEPARTAMENTO 5 FROM EMPREGADO 6 WHERE VL_SALARIO BETWEEN 1000 AND AND CD_EMPREGADO_GERENTE IN ( SELECT DISTINCT CD_EMPREGADO 8 FROM EMPREGADO ) 9 AND CD_DEPARTAMENTO IN ( SELECT CD_DEPARTAMENTO 10 FROM DEPARTAMENTO ) 11 WITH CHECK OPTION View created. A visão EMP_DETALHES restringe o acesso aos dados no período das 7 às 17 horas, de segunda a sexta-feira. SQL> CREATE VIEW EMP_DETALHES 2 AS 3 SELECT CD_EMPREGADO, NM_EMPREGADO, TP_CARGO, CD_DEPARTAMENTO 4 FROM EMPREGADO 5 WHERE TO_CHAR(SYSDATE,'HH24') BETWEEN 7 AND 17 6 AND TO_CHAR(SYSDATE,'D') BETWEEN 2 AND 6 7 WITH CHECK OPTION View created. Quando a visão é criada, o comando SELECT não é executado, o comando SELECT é simplesmente armazenado no dicionário de dados. Através da visão USER_VIEWS do dicionário de dados, a definição da visão pode ser recuperada. Alguns parâmetros SET influenciam no texto mostrado: 19

20 SQL> DESC USER_VIEWS Name Null? Type VIEW_NAME NOT NULL CHAR(30) TEXT_LENGTH NUMBER TEXT LONG SQL> SELECT * FROM USER_VIEWS 10.6 Alterando dados através das visões As seguintes restrições se aplicam quando os dados são alterados através das visões: Eliminação e atualização é proibida de a visão contém: Junção. Funções de grupo. Cláusula GROUP BY. Cláusula DISTINCT. Coluna ROWNUM. Sub-consulta correlacionada. Colunas definidas por expressão. Inserção é proibida se a visão contém: Alguma das condições acima. Coluna NOT NULL da tabela que não consta da visão Eliminação de visões As visões são eliminadas através do comando DROP VIEW nome_da_visão. SQL> DROP VIEW D10EMP View dropped. SQL> DROP VIEW FUNCIONARIOS View dropped. SQL> DROP VIEW EMP_DADOS View dropped. SQL> DROP VIEW EMP_DETALHES 20

21 View dropped Exercícios a) Criar uma visão que produza o seguinte resultado. SQL> SELECT * FROM V_RESUMO_EMPREGADO CD_DEPARTAMENTO VL_MEDIA_SAL VL_MAX_SAL VL_MIN_SAL VL_SUM_SAL QT_SAL QT_COMISSAO b) Utilizando a visão do exercício anterior, extrair as seguintes informações do empregado CD_EMPREGADO NM_EMPREGADO TP_CARGO VL_SALARIO DT_ADMISSAO VL_MIN_SAL VL_MAX_SAL VL_MEDIA_SAL FORD ANALYST 3,000 05/12/ ,000 2,175 c) Criar uma visão que garanta as seguintes restrições ao se inserir dados na tabela ATRIBUICAO: - número do projeto menor do que Término do projeto após o início do projeto. - TP_ATRIBUICAO válidos são PF, WT e ED. - VL_TAXA menor do que 50 para TP_ATRIBUICAO PF. VL_TAXA menor do que 60 para TP_ATRIBUICAO WT. VL_TAXA menor do que 70 para TP_ATRIBUICAO ED. - O número do empregado deve ser válido. - Não esqueça a cláusula WITH CHECK OPTION SQL> SELECT * FROM V_ATRIBUICAO CD_PROJETO CD_EMPREGADO DT_INICIO DT_FIM VL_TAXA TP_ATRIBUICAO QT_HORAS /01/ /01/ WT /01/ /01/ PF /01/ /01/ WT 20 d) Inserir valores na tabela ATRIBUICAO através da visão criada. CD_PROJETO = 1 CD_EMPREGADO = 7566 DT_INICIO = 01/01/1989 DT_FIM = 01/01/1988 VL_TAXA =

22 TP_ATRIBUICAO = ED QT_HORAS = 20 Resultado ERROR at line 3: ORA-01402: view WITH CHECK OPTION where-clause violation CD_PROJETO = 2 CD_EMPREGADO = 7698 DT_INICIO = 01/02/1989 DT_FIM = 20/02/1989 VL_TAXA = TP_ATRIBUICAO = WT QT_HORAS = 30 Resultado 1 row created. CD_PROJETO = 2 CD_EMPREGADO = 8000 DT_INICIO = 01/03/1989 DT_FIM = 31/12/1989 VL_TAXA = TP_ATRIBUICAO = ED QT_HORAS = 40 Resultado ERROR at line 3: ORA-01402: view WITH CHECK OPTION where-clause violation e) Consulte o dicionário de dados para ver a cláusula SELECT da visão. 22

23 Capítulo 11 - Índices 11.1 Objetivos deste capítulo Mostrar a criação e a utilidade dos índices Finalidades dos índices Os índices do Oracle têm duas finalidades principais. - Otimizar o tempo de resposta de uma consulta. - Garantir unicidade de valores para uma coluna ou conjunto de colunas. A utilização de índices é altamente recomendada para obter melhor desempenho, e geralmente um dos primeiros índices a serem criados na tabela é o da chave primária. Os índices são criados, normalmente, pelos donos das tabelas, mas qualquer usuário que tenha privilégio de índice sobre a tabela também pode criar índices para a tabela. Uma vez criado, o índice será utilizado pelo Oracle, sempre que for possível, para acelerar o acesso aos dados. Note que os índices são utilizados automaticamente, sem requerer qualquer ação por parte do usuário, que nem precisa saber da existência dos índices Estrutura dos índices O Oracle utiliza árvores binárias balanceadas para os índices, o que garante o mesmo tempo, aproximadamente, para o acesso a qualquer linha da tabela, independente de sua posição. O tempo de acesso também é bastante independente do volume de dados indexados Tipos de índices UNIQUE Garante que os valores especificados para a(s) coluna(s) são únicos. NON UNIQUE É o padrão, usado para melhorar o tempo de acesso. SINGLE COLUMN Índice composto de apenas uma coluna. CONCATENATED Índice composto de até 16 colunas. 23

24 11.5 Criação dos índices Os índices são criados juntamente com as tabelas, ou através do comando: CREATE [UNIQUE] INDEX nome-do-índice ON nome-da-tabela (coluna1, [,coluna2...]) Criação de um índice para melhorar o acesso. Para criar um índice chamado NM_EMPREGADO_IDX para melhorar o tempo de acesso das consultas feitas através do nome do funcionário: CREATE INDEX NM_EMPREGADO_IDX ON EMPREGADO (NM_EMPREGADO ) Criação de um índice para garantir unicidade. Para evitar a duplicação do nome do departamento: CREATE UNIQUE INDEX NM_DEPARTAMENTO_IDX ON DEPARTAMENTO(NM_DEPARTAMENTO) 11.6 Eliminação dos índices Os índices são eliminados através do comando: DROP INDEX nome-do-índice 11.7 Quando um índice é utilizado O Oracle decide quando é apropriado utilizar um índice. O Oracle sabe quais colunas estão indexadas e o tipo do índice, e decide de acordo com regras específicas. a) A coluna indexada deve ser referenciada na cláusula Where. A consulta mostrada abaixo não utiliza índice porque não possui cláusula Where. SELECT NM_EMPREGADO FROM EMPREGADO A consulta abaixo utiliza o índice criado para a coluna NM_EMPREGADO : SELECT NM_EMPREGADO FROM EMPREGADO WHERE NM_EMPREGADO = JONES 24

25 b) O índice não é utilizado se a coluna referenciada na cláusula Where é parte de uma função ou de uma expressão. No exemplo abaixo o índice não é utilizado porque a coluna NM_EMPREGADO é parte de uma função: SELECT NM_EMPREGADO FROM EMPREGADO WHERE UPPER(NM_EMPREGADO ) = JONES No exemplo abaixo o índice não é utilizado porque a coluna é parte de uma expressão: 11.8 Índices e Junções SELECT NM_EMPREGADO FROM EMPREGADO WHERE DT_ADMISSAO+7 = TO_DATE( 01/01/1984, DD/MM/YYYY ) Se não existirem índices nas colunas utilizadas para realizar a junção equivalente, o Oracle é obrigado a realizar uma operação de SORT/MERGE para responder a consulta. Isto significa que cada tabela é ordenada separadamente, e depois as duas são unidas de acordo com a condição de junção Sugestões para criação dos índices As colunas que não permitem valores duplicados devem ser indexadas. As colunas que são utilizadas habitualmente na cláusula Where devem ser indexadas. As colunas utilizadas nas condições de junção equivalente devem ser indexadas. Não devem ser utilizados mais de 3 índices por tabela para não prejudicar as operações realizadas através das operações de DML Exercícios a) Criar um índice único na coluna DS_PROJETO da tabela PROJETO. Teste o índice inserindo um valor para DS_PROJETO já existente. b) Criar um índice não único na coluna CD_PROJETO da tabela ATRIBUICAO. c) Consulte o dicionário de dados para obter as informações de seus índices. 25

26 12.1 Objetivos deste capítulo Capítulo 12: Seqüências Mostrar a criação e a utilização das seqüências O gerador de seqüências O gerador de seqüências do Oracle é utilizado para gerar automaticamente seqüências de números para as linhas das tabelas. Para gerar os números seqüenciais automaticamente, primeiro a seqüência deve ser definida utilizando a declaração CREATE SEQUENCE, conforme a sintaxe mostrada abaixo: CREATE SEQUENCE [esquema.]nome-da-seqüência [INCREMENT BY n] [START WITH n] [MAXVALUE n NOMAXVALUE] [MINVALUE n NOMINVALUE] esquema identificação do dono da seqüência. nome-da-seqüência nome válido para a seqüência. INCREMENT BY incremento positivo ou negativo. Padrão: 1. START WITH primeiro número a ser gerado. Padrão: 1. MINVALUE NOMINVALUE menor valor a ser gerado. Padrão: 1 para seqüências ascendentes, 10^27-1 para seqüências descendentes. MAXVALUE NOMAXVALUE maior valor a ser gerado. Padrão: 1 para seqüências descendentes, 10^27-1 para seqüências ascendentes. Para um usuário poder criar uma seqüência deve possuir o privilégio de resource. O comando mostrada abaixo cria uma seqüência para a coluna CD_DEPARTAMENTO da tabela DEPARTAMENTO. CREATE SEQUENCE DEPARTAMENTO_SEQ INCREMENT BY 10 START WITH 10 MAXVALUE Geração de números seqüenciais com NEXTVAL A pseudo-coluna NEXTVAL é utilizada para gerar números seqüenciais sucessivos de uma seqüência especificada. Quando a coluna NEXTVAL é especificada um novo número seqüencial é gerado. SELECT DEPARTAMENTO_SEQ.NEXTVAL FROM SYS.DUAL NEXTVAL

27 Se o comando for executado novamente, o valor é incrementado de 10. SELECT DEPARTAMENTO_SEQ.NEXTVAL FROM SYS.DUAL NEXTVAL Todo os valores subsequentes serão incrementados de 10. Notas: A coluna NEXTVAL sempre deve ser prefixada pelo nome da seqüência. Se a coluna NEXTVAL for referenciada diversas vezes dentro do mesmo comando SQL, todas as referências retornam o mesmo valor. A coluna NEXTVAL é mais útil em comandos de DML. Por exemplo, quando são inseridas linhas na tabela, a seqüência pode ser utilizada para gerar valores únicos para a chave primária. INSERT INTO DEPARTAMENTO VALUES (DEPARTAMENTO_SEQ.NEXTVAL, CONTABILIDADE, SÃO LUDGERO ) Quando o número seqüencial é gerado, a seqüência é incrementada independentemente de haver um Commit ou um Rollback para a transação. Quando dois usuários acessam a mesma seqüência ao mesmo tempo, os dois usuários podem ver descontinuidades na seqüência, devido a valores gerados para o outro usuário que ainda não receberam o Commit. Os números produzidos pelo gerador de seqüências podem ser saltados devido a Rollbacks Valor atual da seqüência Para se referir ao valor atual da seqüência, pode ser utilizada a pseudo-coluna CURRVAL. Toda vez que a pseudo-coluna NEXTVAL é utilizada, o valor gerado é armazenado em CURRVAL, que só pode ser utilizada após NEXTVAL ser referenciado na sessão atual do usuário. INSERT INTO DEPARTAMENTO VALUES (DEPARTAMENTO_SEQ.CURRVAL, CONTABILIDADE, SÃO LUDGERO ) 12.5 Regras para utilizar CURRVAL E NEXTVAL Currval e Nextval podem ser utilizados na: Cláusula SELECT da declaração SELECT (exceto para visões). Lista de valores da declaração INSERT. 27

28 Cláusula SET da declaração UPDATE. Currval e Nextval não podem ser utilizados: Em visões. Com a palavra chave DISTINCT. Com as cláusulas Order By, Group By, Connect By, ou Having da declaração SELECT. Com os operadores Intersect, Union e Minus. Seqüências são tratadas de maneira similar às tabelas, podendo ser alteradas e eliminadas. O dono de uma seqüência pode conceder privilégios a outros usuários Alterando uma seqüência O comando ALTER SEQUENCE é utilizado para modificar uma seqüência existente. ALTER SEQUENCE [esquema.]nome-da-sequencia [INCREMENT BY n] [MAXVALUE n NOMAXVALUE] [MINVALUE n NOMINVALUE] Por exemplo, para modificar o valor máximo para a seqüência DEPARTAMENTO_SEQ: Notas: ALTER SEQUENCE DEPARTAMENTO_SEQ MAXVALUE Somente os números a serem gerados no futuro são alterados pelo comando Alter Sequence. Os números que já foram gerados não são alterados. Validações são realizadas. Não pode ser especificado, por exemplo, um novo valor máximo menor que o valor corrente. O parâmetro START WITH não pode ser alterado pelo comando Alter Sequence. A seqüência deve ser eliminada e recriada para ser iniciada com um novo número Eliminando uma seqüência O comando Drop Sequence remove a definição da seqüência do dicionário de dados. DROP SEQUENCE [esquema.]nome-da-seqüência 28

29 Apenas o dono da seqüência e o DBA podem utilizar este comando Listando seqüências As visões USER_SEQUENCES ou ALL_SEQUENCES podem ser utilizadas para descobrir as seqüências existentes. 29

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL Banco de Dados Exercícios SQL 1 TRF (ESAF 2006) 32. Analise as seguintes afirmações relacionadas a Bancos de Dados e à linguagem SQL: I. A cláusula GROUP BY do comando SELECT é utilizada para dividir colunas

Leia mais

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

Uma expressão básica em SQL consiste em três cláusulas: select, from e where. Introdução a Banco de Dados O.K. Takai; I.C.Italiano; J.E. Ferreira. 67 8 A Linguagem SQL A linguagem SQL é um padrão de linguagem de consulta comercial que usa uma combinação de construtores em Álgebra

Leia mais

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

Leia mais

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE

Leia mais

Banco de Dados. Prof. Antonio

Banco de Dados. Prof. Antonio Banco de Dados Prof. Antonio SQL - Structured Query Language O que é SQL? A linguagem SQL (Structure query Language - Linguagem de Consulta Estruturada) é a linguagem padrão ANSI (American National Standards

Leia mais

Linguagem de Consulta Estruturada SQL- DML

Linguagem de Consulta Estruturada SQL- DML Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation

Leia mais

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda. SQL comando SELECT Uma das tarefas mais requisitadas em qualquer banco de dados é obter uma listagem de registros armazenados. Estas tarefas são executadas pelo comando SELECT Sintaxe: SELECT [DISTINCT]

Leia mais

Banco de Dados Oracle 10g: Introdução à Linguagem SQL

Banco de Dados Oracle 10g: Introdução à Linguagem SQL Oracle University Entre em contato: 0800 891 6502 Banco de Dados Oracle 10g: Introdução à Linguagem SQL Duração: 5 Dias Objetivos do Curso Esta classe se aplica aos usuários do Banco de Dados Oracle8i,

Leia mais

Structured Query Language (SQL)

Structured Query Language (SQL) SQL Histórico Structured Query Language (SQL) Foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language) para suas primeiras tentativas

Leia mais

3) Palavra-chave distinct (select-from). Obter apenas os pibs distintos entre si.

3) Palavra-chave distinct (select-from). Obter apenas os pibs distintos entre si. NOME: BRUNO BRUNELI BANCO DE DADOS - ADS create database ProducaoMinerais use ProducaoMinerais create table Mineral( nome varchar(15) primary key, preco real) create table Pais( nome varchar(30) primary

Leia mais

Programação SQL. Manipulação de Dados. DML Data Manipulation Language

Programação SQL. Manipulação de Dados. DML Data Manipulation Language Programação SQL Manipulação de Dados DML Data Manipulation Language Manipulação de Dados (DML) Os comandos INSERT, UPDATE, DELETE, são normalmente classificados como pertencendo a uma sublinguagem da linguagem

Leia mais

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language) Básico da Linguagem SQL Definição de Esquemas em SQL SQL(Structured Query Language) Desenvolvida como a linguagem de consulta do protótipo de SGBD Sistema R (IBM, 1976). Adotada como linguagem padrão de

Leia mais

Prova de Fundamentos de Bancos de Dados 2 a Prova

Prova de Fundamentos de Bancos de Dados 2 a Prova Prova de Fundamentos de Bancos de Dados 2 a Prova Prof. Carlos A. Heuser Maio de 2006 Prova com consulta duas horas de duração 1 Base de dados para as questões (Esta é a mesma base de dados que foi usada

Leia mais

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados LINGUAGEM SQL Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características

Leia mais

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL SQL TGD/JMB 1 Projecto de Bases de Dados Linguagem SQL SQL TGD/JMB 2 O que é o SQL? SQL ("ess-que-el") significa Structured Query Language. É uma linguagem standard (universal) para comunicação com sistemas

Leia mais

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL Carga horária: 32 Horas Pré-requisito: Para que os alunos possam aproveitar este treinamento ao máximo, é importante que eles tenham participado dos treinamentos

Leia mais

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo ) PRONATEC - Programador de Sistemas Banco de Dados 1) Incluindo linhas nas tabelas a. Para incluir linhas em tabelas utilize o comando INSERT INTO INSERT INTO tabela [ ( coluna [, coluna,...] ) ] VALUES

Leia mais

EXEMPLOS DE COMANDOS NO SQL SERVER

EXEMPLOS DE COMANDOS NO SQL SERVER EXEMPLOS DE COMANDOS NO SQL SERVER Gerenciando Tabelas: DDL - DATA DEFINITION LANGUAG Criando uma tabela: CREATE TABLE CLIENTES ID VARCHAR4 NOT NULL, NOME VARCHAR30 NOT NULL, PAGAMENTO DECIMAL4,2 NOT NULL;

Leia mais

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

Sumário 1 0.1 Introdução 1 0.2 Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL 3 0.4 A Composição deste Livro 3

Sumário 1 0.1 Introdução 1 0.2 Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL 3 0.4 A Composição deste Livro 3 ÍNDICE o -INTRODUÇÃO Sumário 1 0.1 Introdução 1 0.2 Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL 3 0.4 A Composição deste Livro 3 0.5 Sistemas Utilizados 6 0.5.1 Access 2003 (Microsoft)

Leia mais

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados SQL (Structured Querie Language) SQL é mais que uma linguagem de interrogação estruturada. Inclui características para a definição da estrutura de dados, para alterar os dados de uma base de dados, e para

Leia mais

SQL UMA ABORDAGEM INTERESSANTE

SQL UMA ABORDAGEM INTERESSANTE SQL é uma linguagem de consulta estruturada, do inglês Structured Query Language. É uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características

Leia mais

PROGRAMA. Aquisição dos conceitos teóricos mais importantes sobre bases de dados contextualizados à luz de exemplos da sua aplicação no mundo real.

PROGRAMA. Aquisição dos conceitos teóricos mais importantes sobre bases de dados contextualizados à luz de exemplos da sua aplicação no mundo real. PROGRAMA ANO LECTIVO: 2005/2006 CURSO: LICENCIATURA BI-ETÁPICA EM INFORMÁTICA ANO: 2.º DISCIPLINA: BASE DE DADOS DOCENTE RESPONSÁVEL PELA REGÊNCIA: Licenciado Lino Oliveira Objectivos Gerais: Aquisição

Leia mais

Bem-vindo ao tópico sobre consultas no SAP Business One.

Bem-vindo ao tópico sobre consultas no SAP Business One. Bem-vindo ao tópico sobre consultas no SAP Business One. 1 Neste tópico, você aprenderá a criar consultas SQL utilizando as ferramentas de consulta do SAP Business One Assistente de consultas e Gerador

Leia mais

DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.

Leia mais

EXERCÍCIOS PRÁTICOS. Banco de Dados

EXERCÍCIOS PRÁTICOS. Banco de Dados EXERCÍCIOS PRÁTICOS Banco de Dados Introdução ao uso do SQL Structured Query Language, considerando tanto DDL Data Definition Language quanto DML Data Manipulation Language. Banco de Dados selecionado:

Leia mais

SQL DML. Frederico D. Bortoloti freddb@ltc.ufes.br

SQL DML. Frederico D. Bortoloti freddb@ltc.ufes.br Banco de Dados I SQL DML Frederico D. Bortoloti freddb@ltc.ufes.br SQL - DML Os exemplos da aula serão elaborados para o esquema de dados a seguir: Empregado(matricula, nome, endereco, salario, supervisor,

Leia mais

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com SQL Prof. Márcio Bueno {bd2tarde,bd2noite}@marciobueno.com Material dos professores Ana Carolina Salgado, Fernando Foncesa e Valéria Times (CIn/UFPE) SQL SQL - Structured Query Language Linguagem de Consulta

Leia mais

Tarefa Orientada 13 Agrupamento e sumário de dados

Tarefa Orientada 13 Agrupamento e sumário de dados Tarefa Orientada 13 Agrupamento e sumário de dados Objectivos: Funções de agregação Agrupamento e sumário de dados Funções de agregação Nesta tarefa orientada iremos formular consultas que sumariam os

Leia mais

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos. Banco de Dados O que é um Banco de Dados? Este assunto é muito vasto, tentaremos resumi-lo para atender as questões encontradas em concursos públicos. Já conhecemos o conceito de dado, ou seja, uma informação

Leia mais

Treinamento sobre SQL

Treinamento sobre SQL Treinamento sobre SQL Como Usar o SQL Os dois programas que você mais utilizara no SQL Server são: Enterprise Manager e Query Analyzer. No Enterprise Manager, você pode visualizar e fazer alterações na

Leia mais

Linguagem de Consulta - SQL

Linguagem de Consulta - SQL Complementos da Linguagem SQL - Eliminando Tuplas Repetidas Exemplo: Obter o código das editoras que têm livros publicados CodEditora Titulo Publicacao... 04 Banco de Dados 1989 02 Análise 2000 01 XML

Leia mais

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas: Álgebra Relacional Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída operação (REL 1 ) REL 2 operação (REL 1,REL 2 ) REL 3 Operações básicas: seleção projeção

Leia mais

SQL Structured Query Language

SQL Structured Query Language Janai Maciel SQL Structured Query Language (Banco de Dados) Conceitos de Linguagens de Programação 2013.2 Structured Query Language ( Linguagem de Consulta Estruturada ) Conceito: É a linguagem de pesquisa

Leia mais

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação. O Departamento de Pesquisas da IBM desenvolveu a SQL como forma de interface para

Leia mais

Definida pelo American National Standard Institute (ANSI) em 1986

Definida pelo American National Standard Institute (ANSI) em 1986 2.3. Linguagens Relacionais SQL Structured Query Language Linguagem para o modelo relacional: Definida pelo American National Standard Institute (ANSI) em 1986 Adoptada em 1987 como um standard internacional

Leia mais

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br BANCO DE DADOS -INTRODUÇÃO AO SQL Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br Os comandos SQL podem ser agrupados em 3 classes: DDL Data Definition Language Comandos para a Definição

Leia mais

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1 IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1 Banco de Dados Fundamentos de SQL Structured Query Language Aula2 Apresentado por: Robson do Nascimento Fidalgo rdnf@cin.ufpe.br IF685

Leia mais

Tarefa Orientada 16 Vistas

Tarefa Orientada 16 Vistas Tarefa Orientada 16 Vistas Objectivos: Vistas só de leitura Vistas de manipulação de dados Uma vista consiste numa instrução de SELECT que é armazenada como um objecto na base de dados. Deste modo, um

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II BANCO DE DADOS II AULA 3 Linguagem SQL Linguagem de manipulação de dados (DML) DISCIPLINA: Banco de

Leia mais

Exercícios com o intuito de cobrar todos os assuntos vistos em sala, relativos à Modelagem Conceitual, SQL, PL e XML. 1ª ETAPA

Exercícios com o intuito de cobrar todos os assuntos vistos em sala, relativos à Modelagem Conceitual, SQL, PL e XML. 1ª ETAPA Exercícios com o intuito de cobrar todos os assuntos vistos em sala, relativos à Modelagem Conceitual, SQL, PL e XML. A 1ª etapa é referente à primeira unidade da cadeira. A 2ª etapa tem foco na segunda

Leia mais

Structured Query Language (SQL) Aula Prática

Structured Query Language (SQL) Aula Prática Structured Query Language (SQL) Aula Prática Linguagens de SGBD Durante o desenvolvimento do sistema R, pesquisadores da IBM desenvolveram a linguagem SEQUEL, primeira linguagem de acesso para Sistemas

Leia mais

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) 8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) Nos itens anteriores vimos transações do tipo explícitas, ou seja, aquelas que iniciam com BEGIN TRANSACTION. As outras

Leia mais

Linguagem de Consulta Estruturada (SQL)

Linguagem de Consulta Estruturada (SQL) Linguagem de Consulta Estruturada (SQL) Conceitos sobre a versão ANSI da SQL, a sublinguagem de definição de dados (DDL) e a sublinguagem de manipulação de dados (DML) Prof. Flavio Augusto C. Correia 1

Leia mais

Exercícios de Lógica Exercícios de Fixação 08

Exercícios de Lógica Exercícios de Fixação 08 Exercícios Exercícios de Lógica Exercícios de Fixação 08 1. A linguagem SQL apresenta uma série de comandos que permitem a definição dos dados, chamada de DDL (Data Definition Language). Assinale a alternativa

Leia mais

LINGUAGEM SQL PARA CONSULTAS EM MICROSOFT ACCESS

LINGUAGEM SQL PARA CONSULTAS EM MICROSOFT ACCESS LINGUAGEM SQL PARA CSULTAS EM MICROSOFT ACCESS Objetivos: Neste tutorial serão apresentados os principais elementos da linguagem SQL (Structured Query Language). Serão apresentados diversos exemplos práticos

Leia mais

Programação SQL. INTRODUÇÃO II parte

Programação SQL. INTRODUÇÃO II parte Programação SQL INTRODUÇÃO II parte Programação SQL SELECT; INSERT; UPDATE; DELETE. Este conjunto de comandos faz parte da sublinguagem denominada por DML Data Manipulation Language (Linguagem de manipulação

Leia mais

Banco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli

Banco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli Banco de Dados I 2007 Módulo V: Indexação em Banco de Dados (Aulas 4) Clodis Boscarioli Agenda: Indexação em SQL; Vantagens e Custo dos Índices; Indexação no PostgreSQL; Dicas Práticas. Índice em SQL Sintaxe:

Leia mais

4.6. SQL - Structured Query Language

4.6. SQL - Structured Query Language 4.6. SQL - Structured Query Language SQL é um conjunto de declarações que é utilizado para acessar os dados utilizando gerenciadores de banco de dados. Nem todos os gerenciadores utilizam SQL. SQL não

Leia mais

Pontifícia Universidade Católica do Rio Grande do Sul FACULDADE DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO.

Pontifícia Universidade Católica do Rio Grande do Sul FACULDADE DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO. Pontifícia Universidade Católica do Rio Grande do Sul FACULDADE DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO Curso Oracle 10g Prof. MSc. Luciano Blomberg lblomberg@uol.com.br 2011/1

Leia mais

1. SQL Instrumental...2 1.1 Select...3 1.2 Delete...13 1.3 Update... 1.4 Insert... 1.5 Group by... 1.6 Having... 1.7 Unnion All...

1. SQL Instrumental...2 1.1 Select...3 1.2 Delete...13 1.3 Update... 1.4 Insert... 1.5 Group by... 1.6 Having... 1.7 Unnion All... SQL 1. SQL Instrumental...2 1.1 Select...3 1.2 Delete...13 1.3 Update... 1.4 Insert... 1.5 Group by... 1.6 Having... 1.7 Unnion All... 2. Servidor... 2.1 Ativando log no Broker... 2.2 Leitura do log no

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

Projeto de Banco de Dados

Projeto de Banco de Dados Projeto de Banco de Dados SQL-Consultas Comando SELECT Prof. Luiz Antônio Vivacqua C. Meyer (la.vivacqua@gmail.com) Sintaxe Geral SELECT [ALL/DISTINCT] coluna1, coluna2,..., colunan FROM nome_tabela1,

Leia mais

NOME SEXO CPF NASCIMENTO SALARIO

NOME SEXO CPF NASCIMENTO SALARIO Tutorial SQL Fonte: http://www.devmedia.com.br/articles/viewcomp.asp?comp=2973 Para começar Os Sistemas Gerenciadores de Bancos de Dados Relacionais (SGBDr) são o principal mecanismo de suporte ao armazenamento

Leia mais

Bases de Dados. DML Data Manipulation Language Parte 1

Bases de Dados. DML Data Manipulation Language Parte 1 Bases de Dados DML Data Manipulation Language Parte 1 DML Data Manipulation Language Diz respeito à manipulação dos dados. É utilizada para: Inserir dados numa tabela(tuplos) Remover dados de uma tabela(tuplos)

Leia mais

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL)

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL) CEFET.PHB - PI Prof. Jefferson Silva SQL (MySql) ROTEIRO I PARTE - INTRODUÇÃO AO SQL COMANDOS E SUAS PARTES DA LINGUAGEM SQL II PARTE ADMINSTRAÇÃO DE BANCO DE DADOS UTILIZANDO MYSQL PRINCIPAIS INSTRUÇÕES

Leia mais

S Q L 31/03/2010. SQL - Structured Query Language Linguagem de Consulta Estruturada

S Q L 31/03/2010. SQL - Structured Query Language Linguagem de Consulta Estruturada Gerenciamento de Dados e Informação Fernando Fonseca Ana Carolina Robson Fidalgo SQL SQL - Structured Query Language Linguagem de Consulta Estruturada Apesar do QUERY no nome, não é apenas de consulta,

Leia mais

Bases de Dados 2005/2006. Aula 5

Bases de Dados 2005/2006. Aula 5 Bases de Dados 2005/2006 Aula 5 Sumário -1. (T.P.C.) Indique diferenças entre uma tabela e uma relação. 0. A base de dados Projecto 1. SQL Join (variantes) a. Cross Join b. Equi-Join c. Natural Join d.

Leia mais

Tarefa Orientada 14 Subconsultas

Tarefa Orientada 14 Subconsultas Tarefa Orientada 14 Subconsultas Objectivos: Subconsultas não correlacionadas Operadores ALL, SOME e ANY Subconsultas correlacionadas Operador EXISTS Subconsultas incluídas na cláusula FROM de uma consulta

Leia mais

Linguagem de Consulta - SQL

Linguagem de Consulta - SQL SQL Structured Query Language Linguagem de Consulta Estruturada; Originou-se da linguagem SEQUEL (1974); Revisada e chamada de SQL em 1976/77; Em 1986, padronizada pelo ANSI/ISO - chamada SQL-86; Em 1987

Leia mais

Incluindo, atualizando e excluindo linhas nas tabelas

Incluindo, atualizando e excluindo linhas nas tabelas 5 Incluindo, atualizando e excluindo linhas nas tabelas Agora que nossas tabelas estão devidamente criadas, relacionadas e com índices para agilizar as pesquisas, vamos movimentar os dados nas tabelas

Leia mais

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados.

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados. Principais Instruções em SQL Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados. Atenção: Esta apostila foi desenvolvida com o auxílio on-line do banco MS-ACCESS,

Leia mais

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos Lógica Aula 2 Técnicas de Programação Criando algoritmos Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos Criando

Leia mais

S Q L 15/01/2013. Enfoques de SQL. Enfoques de SQL SQL. Usos de SQL. SQL - Origem/Histórico. Gerenciamento de Dados e Informação

S Q L 15/01/2013. Enfoques de SQL. Enfoques de SQL SQL. Usos de SQL. SQL - Origem/Histórico. Gerenciamento de Dados e Informação Enfoques de SQL Gerenciamento de Dados e Informação Fernando Fonseca Ana Carolina Valeria Times Bernadette Loscio Linguagem interativa de consulta (ad-hoc): usuários podem definir consultas independente

Leia mais

CURSO DE EXTENSÃO ON-LINE EM Oracle 10g Express Edition XE nível básico. Edital de seleção

CURSO DE EXTENSÃO ON-LINE EM Oracle 10g Express Edition XE nível básico. Edital de seleção CURSO DE EXTENSÃO ON-LINE EM Oracle 10g Express Edition XE nível básico Edital de seleção Nome: Oracle 10g Express Edition XE nível básico Coordenador Geral: Profº Mestre Luis Naito Mendes Bezerra Área

Leia mais

Principais Instruções em SQL

Principais Instruções em SQL Instrução Principais Instruções em SQL Instrui o programa principal do banco de dados para retornar a informação como um conjunto de registros. Sintaxe [predicado { * tabela.* [tabela.]campo1 [AS alias1]

Leia mais

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo ) Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: B1SGB - Sistemas Gerenciadores de Banco de Dados Memória de aula Aula 10 1) Incluindo linhas nas tabelas a. Para incluir linhas em tabelas

Leia mais

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados. PLANIFICAÇÃO DA DISCIPLINA DE SISTEMAS DE INFORMAÇÃO 12.ºH CURSO PROFISSIONAL DE TÉCNICO MULTIMÉDIA ANO LECTIVO 2013/2014 6. LINGUAGENS DE PROGRAMAÇÃO IV Pré-requisitos: - Planificar e estruturar bases

Leia mais

TÉCNICAS DE PROGRAMAÇÃO

TÉCNICAS DE PROGRAMAÇÃO TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente

Leia mais

BDII SQL Junção Revisão 8

BDII SQL Junção Revisão 8 exatasfepi.com.br BDII SQL Junção Revisão 8 André Luís Duarte Leais são as feridas feitas pelo amigo, mas os beijos do inimigo são enganosos. Provérbios 27:6 SQL Introdução Produto cartesiano Nomes alternativos

Leia mais

O que são Bancos de Dados?

O que são Bancos de Dados? SQL Básico Liojes de Oliveira Carneiro professor.liojes@gmail.com www.professor-liojes.blogspot.com O que são Bancos de Dados? É o software que armazena, organiza, controla, trata e distribui os dados

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

Fundamentos do Sistema Gerenciador de Banco de Dados

Fundamentos do Sistema Gerenciador de Banco de Dados Fundamentos do Sistema Gerenciador de Banco de Dados Cláudio Luís V. Oliveira Janeiro de 2010 Definição "Um sistema cujo objetivo principal é gerenciar o acesso, a correta manutenção e a integridade dos

Leia mais

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita: SQL Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino de Ciências

Leia mais

Curso PHP Aula 08. Bruno Falcão brunogfalcao@gmail.com

Curso PHP Aula 08. Bruno Falcão brunogfalcao@gmail.com + Curso PHP Aula 08 Bruno Falcão brunogfalcao@gmail.com + Roteiro Conectividade com BD SQL + SQL Structured Query Language. Padrão para interagir com banco de dados relacionais. + Banco de dados Um banco

Leia mais

Índice. Introdução... 31. Tutorial 1: O Microsoft Access como Sistema de Gestão de Bases de Dados Relacionais... 35

Índice. Introdução... 31. Tutorial 1: O Microsoft Access como Sistema de Gestão de Bases de Dados Relacionais... 35 Introdução... 31 1. Bases de Dados Relacionais...31 2. Modelação de Bases de Dados...31 3. Modelo de Classes UML...32 4. Linguagem SQL...32 5. Sobre o Microsoft Access...32 Tutorial 1: O Microsoft Access

Leia mais

PROGRAMA. Objectivos Gerais :

PROGRAMA. Objectivos Gerais : PROGRAMA ANO LECTIVO : 2005/2006 CURSO : ENGENHARIA MULTIMÉDIA ANO: 2.º DISCIPLINA : SISTEMA DE GESTÃO DE BASE DE DADOS DOCENTE RESPONSÁVEL PELA REGÊNCIA : Licenciado Lino Oliveira Objectivos Gerais :

Leia mais

Prof. Carlos Majer Aplicações Corporativas UNICID

Prof. Carlos Majer Aplicações Corporativas UNICID Este material pertence a Carlos A. Majer, Professor da Unidade Curricular: Aplicações Corporativas da Universidade Cidade de São Paulo UNICID Licença de Uso Este trabalho está licenciado sob uma Licença

Leia mais

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível

Leia mais

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix Ingress SQL

Leia mais

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

Tarefa Orientada 12 Junção Externa, Auto-Junção e União Tarefa Orientada 12 Junção Externa, Auto-Junção e União Objectivos: Junção externa (Outer JOIN) Junção externa à esquerda (LEFT Outer JOIN) Junção externa à direita (RIGHT Outer JOIN) Junção externa completa

Leia mais

SQL (Structured Query Language)

SQL (Structured Query Language) (Structured Query Language) I DDL (Definição de Esquemas Relacionais)... 2 I.2 Domínios... 2 I.3 Criação de Tabelas... 2 I.4 Triggers... 4 II DML Linguagem para manipulação de dados... 5 II.2 Comando SELECT...

Leia mais

Prof. Daniela Barreiro Claro

Prof. Daniela Barreiro Claro Prof. Daniela Barreiro Claro SQL, SQL3 e OQL são linguagens declarativas O SGBD deve processar e otimizar estas consultas antes delas serem efetivamente executadas Uma consulta possui muitas estratégias

Leia mais

SQL BÁSICO. Introdução. Prof. Suelane Garcia. Linguagem SQL (Structured Query Language)

SQL BÁSICO. Introdução. Prof. Suelane Garcia. Linguagem SQL (Structured Query Language) SQL BÁSICO Prof. Suelane Garcia Introdução 2 Linguagem SQL (Structured Query Language) Linguagem de Consulta Estruturada padrão para acesso a Banco de Dados. Usada em inúmeros Sistemas de Gerenciamento

Leia mais

SQL S Q L. Introdução. Enfoques de SQL. SQL - Origem/Histórico. Usos de SQL. SQL - Vantagens. Banco de Dados. Fernando Fonseca Ana Carolina

SQL S Q L. Introdução. Enfoques de SQL. SQL - Origem/Histórico. Usos de SQL. SQL - Vantagens. Banco de Dados. Fernando Fonseca Ana Carolina Introdução Banco de Dados SQL Fernando Fonseca Ana Carolina SQL - Structured Query Language Linguagem de Consulta Estruturada Apesar do QUERY no nome, não é apenas de consulta, permitindo definição (DDL)

Leia mais

Linguagem SQL Sub-linguagem DDL

Linguagem SQL Sub-linguagem DDL Linguagem SQL Sub-linguagem DDL A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language para suas

Leia mais

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello Banco de Dados I Linguagem SQL Parte 2 Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello Introdução Como vimos, um SGBD possui duas linguagens: DDL: Linguagem de Definição de Dados. Usada

Leia mais

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. SQL (Structured Query Language) SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. Além de permitir a realização de consultas, SQL possibilita: definição

Leia mais

Q-Acadêmico. Módulo CIEE - Estágio. Revisão 01

Q-Acadêmico. Módulo CIEE - Estágio. Revisão 01 Q-Acadêmico Módulo CIEE - Estágio Revisão 01 SUMÁRIO 1. VISÃO GERAL DO MÓDULO... 2 1.1 PRÉ-REQUISITOS... 2 2. ORDEM DE CADASTROS PARA UTILIZAÇÃO DO MÓDULO CIEE... 3 2.1 CADASTRANDO EMPRESAS... 3 2.1.1

Leia mais

Tabelas vista de estrutura

Tabelas vista de estrutura Tabelas vista de estrutura A vista de estrutura permite definir a configuração dos dados Vamos adicionar os restantes campos à tabela carros, de acordo com o modelo de dados feito no papel 47 Tabelas vista

Leia mais

Banco de Dados. Maurício Edgar Stivanello

Banco de Dados. Maurício Edgar Stivanello Banco de Dados Maurício Edgar Stivanello Agenda Conceitos Básicos SGBD Projeto de Banco de Dados SQL Ferramentas Exemplo Dado e Informação Dado Fato do mundo real que está registrado e possui um significado

Leia mais

Tarefa Orientada 18 Procedimentos armazenados

Tarefa Orientada 18 Procedimentos armazenados Tarefa Orientada 18 Procedimentos armazenados Objectivos: Criar Procedimentos armazenados Chamar procedimentos armazenados Utilizar parâmetros de entrada e de saída Um procedimento armazenado representa

Leia mais

Operação de União JOIN

Operação de União JOIN Operação de União JOIN Professor Victor Sotero SGD 1 JOIN O join é uma operação de multi-tabelas Select: o nome da coluna deve ser precedido pelo nome da tabela, se mais de uma coluna na tabela especificada

Leia mais

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível de independência do

Leia mais

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL Criar uma base de dados (criar um banco de dados) No mysql: create database locadora; No postgresql: createdb locadora Criar

Leia mais

Manual do Usuário - ProJuris Web - Biblioteca Jurídica Página 1 de 20

Manual do Usuário - ProJuris Web - Biblioteca Jurídica Página 1 de 20 As informações contidas neste documento estão sujeitas a alterações sem o prévio aviso, o que não representa um compromisso da Virtuem Informática. As pessoas, organizações ou empresas e eventos de exemplos

Leia mais

1. Assinale as afirmações que são verdadeiras e as que são falsas, corrigindo-as:

1. Assinale as afirmações que são verdadeiras e as que são falsas, corrigindo-as: Curso Profissional Técnico de Informática de Gestão 10ºB Prof. Pedro Lopes S i s t e m a s d e I n f o r m a ç ã o M ó d u l o : L i n g u a g e m S Q L T e s t e s u m a t i v o d u r a ç ã o 8 0 m i

Leia mais

DML - SELECT Agrupando Dados

DML - SELECT Agrupando Dados DML - SELECT Agrupando Dados 1. Apresentação Já conhecemos os comandos básicos de manipulação de dados: insert; delete; update e select. O comando de consulta select utilizado até aqui era aplicado sobre

Leia mais

MODELO DE DADOS VS ESQUEMA

MODELO DE DADOS VS ESQUEMA MODELO DE DADOS VS ESQUEMA Um modelo de dados é um conjunto de conceitos usados para se descrever dados. Um esquema é uma descrição de uma determinada coleção de dados, descrição essa baseada num certo

Leia mais

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003 Bases de Dados Introdução à linguagem SQL História Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R Renomeada para SQL (Structured Query Language) Standards ISO e ANSI SQL-86, SQL-89,

Leia mais