Banco de Dados Aplicado ao Desenvolvimento de Software

Slides:



Advertisements
Apresentações semelhantes
O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Advertisements

Object Query Language - OQL
Álgebra Relacional Marcelo Mendes Manaus
Banco de Dados Prof. Antonio.
SQL Avançado Continuação
SQL Structured Query Language (continuação)
Banco de Dados Bruno Rafael de Oliveira Rodrigues.
Prof. Bruno Rafael de Oliveira Rodrigues
Prof.: Bruno Rafael de Oliveira Rodrigues
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone: 9531 – 7555.
Visões Marilde Santos.
Otimização de Consultas em SQL Parte I - Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 19 Profa. Sandra de Amo Programa.
Otimização de Consultas em SQL Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 24 Profa. Sandra de Amo GBC053 – BCC
Subconsultas ou Consultas Aninhadas
SQL – Consultas Básicas
SQL – Noções Gerais Por Márcia Jacyntha N. Rodrigues Lucena
SQL – DML Consultas envolvendo relacionamentos entre tabelas
SQL – DML Consulta a dados de uma tabela
Operadores Especiais da SQL
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
Material III-Bimestre Wagner Santos C. de Jesus
Operação de União “JOIN”
Linguagem de Banco de Dados - SQL
Linguagem de Banco de Dados - SQL
Eduardo Costa Gabriel Cypriano Rodrigo Calhau
Banco de dados Profª Kelly Medeiros.
Equipe de monitoria Aula prática 2. Apresentação do caso de estudo Conceitual Lógico Algumas informações iniciais Consultas e exercícios Surpresa... =)
Comandos de SQL Excel VBA II.
1 SQL (Structured Query Language) Linguagem padrão usada em BD relacionais –SQL1 ou SQL-86: primeira versão do padrão. –SQL2 ou SQL-92: versão usada atualmente.
Monitoria GDI Aula Prática
Monitoria GDI Aula Prática
SQL Álvaro Vinícius de Souza Coêlho
Cronograma Formato do Comando SELECT – 1ª Seção Uso de Funções (DATE_FORMAT, DAY, MONTH, NOW, CONCAT, FORMAT, COUNT, AVG, MAX, MIN e FORMAT) AS DISTINCT.
Design Patterns / Acesso ao banco de dados (java.sql)
Otimização de Consultas em SQL Planos de Execução
Capítulo 3: SQL Korth • Silberschatz • Sundarshan.
Desenvolvendo um script SQL
Treinamento sobre SQL.
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson.com.br “Está conosco o Senhor dos Exércitos”
Baseado no material do Professor Raul Paradeda
REVISÃO Comandos SQL - DML SELECT * FROM ?.
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
Treinamento SQL Server
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale 2º. Semestre 2008.
Linguagem SQL Prof. Juliano.
SQL Parte 02 Prof. Juliano. Manuseando Valores Nulos Um valor nulo é um valor indisponível e desconhecido. O valor nulo não é zero. Zero é um número.
SQL Structured Query Language Linguagem de Consulta Estruturada
©Silberschatz, Korth and Sudarshan (modificado)4.2.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
IEC Banco de Dados I Aula 04 – SQL (II) Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho
Modelo de base de dados relacional
1 Structured Query Language (SQL) 4 SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.
Subconsulta na Cláusula FROM
©Silberschatz, Korth and Sudarshan (modificado)4.2.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
Fundamentos de Banco de Dados Prof. Gale Correção da Prova
Aula 09: Comando SELECT: Ligações entre tabelas e Subconsultas
Daniel Paulo SQL Módulo I Daniel Paulo
Daniel Paulo SQL Módulo I Daniel Paulo
Recuperação de Dados Banco de Dados Carina Farias
VBA – Visual Basic para Aplicativos
UCSal – Bacharelado em Informática
Linguagem de definição de dados - SQL
SELECT Professor: Virgílio Fries Müller www. vfm.com.br
BD SQL (Insert, Update, Delete) e Select Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 –
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Capítulo 4 SQL básica.
Programação para Internet Aula 12 SQL (Comandos de Consulta ao BD)
José Antônio da Cunha 2/6/2016 José Antônio - CEFET-RN 1 Disciplina: Banco de Dados.
Prática de Banco de Dados Créditos: Prof. Jefferson Silva Adaptações: Prof. Nécio de Lima Veras.
José Antônio da Cunha 3/6/2016 José Antônio - CEFET-RN 1 Copyright © Dale Carnegie & Associates, Inc.
SQL – COMANDOS DML Profª Rosana Traversa.
Transcrição da apresentação:

Banco de Dados Aplicado ao Desenvolvimento de Software BDD

DML – Consultando dados em tabelas Estrutura Básica SELECT => PROJEÇÃO FROM => TABELA OU PRODUTO CARTESIANO DELAS WHERE => SELEÇÃO Coluna1[,Coluna2 [,...] ] (Condição(Tabela1 [X Tabela2 [X ... ] ])) SELECT Coluna1[,Coluna2 [, ... ] ] FROM Tabela1,[Tabela2 [, ... ] ] WHERE Condição

DML – Consultando dados em tabelas Estrutura Genérica SELECT [DISTINCT | ALL] { * | [Tabela.]Coluna1 [AS Alias1] [ [Tabela.]Coluna2 [AS Alias2] [, ...]]} FROM Tabela1 [, Tabela2 [, ... ] ] [WHERE {Condição Simples | Condição de Sub-consulta} ] [ORDER BY Coluna1 [ASC | DESC] [,Coluna2 [ASC | DESC] [, ... ]]] [GROUP BY Coluna1 [,Coluna2 [, ... ]] [HAVING Condição ] ] [ {UNION | IMTERSECT | EXCEPT} SELECT ... ]

DML – Consultando dados em tabelas SELECT/FROM - Projeta os dados da(s) tabela(s), de acordo com os critérios especificados. A projeção do resultado é em uma estrutura tipo tabela Basta informar o que se quer, sem se preocupar como fazer isto (SQL Não é procedural). Na cláusula SELECT, pode-se utilizar operadores aritméticos e funções de agregações, para projetar cálculos.

DML – Consultando dados em tabelas Exemplos: /* Projetar todas as informações dos autores */ SELECT CodAutor, Nome, Nascimento FROM AUTOR ; OU SELECT * /* Projetar a média dos valores dos livros */ SELECT AVG (Valor) FROM LIVRO; /*Projetar todos os livros(títulos) e seus valores com 10% de desconto*/ SELECT Titulo, Valor - (Valor * 0.1) /* Projetar a quantidade de autores cadastrados */ SELECT COUNT (*) AS QUANTIDADE, ‘ud’ AS UNIDADE FROM AUTOR;

DML – Consultando dados em tabelas Em SQL a eliminação de linhas duplicadas não é feita automaticamente, devendo a mesma ser especificada explicitamente. ALL é o padrão quando não especificado DISTINCT. Exemplos: /* Projetar todas as cidades das editoras sem duplicatas */ SELECT ALL Cidade FROM EDITORA; OU SELECT Cidade /* Projetar todas as cidades das editoras repetidamente*/ SELECT DISTINCT Cidade FROM EDITORA;

DML – Consultando dados em tabelas Uma coluna pode ser especificada pelo nome da sua tabela (Tabela.Coluna), bem como, ser renomeada durante a consulta (Coluna AS ColunaRenomeada) /* Projetar todos os nomes e respectivos nascimentos da tabela autor. NOTE: mesmo especificando Tabela.Coluna, FROM é obrigatório */ SELECT AUTOR.Nome, AUTOR.Nascimento FROM AUTOR; /* Projetar todos os títulos dos livros e seus valores em dobro */ SELECT Titulo, Valor * 2 as Dobro FROM LIVRO;

DML – Consultando dados em tabelas WHERE - Especifica quais linhas da(s) tabela(s) listada(s) na cláusula FROM são afetadas pela condição. Se esta não for especificada, a consulta retornará todas as linhas da tabela. Operadores Utilizados A condição de WHERE pode ser de três tipos: Comparação Ligação entre tabelas (Join) Sub-Consulta (Sub-Queries)

DML – Consultando dados em tabelas Comparação Expressão Operador Relacional Expressão A condição é verdadeira quando a 1a expressão atende ao operador relacional sobre a 2a expressão. /* Projetar livros publicados após 30 de maio de 1993 */ SELECT * FROM LIVRO WHERE Publicacao > ‘5/30/93’; Expressão [NOT] BETWEEN Expressão AND Expressão A condição é verdadeira quando a 1a expressão é um valor compreendido entre a 2a e 3a expressões (inclusive). /* Projetar livros com valor de 10.00 a 100.00 */ WHERE Valor BETWEEN 10.00 AND 100.00;

DML – Consultando dados em tabelas Comparação Expressão [NOT] IN (Valores) A condição é verdadeira se o valor da expressão é igual a um dos valores entre parênteses /* Projetar as Editoras com sede em São Paulo ou Rio de Janeiro*/ SELECT * FROM EITORA WHERE Cidade IN (‘São Paulo’, ‘Rio de Janeiro’);

DML – Consultando dados em tabelas Comparação Coluna [NOT] LIKE ‘Cadeia de Caracteres’ A condição é satisfeita quando o valor da coluna é igual ao valor da cadeia de caracteres. Caracteres especiais para construção da cadeia de caracteres: “%” ou “*” ® Usado para representar zero ou mais caracteres. “_” ou “?” ® Usado para representar um caractere. /*Projetar todos os autores cujo nome tenha 10 caracteres e inicie com R*/ SELECT * FROM AUTOR WHERE Titulo LIKE ‘R?????????’; /*Projetar todos os livros que tenham Banco de Dados no seu título*/ FROM LIVRO WHERE Titulo LIKE ‘%Banco de Dados%’;

DML – Consultando dados em tabelas Comparação Coluna IS [NOT] NULL A condição é satisfeita quando o valor da coluna for NULL /*Projetar todos os livros que estão sem preço definido */ SELECT * FROM LIVRO WHERE Valor IS NULL Pode-se misturas os vários tipos de comparação /*Projetar todos os livros que iniciam com R, estão com preço definido e foram publicados depois de 1/1/1995*/ WHERE Titulo LIKE ‘R%’ and Valor IS NOT NULL and Publicacao > ‘1/1/1995’

DML – Consultando dados em tabelas Ligação entre tabelas (Join) Diz-se que tabelas estão relacionadas se tiverem campos comuns (ch.primária e ch. estrangeira). O efeito do JOIN é a criação de uma tabela temporária em que cada par de linhas, que satisfação a condição de ligação, são ligados para formar uma única linha. A ligação é sempre estabelecida à frente da cláusula WHERE usando o operador relacional da igualdade (=). FROM estabelece o produto cartesiano entre as tabelas listadas WHERE filtra as linhas úteis segundo a condição especificada

DML – Consultando dados em tabelas Ligação entre tabelas (Join) – cont. Pode-se misturar as cláusulas de comparação, vistas anteriormente,juntamente com AND, OR e NOT para formar equações de ligações mais complexas Para se ligar várias tabelas, usa-se o operador lógico AND. É preciso ter muito cuidado com os JOINS, pois exigem alto custo de execução (implicam diretamente na performance).

DML – Consultando dados em tabelas Ligação entre tabelas (Join) - exemplos /* Projetar todos os livros (título) e seus autores (nome) nomeando a tabela para facilitar a digitação*/: SELECT AU.Nome, LI.Titulo FROM AUTOR AU, LIVRO LI WHERE AU.CodAutor = LI.CodAutor; /* Projetar todos os autores (nome), seus livros (título) e editoras (razão), onde a razão da editora seja Campos ou Makron */: SELECT AUTOR.Nome, LIVRO.Titulo, EDITORA.Razao FROM AUTOR, LIVRO, EDITORA WHERE AUTOR.CodAutor = LIVRO.CodAutor AND LIVRO.CodEditora = EDITORA.CodEditora AND EDITORA.Razao IN (‘Campos’, ‘Makron’);

DML – Consultando dados em tabelas Sub-Consulta (Sub-Queries) As sub-consultas podem retornar um valor simples, ou um conjunto de valores. Sub-consultas que retornam um valor simples Usadas para fazer comparação elemento-elemento WHERE expressão {= | <> | > | >= | < | <=} (Sub-Consulta) /*Projetar os livros (título) mais caros que a média*/ SELECT Titulo FROM LIVRO WHERE Valor > (SELECT AVG (Valor) FROM LIVRO) ;

DML – Consultando dados em tabelas Sub-consultas que retornam um conjunto de valores Usadas para fazer comparação elemento-conjunto Podem ser definidas através das cláusulas IN, ANY, ALL e EXISTS. WHERE expressão [NOT] IN (Sub-Consulta) Estabelece uma relação de pertinência (Î) entre elementos e conjuntos (tabelas). Sua avaliação retorna um valor booleano. /*Projetar autores (nome) que possuem livros sem valor*/ SELECT Nome FROM AUTOR WHERE CodAutor NOT IN (SELECT CodAutor FROM LIVRO WHERE Valor > 0);

DML – Consultando dados em tabelas Sub-consultas que retornam um conjunto de valores WHERE expressão { = | <> | > | >= | < | <= } ANY (Sub-consulta) Verifica se a condição é verdadeira para pelo menos um dos valores retornados pela sub-consulta Permite outras formas de comparação elemento-conjunto. = ANY ® tem mesmo efeito que IN /*Projetar autores (nome) que possuem livros sem valor*/ SELECT Nome FROM AUTOR WHERE CodAutor = ANY (SELECT CodAutor FROM LIVRO WHERE Valor = 0); /* Projetar o nome de todos os autores, exceto o do mais idoso*/ SELECT Nome FROM AUTORES WHERE Nascimento > ANY (SELECT Nascimento FROM AUTORES)

DML – Consultando dados em tabelas Sub-consultas que retornam um conjunto de valores WHERE expressão { = | <> | > | >= | < | <= } ALL (Sub-consulta) Verifica se a condição é verdadeira para todos os valores retornados pela sub-consulta. É o oposto de ANY. <> ALL ® tem mesmo efeito que NOT IN /*Projetar os livros (título) que têm valor maior que todos os livros da editora Makron */ SELECT Titulo FROM LIVRO WHERE Valor > ALL (SELECT Valor FROM LIVRO Li, Editora Ed WHERE Li.CodEditora = Ed.CodEditora AND Ed.Razao = ‘Makron’);

DML – Consultando dados em tabelas Sub-consultas que retornam um conjunto de valores WHERE expressão [NOT] EXISTE (Sub-consulta) Verifica a existência de dados numa lista de valores da subconsulta Retorna VERDADE ou FALSIDADE, conforme a sub-consulta retorne ou não linhas de resultado /*Projete todos os autores que têm livros publicados nas editoras Makron ou Campos*/ SELECT Au.Nome FROM AUTOR Au WHERE EXISTS (SELECT * FROM LIVRO Li, EDITORA Ed WHERE Li.CodAutor=Au.CodAutor AND Li.CodEditora=Ed.CodEditora AND Ed.Razao IN (‘Makron’, ‘Campos’));

DML – Consultando dados em tabelas ORDER BY - Ordenar os resultados pelos valores de uma ou mais colunas. As linhas são ordenadas pela primeira coluna após ORDER BY. Quando as linhas de uma coluna possuem valores iguais, estas serão classificadas pelo valor da segunda coluna após ORDER BY e assim por diante. Tipos de Ordenação: ASC => Ascendente DESC => Decrescente Exemplo: /* Projetar o nome e o nascimento dos autores em ordem decrescente do nascimento. Para datas iguais, considerar a ordem alfabética do nome do autor*/ SELECT Nome, Nascimento FROM AUTOR ORDER BY Nascimento DESC, Nome ASC;

DML – Consultando dados em tabelas GROUP BY - agrupa os resultados por valores idênticos. Utiliza-da com as funções de agregação, mas pode ser usada sem estas. OBS: Os campos do GROUP BY devem aparecer no SELECT! Exemplos: /* Projetar a média dos valores dos livros por editora */ SELECT EDITORA.Razao, AVG (LIVRO.Valor) FROM LIVRO, EDITORA WHERE LIVRO.CodEditora=EDITORA.CodEditora GROUP BY EDITORA.Razao ; /* Projetar todas as editoras (razão) que publicaram livros */ SELECT EDITORA.Razao GROUP BY Editora.Razao;

DML – Consultando dados em tabelas HAVING - Utilizada para filtrar o resultado dos grupos Só é atendida depois do Agrupamento ! Só existe se associada à cláusula GROUP BY (mas o oposto não) Vem depois do GROUP BY e antes do ORDER BY A condição só pode envolver os campos/funções do SELECT Exemplos: /* Projetar as editoras (código), cujo o preço médio dos livros é > 60*/ SELECT CodEditora, AGV(Valor) AS MediaValor FROM LIVRO GROUP BY CodEditora HAVING MediaValor > 60; /* Projetar os autores (nome) que publicaram mais de 3 livros*/ SELECT AUTOR.Nome, COUNT(DISTINCT LIVRO.Titulo) FROM LIVRO, AUTOR WHERE AUTOR.CodAutor = LIVRO.CodAutor GROUP BY AUTOR.Nome HAVING COUNT(DISTINCT LIVRO.Titulo) > 3;

DML – Consultando dados em tabelas Operações sobre Conjuntos Aplicáveis apenas em tabelas compatíveis UNION (È) - Faz a união, eliminando linhas repetidas. Acrescenta-se ALL para manter as linhas repetidas INTERSECT (Ç) - Retorna apenas as linhas que pertencem às duas tabelas EXCEPT (–) - Retorna apenas as linhas que pertencem à primeira tabela, com exceção das que aparecem na segunda.

DML – Consultando dados em tabelas Considere: MEDICO (CodMedico, Nome, CRM) e PACIENTE (CodPaciente, Nome); DEPOSITANTE (CPF, Nome, Agencia, Conta) e DEVEDOR (CPF, Nome, Agencia, Conta). UNION /* Projetar o nome de todas as pessoas cadastradas no hospital */ (SELECT Nome FROM MEDICO) FROM PACIENTE); /* Projetar todos os clientes da agência A1 com empréstimo ou depósito */ (SELECT * FROM DEPOSITANTE WHERE Agencia = ‘A1’) UNION ALL FROM DEVEDOR WHERE Agencia = ‘A1’);