Linguagem de Manipulação de Dados. 2 Conteúdos Introdução ao SQL Comando SELECT – Extracção de Dados  Pesquisas Simples  Restrições na pesquisa de dados.

Slides:



Advertisements
Apresentações semelhantes
Ana Paula B. Barboza Ivana Xavier Rodrigues
Advertisements

O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Banco de Dados Prof. Antonio.
SQL Avançado Continuação
SQL Structured Query Language
SQL Structured Query Language (continuação)
Evolução dos SGBD’s (2ª Parte).
SQL Structured Query Language (continuação)
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados I 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone: 9531 – 7555.
Visões Marilde Santos.
Maurício Edgar Stivanello
SGBD.
SQL – Comandos de Agregação
Algebra relacional nomeada e não-nomeada
SQL – Noções Gerais Por Márcia Jacyntha N. Rodrigues Lucena
Operadores Especiais da SQL
Introdução à Engenharia da Computação
Oficina sobre banco de dados
SCC Bancos de Dados e Suas Aplicações
Material III-Bimestre Wagner Santos C. de Jesus
Linguagem de Banco de Dados - SQL
Banco de dados Profª Kelly Medeiros.
Comandos de SQL Excel VBA II.
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.
BANCO DE DADOS UNIVERSIDADE ESTADUAL DE SANTA CRUZ
ACCESS Introdução às Tecnologias de Informação II
É um conjunto de registos dispostos numa estrutura regular que possibilita a reorganização dos mesmos e a produção de informação com a menor redundância.
Design Patterns / Acesso ao banco de dados (java.sql)
ACESSO A BASE DE DADOS.
Banco de Dados Aplicado ao Desenvolvimento de Software
INTRODUÇÃO ÁS BASES DE DADOS
sintonia de banco de dados
Desenvolvendo um script SQL
Treinamento sobre SQL.
Conceitos Programas Programação Linguagens de Programação SQL.
Linguagem de Definição de Dados
REVISÃO Comandos SQL - DML SELECT * FROM ?.
Introdução ao MS Access
©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.
SQL- Structured Query Language  SQL é uma linguagem de comandos para interagir com uma BD relacional (não é case-sensitive).  A linguagem Java permite.
Treinamento SQL Server
SQL Server Comando PIVOT.
AULA DE DÚVIDAS 9 de Abril de Especialização  Simplifica-se quando:  especialização é disjunta e  especialização é total e  não há relações.
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale 2º. Semestre 2008.
NOTA DE AULA SQL.
Linguagem SQL Prof. Juliano.
IEC Banco de Dados I Aula 04 – SQL (II) Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho
UFCD 787 Administração de base de dados 1Elsa Marisa S. Almeida.
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.
1 Introdução à Manipulação de Dados SQL – Structured Query Language  Tabela = Relação  DDL – Data Definition Language  Sub-conjunto do SQL que suporta.
Aula 09: Comando SELECT: Ligações entre tabelas e Subconsultas
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 –
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
Sistemas de Informação Geográfica suportados por Open Source Eurico Loureiro CITCEM Instituto de Ciências Sociais Universidade do Minho.
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.
Modelagem de Dados Aula 3.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
Banco de Dados para Redes– Aula 03 Prof. Me. Ronnison Reges Vidal.
BANCO DE DADOS BASE DE DADOS – É UMA COLEÇÃO DE DADOS INTER- RELACIONADOS, REPRESENTANDO INFORMAÇÕES SOBRE UM DOMÍNIO ESPECÍFICO. EX.: LISTA TELEFONICA,
Transcrição da apresentação:

Linguagem de Manipulação de Dados

2 Conteúdos Introdução ao SQL Comando SELECT – Extracção de Dados  Pesquisas Simples  Restrições na pesquisa de dados (Cláusula Where)  Ordenação  Junção de Tabelas  Funções de Agregação  Cláusulas Group By e Having  Subpesquisas  Uniões

Linguagem de Manipulação de Dados 3 Introdução ao SQL Linguagem Standard para manipulação de dados  É reconhecida por qualquer SGBD  Serve de interface entre o utilizador e o Sistema Gestor (como SQL Server, MS Access, Oracle, etc.) Os comando SQL correspondem a instruções que visam manipular ou aceder aos dados existentes na Base de Dados

Linguagem de Manipulação de Dados 4 Características da Linguagem SQL Com a linguagem SQL é possível:  Criar, Alterar e Remover tabelas, chaves, índices, views, etc;  Inserir, Alterar e Apagar dados;  Interrogar a Base de Dados (Pesquisar dados);  Controlar o acesso dos utilizadores;  Obter a garantia da consistência e integridade dos dados.

Comando SELECT A interrogação de qualquer Base de Dados Relacional faz-se sempre utilizando o comando SELECT Em seguida é apresentada a sintaxe do comando onde:  Parêntesis rectos indicam que o componente é opcional;  Chavetas indicam que o utilizador terá que escolher um dos valores colocados entre as chavetas;  Palavras maiúsculas representam as palavras reservadas. Linguagem de Manipulação de Dados 5

Comando SELECT SELECT Campo1, Campo2, …, CampoN, * FROM Tabela1, …, TabelaK [ WHERE Condição] [ GROUP BY …] [ HAVING …] [ ORDER BY …] Linguagem de Manipulação de Dados 6

Pesquisas Simples Aplicação simplificada do comando SELECT SELECT Campo1, Campo2, …, CampoN, * FROM Tabela1, …, TabelaK Em seguida são apresentados alguns exemplos de pesquisas simples. Linguagem de Manipulação de Dados 7

Pesquisas Simples Tendo em conta a seguinte tabela: Seleccione todos os registos da tabela SELECT BI, Nome FROM Empregado ou SELECT * FROM Empregado ou SELECT empregado.BI, empregado.Nome FROM Empregado Linguagem de Manipulação de Dados 8

Pesquisas Simples Para as pesquisas que se seguem vamos assumir a seguinte tabela: Linguagem de Manipulação de Dados 9

Pesquisas Simples Seleccionar todos os nomes registados (sem repetições de nomes) SELECT DISTINCT Nome FROM Empregado Renomear Colunas e Tabelas SELECT BI, Salario [AS] Ordenado FROM Empregado [AS] Emp ou SELECT Emp.BI, Emp.Salario AS Ordenado FROM Empregado Emp Linguagem de Manipulação de Dados 10

Pesquisas Simples Apresentar o ordenado real (líquido) dos empregados (Salário - Descontos) SELECT BI, Nome, Salario - Descontos AS Ordenado FROM Empregado Apresentar os empregados com o ordenado líquido superior a 500 SELECT BI, Nome, Salario-Descontos AS Ord FROM Empregado WHERE Salario - Descontos > 500 Linguagem de Manipulação de Dados 11

Cláusula WHERE Permite restringir o número de linhas a apresentar. Para se restringir o conjunto de registos é necessário enviar uma condição ao comando SELECT SELECT … FROM.. WHERE Condição Linguagem de Manipulação de Dados 12

OperadorDescrição =Igual a >Maior que <Menor que >=Maior ou Igual que <=Menor ou Igual que <>Diferente Linguagem de Manipulação de Dados 13 Operadores Relacionais OperadorExemplo ANDCond1 AND Cond2 ORCond1 OR Cond2 NOTNOT Condição Operadores Lógicos Operadores

Linguagem de Manipulação de Dados 14 OperadorDescriçãoExemplo BETWEENEntre dois valoresBETWEEN Valor1 AND Valor2 INPertencente a um conjunto de valores Campo IN (val1, val2, valN) ISTratamento de Nulos. Permite verificar se um campo está vazio. Campo IS NULL LIKEComparação de Strings. Permite fazer comparações de partes da string através de WildCards. Campo LIKE ‘T*’ AccessOutros SGBDSignificado *%Qualquer string ?_ (underscore) Um carácter qualquer Wildcards Outros operadores

Cláusula ORDER BY A resposta a uma pergunta pode ser ordenada segundo uma ou mais colunas. Para proceder à ordenação usa-se a cláusula ORDER BY seguido das colunas que queremos ordenar. Por defeito as colunas são ordenadas ascendentemente. Podemos mudar a direcção da ordenação usando as partículas ASC e DESC. Linguagem de Manipulação de Dados 15

Esta cláusula, se existir, aparece sempre no final do comando SELECT SELECT Campo1, Campo2, …, CampoN, * FROM Tabela1, …, TabelaK [WHERE Condição] [GROUP BY …] [HAVING …] [ORDER BY Campo1 [ASC|DESC], Campo2 [ASC|DESC], …] Linguagem de Manipulação de Dados 16 Cláusula ORDER BY

Pesquisas Simples Apresentar os empregados ordenados pelo salário de forma decrescente SELECT BI, Nome, Salario FROM Empregado ORDER BY Salario DESC Apresentar todos os nomes registados (sem repetições de nomes) de forma ordenada SELECT DISTINCT Nome FROM Empregado ORDER BY Nome Linguagem de Manipulação de Dados 17

Suponha as seguintes tabelas Linguagem de Manipulação de Dados 18 NumEmpNomePostoNumSeccao 1AnaProgramador10 2NunoEngenheiro70 CodSeccaoSeccao 10Fabrico 20Comercial 70Recursos Humanos Empregado = {NumEmp, Nome, Posto, NumSeccao} Seccao = {CodSeccao, Seccao} Pesquisa com Várias Tabelas

Apresente todos os empregados e nome da secção a que pertencem. SELECT * FROM Empregado, Seccao Linguagem de Manipulação de Dados 19 NumEmpNomePostoNumSeccaoCodSeccaoSeccao 1AnaProgramador10 Fabrico 2NunoEngenheiro7010Fabrico 1AnaProgramador1020Comercial 2NunoEngenheiro7020Comercial 1AnaProgramador1070Recursos Humanos 2NunoEngenheiro70 Recursos Humanos Resultado Incorrecto! Pesquisa com Várias Tabelas

O comando anterior juntou as duas tabelas efectuando o produto cartesiano.  Ou seja, associou a cada linha da tabela Empregado o conjunto das linhas da tabela Seccao.  Como a tabela Empregado contém 2 registos e a tabela Seccao contém 3 registos o resultado final foi de 2*3=6 registos. Linguagem de Manipulação de Dados 20

Ora o que se pretende é obter a informação existente nas duas tabelas, mas estas estão relacionadas através dos campos NumSeccao (tab. Empregado) e CodSeccao (tab. Seccao). Portanto interessa visualizar o registo da tabela Seccao que tem o CodSeccao igual. Isto é, em que NumSeccao=CodSeccao. Linguagem de Manipulação de Dados 21 Pesquisa com Várias Tabelas

Ou seja: SELECT * FROM Empregado, Seccao WHERE NumSeccao=CodSeccao Resultado Linguagem de Manipulação de Dados 22 NumEmpNomePostoNumSeccaoCodSeccaoSeccao 1AnaProgramador10 Fabrico 2NunoEngenheiro70 Recursos Humanos

Pesquisa com Várias Tabelas O comando: SELECT * FROM Empregado, Seccao WHERE NumSeccao = CodSeccao É equivalente a: SELECT * FROM Empregado INNER JOIN Seccao ON NumSeccao=CodSeccao Podendo ainda ser traduzido em: SELECT e.*, s.* FROM Empregado e INNER JOIN Seccao s ON e.NumSeccao=s.CodSeccao Linguagem de Manipulação de Dados 23

Como se está a pesquisar dados em tabelas que estão relacionadas entre si, é aconselhável utilizar os operadores próprios para realizar essas junções. Deste modo separam-se as selecções e as junções de uma forma clara. Uma junção normal em SQL é chamada de junção interna (INNER JOIN). Após a indicação da junção é necessário referir as colunas responsáveis pela junção (cláusula ON). Linguagem de Manipulação de Dados 24 Junções de Tabelas (JOIN)

Existem várias variantes do JOIN:  INNER JOIN - apenas aparecem os que fazem match;  LEFT JOIN – além dos registos que fazem match, os registos da tabela esquerda que não existam na direita também aparecem.  RIGHT JOIN – além dos registos que fazem match, aparecem todos os restantes registos da tabela direita que não existam na esquerda. No LEFT JOIN e RIGHT JOIN (Outer Joins) quando o registo não existe numa das tabelas (não existe match) os valores aparecem a NULL. Linguagem de Manipulação de Dados 25 Junções de Tabelas (JOIN)

Sintaxe do JOIN Tabela1 JUNÇÃO Tabela2 CLÁUSULA Traduzindo para SQL Tabela1 [INNER|LEFT|RIGHT] JOIN Tabela2 ON Tabela1.Campo=Tabela2.Campo Linguagem de Manipulação de Dados 26

Referências DAMAS, Luís: SQL, FCA Linguagem de Manipulação de Dados 27