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

Download ""

Transcrição

1 SQL Maria Cláudia Yoko Cavalcanti Instituto Militar de Engenharia IME SQL Introdução 1

2 SQL Structured Query Language Linguagem de fato de acesso a BDs relacionais 1970: E. Codd/IBM propõe o Modelo Relacional 1981: Primeiro produto comercial SQL/DS 1987: ANSI SQL é aceito como padrão ISO 1992: SQL2 - novos tipos e comandos, restrições de integridade SQL:1999 ou SQL3 LOBs, triggers, OO,... SQL:2003 table functions, sequenciais, merge,... SQL/XML:2003 mapeamento, schema,... SQL ANSI SQL SGBD SQL Vários produtos com diferentes sabores de SQL Acesso direto às bases de dados para consulta, atualização e definição de dados Outras formas de se usar SQL Consulta: comando SELECT Atualização: comandos UPDATE, INSERT, DELETE Definição de dados: comandos CREATE, ALTER, DROP 2

3 Links interessantes BNF Grammars for SQL-92, SQL- 99 and SQL Modelo Relacional Um banco de dados relacional contém um ou mais objetos chamados tabelas. As informações estão armazenadas nestas tabelas. As linhas contém dados e são conhecidas como tuplas. A tabela abaixo contém informações sobre a temperatura das cidades. city state high low Phoenix Arizona Tucson Arizona Flagstaff Arizona San Diego California Albuquerque New Mexico

4 4 Base de Dados Empresa EMPREGADO DEPARTAMENTO DEPTO_LOCAL PROJETO TRABALHA_EM DEPENDENTE Depto MatrículaGerente SuperMat Depto MatrículaEmp PCódigo MatrículaEmp A tabela Empregado Nome Maria João Abel Carlos Edson Flávio Gilda Hilton Irene José Kátia Noel Otto Snome Silva Goya Flores Gardel Celui Altolá Gomes Silva Santos Souza Moura Reis Bastos Matrícula DataNasc 13/07/55 23/12/65 31/10/73 11/09/72 21/02/44 30/09/56 01/08/66 15/05/64 16/04/63 25/05/59 22/03/60 03/01/61 01/11/62 Endereço Sexo F M M M M M F M F M F M M Salário SuperVisor NULL Depto DG DG DG DES PROD PROD PROD DES DES DES PROD DES DES EMPREGADO

5 O comando SELECT SELECT [ALL DISTINCT] lista-de-seleção FROM tabela [,tabela]... [WHERE condição ] [GROUP BY atributo(s)] [HAVING condição] [ORDER BY atributo(s)] Tipos de dados do SQL Integer: int, smallint, tinyint Float: float, double, real Char: char(), varchar() Date, Time Money Binary 5

6 Exemplos de uso do Select 1. Recuperação simples de tabelas SELECT NOME, DATANASC Nome Maria João Abel Carlos Edson Flávio Gilda Hilton Irene José Kátia Noel Otto DataNasc 13/07/55 23/12/65 31/10/73 11/09/72 21/02/44 30/09/56 01/08/66 15/05/64 16/04/63 25/05/59 22/03/60 03/01/61 01/11/62 Exemplos de uso do Select 2. Listar todos os atributos para tuplas obedecendo a uma determinada condição SELECT * WHERE SEXO = 'F Nome Snome Matrícula DataNasc Endereço Sexo Salário SuperVisor Depto Maria Gilda Irene Kátia Silva Gomes Santos Moura /07/55 01/08/66 16/04/63 22/03/60 F F F F NULL DG PROD DES PROD 6

7 Exemplos de uso do Select 3. Recuperação com a eliminação de tuplas duplicadas SELECT DISTINCT SALÁRIO 4. Recuperação com valores computados de colunas Salário SELECT DISTINCT SALARIO, SALARIO * 1,10 AS Novo Salário Salário Novo Salário Exemplos de uso do Select 5. Ordenando o resultado de uma consulta SELECT NOME,SALARIO ORDER BY NOME Nome Abel Carlos Edson Flávio Gilda Hilton Irene João José Kátia Maria Noel Otto Salário

8 Exemplos de uso do Select Matrícula 6. Recuperação com condições envolvendo conjuntos e intervalos: Usando IN: SELECT DISTINCT MATRICULA WHERE SUPERVISOR IN (001,003) Nome Salário Usando BETWEEN: SELECT NOME, SALARIO WHERE SALARIO BETWEEN 1000 AND Maria João Abel Carlos Flávio Gilda José Noel Otto Exemplos de uso do Select 7. Recuperação por aproximação usando LIKE: "_" - uma ocorrência de qualquer caractere, "%" - nenhuma ou várias ocorrências de quaisquer caracteres. SELECT NOME WHERE NOME LIKE J%' Nome João José 8. Usando NULL em comparações: SELECT NOME WHERE SUPERVISOR IS NULL Nome Maria 8

9 Selecionando tuplas 9. Usando a cláusula CASE Sintaxe: SELECT colunas, CASE WHEN condição THEN ação... [ELSE ação] END FROM tabela; Exemplo simulando aumentos salariais; SELECT nomeemp, salario, CASE WHEN supervisor = 001 THEN salario *.4 WHEN supervisor = 002 THEN salario *.3 ELSE salario *.1 END novo_salario FROM empregado; Selecionando tuplas 10. Usando a cláusula CASE abreviada Sintaxe: SELECT colunas, CASE coluna valor THEN ação... [ELSE ação] END FROM tabela; Exemplo simulando aumentos salariais; SELECT nomeemp, salario, CASE supervisor WHEN 001 THEN salario *.4 WHEN 002 THEN salario *.3 ELSE salario *.1 END FROM empregado; 9

10 Tabelas S, P e SP S (suppliers) S# SNAME STATUS CITY S1 Smith 20 London S2 Jones 10 Paris S3 Blake 30 Paris S4 Clark 20 London S5 Adams 30 Athens P (parts) P# PNAME COLOR WEIGHT CITY P1 Nut Red 12 London P2 Bolt Green 17 Paris P3 Screw Blue 17 Rome P4 Screw Red 14 London P5 Cam Blue 12 Paris P6 Cog Red 19 London SP (fornecimento) S# P# QTY S1 P1 300 S1 P2 200 S1 P3 400 S1 P4 200 S1 P5 100 S1 P6 100 S2 P1 300 S2 P2 400 S3 P2 200 S4 P2 200 S4 P4 300 S4 P5 400 SQL Funções de Agregação 10

11 Exemplos de uso do Select 9. Uso de funções de agregação: SELECT AVG(SALARIO) SELECT MAX(SALARIO) SELECT MIN(SALARIO) SELECT SUM(SALARIO) SELECT COUNT(*) AVG(SALARIO) MAX(SALARIO) 3000 MIN(SALARIO) 1000 SUM(SALARIO) COUNT(*) 13 Outras funções Desvio padrão e variância STDDEV SELECT STDDEV(salario) FROM empregado; VARIANCE SELECT VARIANCE(salario) FROM empregado; Conversão de tipos CAST (coluna AS novo_tipo_de_dado) nome_coluna SELECT CAST(AVG(salario) AS DECIMAL (10,2)) média_salarial FROM empregado; 11

12 Outras funções Não estão no padrão SQL Numéricas POWER, POSITION, LENGHT Alfanuméricas UPPER, LOWER, TRIM, SUBSTRING, CONVERT, REPLACE Manipulação de datas YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, EXTRACT Função COALESCE Está no padrao SQL, mas usada dentro da cláusula CASE Sintaxe FORA DO PADRÃO: SELECT colunas, COALESCE(coluna_teste, coluna_subst) supervisão FROM tabela; Exemplo SELECT matricula, nomeemp, COALESCE(supervisor, matricula) supervisão FROM empregado; Matricula nome supervisão 001 Maria João

13 Exemplos de uso do Select 10. Agrupando o resultado: SELECT DEPTO, AVG(SALARIO) GROUP BY DEPTO SELECT SUPERVISOR, COUNT(*) GROUP BY SUPERVISOR SELECT SEXO, SUM(SALARIO) GROUP BY SEXO Depto DG 1333 PROD 2250 DES 2167 Supervisor Sexo F 9000 M AVG(Salario) COUNT(*) SUM(Salario) Exemplos de uso do Select 10. Agrupando o resultado: SELECT DEPTO, AVG(SALARIO) GROUP BY DEPTO HAVING AVG(SALARIO) > SELECT SUPERVISOR, COUNT(*) GROUP BY SUPERVISOR HAVING COUNT(*) > 3 SELECT SEXO, SUM(SALARIO) GROUP BY SEXO HAVING SUM(SALARIO)!= 0 Depto PROD 2250 DES 2167 Supervisor Sexo F 9000 M AVG(Salario) COUNT(*) SUM(Salario) 13

14 Valor Nulo O dado pode ser obrigatório (NOT NULL) ou de preenchimento opcional (NULL) Indica um dado não preenchido, de valor ignorado, ou um campo que não tem valor naquele registro. Não participa nas computações. média (2,4,0 ) = 2 ( 6 / 3 ) média (2,4,NULL) = 3 ( 6 / 2 ) Valor Nulo 11. Observando os valores nulos SELECT COUNT(*) AS Total de empregados, COUNT(SUPERVISOR) AS Total de empregados supervisionados Total de Empregados Total de Empregados Supervisionados 14

15 Observações Função_de_agregação( [DISTINCT] expressão) SELECT AVG( DISTINCT SALARIO) Sumariar em mais de um nível NÃO é possível SELECT Depto, Avg(Salario), Supervisor, COUNT(Nome) GROUP BY Depto, Supervisor Group by pode ser usado sem Funções de Agregação Funciona como se fosse um DISTINCT Observações Group by NÃO necessariamente ordena, para garantir recomenda-se o uso da cláusula ORDER BY É possível ordenar pela função de agregação SELECT Depto, avg(salario), count(*) GROUP BY Depto ORDER BY avg(salario) 15

16 Having X Where WHERE seleciona as tuplas antes da agregação HAVING seleciona as tuplas depois da agregação SELECT Supervisor, COUNT(*) WHERE Salario > GROUP BY Supervisor SELECT Supervisor, COUNT(*) GROUP BY Supervisor HAVING Salario > Supervisor Supervisor COUNT(*) COUNT(*) SQL Junção União Subconsultas 16

17 Junções Em várias consultas será necessário correlacionar os dados de várias tabelas. Por exemplo: Qual o nome do depto de cada empregado? Liste os nomes dos empregados de um projeto? Qual o nome dos gerentes de cada departamento? Tabelas do BD Empresa EMPREGADO Nome SNome Matrícula DataNasc Endereço Sexo Salário SuperMat Depto DEPARTAMENTO DeptoNome DeptoSigla MatrículaGerente PROJETO PNome PCódigo PLocalização Depto TRABALHA_EM MatrículaEmp PCódigo Horas 17

18 18 A tabela Empregado Nome Maria João Abel Carlos Edson Flávio Gilda Hilton Irene José Kátia Noel Otto Snome Silva Goya Flores Gardel Celui Altolá Gomes Silva Santos Souza Moura Reis Bastos Matrícula DataNasc 13/07/55 23/12/65 31/10/73 11/09/72 21/02/44 30/09/56 01/08/66 15/05/64 16/04/63 25/05/59 22/03/60 03/01/61 01/11/62 Endereço Sexo F M M M M M F M F M F M M Salário SuperVisor NULL Depto DG DG DG DES PROD PROD PROD DES DES DES PROD DES DES EMPREGADO Outras tabelas do BD Empresa DeptoNome Direção Geral Produção Desenvolvimento Gerente DeptoSigla DG PROD DES DEPARTAMENTO PNome Tamar Jubarte Pantanal PLocalização Itaúnas Abrolhos Bonito PCódigo T1 J2 P3 PROJETO Depto PROD PROD DES MatrículaEmp PCódigo P3 T1 T1 J2 P3 P3 P3 J2 P3 P3 T1 T1 J2 J2 TRABALHA_EM Horas

19 Multiplicação - Produto Cartesiano C1 C AA 11 BB 22 C3 C ** 22 ## C1 C2 C3 C AA ** AA ## BB ** BB ## Junção C1 C AA 11 BB 22 C3 C ** 22 ## C2 = C3 C1 C2 C3 C AA ** BB ## 19

20 Em SQL Multiplicação: SELECT * FROM DEPARTAMENTO, PROJETO Junção: SELECT * FROM DEPARTAMENTO, PROJETO WHERE PROJETO.Depto = DEPARTAMENTO.DeptoSigla Usando apelidos para as tabelas: SELECT * FROM DEPARTAMENTO d, PROJETO p WHERE p.depto = d.deptosigla Selecionando somente as colunas que interessam: SELECT d.deptonome, p.pnome FROM DEPARTAMENTO d, PROJETO p WHERE p.depto = d.deptosigla Em SQL Selecionando somente as colunas e tuplas que interessam: Exemplo: Liste o nome do departamento e dos projetos que se localizam em Abrolhos SELECT d.deptonome, p.pnome FROM DEPARTAMENTO d, PROJETO p WHERE p.depto = d.deptosigla AND p.localização = Abrolhos deptonome pnome Produção Jubarte 20

21 Tipos de Junção Equijoin: junção baseada na igualdade Self join: junção da tabela com ela mesma Exemplo: Liste os empregados, dois a dois, que possuem o mesmo sobrenome (prováveis parentes) SELECT e1.nome, e2.nome FROM empregado e1, empregado e2 WHERE e1.snome = e2.snome e1.nome e2.nome Maria Maria Maria Hilton Hilton Maria Hilton Hilton Como fazer para evitar as combinações de tuplas iguais? Tipos de Junção Equijoin: junção baseada na igualdade Self join: junção da tabela com ela mesma Exemplo: Liste os empregados, dois a dois, que possuem o mesmo sobrenome (prováveis parentes) SELECT e1.nome, e2.nome FROM empregado e1, empregado e2 WHERE e1.snome = e2.snome AND e1.matricula!= e2.matricula e1.nome e2.nome Maria Hilton Hilton Maria Como fazer para evitar as duplicatas? 21

22 Tipos de Junção Equijoin: junção baseada na igualdade Self join: junção da tabela com ela mesma Exemplo: Liste os empregados, dois a dois, que possuem o mesmo sobrenome (prováveis parentes) SELECT e1.nome, e2.nome FROM empregado e1, empregado e2 WHERE e1.snome = e2.snome AND e1.matricula < e2.matricula e1.nome e2.nome Maria Hilton Tipos de Junção Outer Join mostra tuplas que NÃO satisfazem à condição de junção, além das tuplas que satisfazem útil para ver os resultados em contraste com as tuplas que falham muitos fornecedores de SGBD implementaram esta funcionalidade antes do padrão SQL92 sintaxe varia, alguns usam na cláusula WHERE *= inclui todas as tuplas da primeira tabela (left) =* inclui todas as tuplas da segunda tabela (right) 22

23 Tipos de Junção Exemplo Liste todos os Departamentos e seus projetos, mesmo que o Departamento não possua projeto SELECT d.deptonome, p.pnome FROM departamento d, projeto p WHERE d.depto *= p.depto DeptoNome Pnome Direção Geral NULL Produção Tamar Produção Jubarte Desenvolvimento Pantanal Tipos de Junção Sintaxe da Junção Externa... FROM tabela1 [LEFT RIGHT FULL] OUTER JOIN tabela 2 ON condição Ex. SELECT d.deptonome, p.pnome FROM departamento d LEFT OUTER JOIN projeto p ON d.deptosigla = p.depto;... FROM tabela1 [LEFT RIGHT FULL] OUTER JOIN tabela 2 USING (atributo1, atributo2) SELECT d.deptonome, p.pnome FROM departamento d LEFT OUTER JOIN projeto p USING (d.deptosigla, p.depto); 23

24 Junção com 3 Tabelas Listar empregados e os projetos em que trabalham 20 horas. SELECT e. Nome, e.snome, p.pnome e, PROJETO p, TRABALHA_EM t WHERE e.matricula = t.matriculaemp AND t.pcódigo = p.pcódigo AND t.horas= 20; Subconsultas Sintaxe Simplificada SELECT [DISTINCT] lista_select FROM lista_tabelas WHERE {expressão {[NOT] IN operador_comparação [ALL ANY]} [NOT] EXISTS } (SELECT [DISTINCT] lista_subselect FROM lista_tabelas WHERE condições) [GROUP BY lista_groupby] [HAVING condições] [ORDER BY lista_orderby] 24

25 Subconsultas As subconsultas podem ser ou não correlacionadas Não correlacionada: de dentro para fora: a consulta externa baseia-se em valores obtidos pela consulta interna a consulta interna é resolvida primeiro Correlacionada: de fora para dentro: a consulta externa provê valores para que a consulta interna possa ser resolvida para cada tupla resolvida na consulta externa, resolvese a consulta interna Subconsultas SELECT nome, snome FROM empregado WHERE matricula IN (SELECT matriculaemp FROM trabalha_em WHERE horas = 40) Correlacionada A consulta interna é dependente Não Correlacionada A consulta interna é independente SELECT nome, snome FROM empregado e WHERE 40 IN (SELECT horas FROM trabalha_em t WHERE t.matriculaemp = e.matricula ) 25

26 Subconsultas X Junções Subconsultas são apropriadas para consultas que envolvem comparação com agregações SELECT max(salario) FROM empregados SELECT nome,snome FROM empregados WHERE salario = 3000 SELECT nome,snome Hilton Irene FROM empregados Katia WHERE salario = (SELECT max(salario)from empregados) Max(salario) Nome Snome Edson Celui Silva Santos Moura Subconsultas X Junções Junções são mais adequadas para resultados que envolvem campos das várias tabelas usadas Exemplo: Liste o nome do projeto e a matrícula dos empregados que trabalham em projetos de 40 horas. SELECT p.pnome, t.matriculaemp FROM projetos p WHERE p.pcodigo IN (SELECT t.pcodigo FROM trabalha_em t WHERE t.horas = 40) SELECT p.pnome, t.matriculaemp FROM projetos p, trabalha_em t WHERE p.pcodigo = t.pcodigo and p.horas = 40 26

27 Subconsultas Tipos Tabela: retornam Zero ou mais itens operador IN ou operador de comparação modificado por ANY/ALL Escalar: retornam um único valor operador de comparação não modificado Booleana: retornam V (verdadeiro) ou F (falso) operador EXISTS Subconsultas - [NOT] IN Liste o nome dos empregados que trabalham em projetos com CH =40 horas SELECT e.nome FROM empregados e WHERE e.matricula IN (SELECT t.matriculaemp FROM trabalha_em t WHERE t.horas = 40) 27

28 Subconsultas - [NOT] IN Liste o nome dos empregados que Não trabalham em projetos com CH de 40 horas SELECT e.nome FROM empregados e WHERE e.matricula NOT IN (SELECT t.matriculaemp FROM trabalha_em t WHERE t.horas = 40) Subconsultas - [NOT] IN Relacionar tabelas com elas mesmas pode ser feito de duas maneiras: self-join ou subconsulta Exemplo: Liste os empregados que possuem o mesmo sobrenome que Maria SELECT e1.nome FROM empregado e1, empregado e2 WHERE e1.snome = e2.snome AND e2.nome = Maria AND e2.matricula!= e1.matricula SELECT e1.nome FROM empregado e1 WHERE e1.snome IN (SELECT e2.snome FROM empregado e2 WHERE e2.nome = Maria AND e2.matricula!= e1.matricula) 28

29 Subconsultas - operador único Subconsultas na cláusula HAVING Exemplo: Encontre os departamentos (e liste o total de empregados por departamento) cujos empregados ganham em média mais que a média salarial geral de todos os empregados SELECT depto, count(*) FROM empregado GROUP BY depto HAVING avg(salario) > (SELECT avg(salario) FROM empregado) Subconsultas - operador único Subconsultas correlacionadas Exemplo: Encontre os empregados que ganham mais que a média salarial de seu próprio departamento SELECT nome FROM empregado e1 WHERE e1.salario > (SELECT avg(e2.salario) FROM empregado e2 WHERE e2.depto = e1.depto) 29

30 Subconsultas - op [ANY ALL] a > ALL (subconsulta) verdadeiro se a for maior que TODOS os elementos do resultado a > ANY (subconsulta ou consulta) verdadeiro se a for maior que ALGUM dos elementos do resultado ou conjunto (em outras palavras, maior que o mínimo) Pode-se usar >, >=, <, <=, = ou!= Subconsultas - op [ANY ALL] Selecionar os empregados que ganham maiores salários que os do departamento de Produção SELECT Nome FROM empregado WHERE Salario > ALL (SELECT Salario FROM empregado WHERE depto = PROD ) Selecionar os empregados que não ganham salário mínimo (que ganham acima do menor salário) SELECT Nome FROM empregado WHERE Salario > ANY (SELECT Salario FROM empregado) Obs: Quando algum dos valores da subconsulta é NULL o resultado pode não ser apresentado 30

31 Subconsultas - EXISTS Teste de existência Liste todos os empregados que trabalham no projeto T. SELECT nome FROM empregado e WHERE EXISTS (SELECT * FROM trabalha_em WHERE matriculaemp = e.matricula AND pcodigo = T ) Subconsultas - EXISTS Teste de inexistência Liste todos os empregados que não trabalham no projeto T. SELECT nome FROM empregado e WHERE NOT EXISTS (SELECT * FROM trabalha_em WHERE matriculaemp = e.matricula AND pcodigo = T ) 31

32 Subconsultas - EXISTS Interseção Liste os empregados cujos departamentos possuem Projetos SELECT nome FROM empregados e WHERE EXISTS (SELECT * FROM projetos p WHERE e.depto = p.depto) Subconsultas - EXISTS Diferença Liste os empregados cujos departamentos não possuem Projetos SELECT nome FROM empregados e WHERE NOT EXISTS (SELECT * FROM projetos p WHERE e.depto = p.depto) 32

33 Subconsultas - EXISTS Divisão Liste os empregados que trabalham em todos os projetos SELECT nome FROM empregado e WHERE NOT EXISTS (SELECT * FROM projetos p WHERE NOT EXISTS (SELECT * FROM trabalha_em t WHERE e.matricula = t.matriculaemp and p.codigo = t.pcodigo)) Subconsultas - observações Exemplo: liste os empregados que ganham salário máximo dentro de seu departamento. SELECT e1.nome FROM empregado e1 WHERE e1.salario = (SELECT max(e2.salario) FROM empregado e2 WHERE e2.depto = e1.depto) SELECT e1.nome FROM empregado e1 WHERE NOT EXISTS (SELECT * FROM empregado e2 WHERE e2.depto = e1.depto AND e1.salario < e2.salario) As implementações variam, mas a solução usando not exists deveria ser mais rápida. 33

34 Subconsultas - observações Não se deve ordenar o resultado de uma subconsulta SELECT nome, snome FROM empregado WHERE matricula IN (SELECT matriculaemp FROM trabalha_em WHERE horas = 40 ORDER BY matricula) Subconsultas - observações Subconsultas em outras cláusulas (SQL2003) SELECT col1, col2,..., (subcons escalar) FROM tab1,... (subcons tabela) WHERE operando = (subcons escalar) OR operando IN (subcons tabela) OR operando > [ALL ANY] (subcons tabela) Evita-se usar, pois nem todas as implementações oferecem 34

35 Subconsultas observações Sumariar em mais de um nível torna-se possível quando são usadas subconsultas na cláusula FROM SELECT e1.depto, e2.mediasal, e1.supervisor, COUNT(e1.Nome) e1, (SELECT Depto, Avg(Salario) as mediasal FROM EMPREGADO GROUP BY Depto) e2 WHERE e1.depto = e2.depto GROUP BY e1.depto, e2.mediasal, e1.supervisor Subconsultas - observações Subconsultas com múltiplas colunas Nem todos os SGBDs implementam Técnicas: Concatenar SELECT pcodigo, matriculaemp FROM trabalha_em WHERE pcodigo horas IN (SELECT pcodigo MAX(horas) FROM trabalha_em GROUP BY pcodigo); Formar um par entre parênteses SELECT pcodigo, matriculaemp FROM trabalha_em WHERE (pcodigo, horas) IN (SELECT pcodigo, MAX(horas) FROM trabalha_em GROUP BY pcodigo); 35

36 União Podemos unir o resultado de várias consultas, desde que os tipos dos resultados sejam os mesmos Departamentos gerenciados por mulheres e departamentos que atuam em projetos localizados no Espírito Santo SELECT NOME_DEP FROM DEPARTAMENTO D, EMPREGADO E WHERE D.GERENTE = E.#EMP AND E.SEXO = 'F' UNION SELECT NOME_DEP FROM DEPARTAMENTO D, PROJETO P, WHERE D.NOME_DEP = P.NOME_DEP AND P.PLocalizacao LIKE *,ES* União É possível manter todas as tuplas, mesmo as duplicatas no resultado Evita a sobrecarga do SGBD para remover as duplicatas UNION ALL 36

37 Interseção Sintaxe <comando select> INTERSECT [corresponding [BY (col1, col2,...)] ] <comando select> Corresponding: considera somente colunas de mesmo nome, By: considera somente as colunas listadas Exemplo: Liste os departamentos envolvidos em Projetos SELECT depto FROM empregados INTERSECT SELECT depto FROM projetos Diferença Sintaxe <comando select> EXCEPT [corresponding [BY (col1, col2,...)] ] <comando select> Corresponding: considera somente colunas de mesmo nome, By: considera somente as colunas listadas Pressupõe coincidência de nomes Exemplo: Liste os departamentos NÃO envolvidos em Projetos SELECT depto FROM empregados EXCEPT SELECT depto FROM projetos 37

38 SQL Comandos de atualização Incluindo tuplas Sintaxe INSERT INTO tabela (atributo [,atributo]...) VALUES (constante [,constante]...) ; Exemplos: 1. Adicionando tuplas completas A ordem dos atributos deve ser obedecida: Pcódigo, Pnome, Plocalização, Depto INSERT INTO PROJETO VALUES (4, ECOBASE, NULL, DES ); 38

39 Incluindo tuplas Os atributos podem ser omitidos desde que permitam nulos ou, caso contrário, apresentem valores default definidos previamente Exemplos: 2. Adicionando tuplas com atributos anuláveis INSERT INTO PROJETO (Pnome, Pcódigo, Depto) VALUES ( ECOBASE, 4, DES ); 3. Adicionando tuplas com atributos não anuláveis mas com valores default associados (Depto char(5) not null default DES ) INSERT INTO PROJETO (Pcódigo, Pnome) VALUES ( 4, ECOBASE );... Tupla inserida: 4, ECOBASE, null, DES ) Incluindo várias tuplas INSERT INTO tabela (atributo [,atributo]...) operação-select ; Exemplos: 4. Inserindo várias tuplas INSERT INTO PROJINFO (Depto, totprojetos) SELECT Depto, count(*) FROM PROJETO GROUP BY Depto; O que acontece com PROJINFO se PROJETO for atualizada? 39

40 Alterando tuplas UPDATE tabela SET atributo = expressão [, atributo=expressão]... [WHERE condição] ; Exemplos: UPDATE EMPREGADO SET salário = 1,1 * salário; UPDATE PROJETO SET LOCALIZACAO = 'BARRA', WHERE PCODIGO= 12; UPDATE EMPREGADO SET SALARIO = SALARIO * 1.1 WHERE NOME_DEP IN (SELECT NOME_DEP FROM DEPARTAMENTO WHERE NOME_DIR = 'SUPORTE') ; Atualizando tuplas Usando a cláusula CASE Sintaxe UPDATE tabela SET coluna = CASE WHEN condição THEN ação... [ELSE ação] END; Exemplo realizando aumentos salariais; UPDATE empregado SET salario = CASE WHEN supervisor = 001 THEN salario *.4 WHEN supervisor = 002 THEN salario *.3 ELSE salario *.1 END; 40

41 Removendo tuplas DELETE FROM tabela [WHERE condição] ; Exemplos: DELETE FROM Empregado; DELETE FROM PROJTEMP WHERE Pcódigo IN (SELECT Pcódigo FROM Projeto); Atenção! Sem a cláusula where, remove todas as tuplas! 41

SQL SQL. SQL Structured Query Language. Introdução

SQL SQL. SQL Structured Query Language. Introdução SQL ernanda Baião UNIRIO aterial parcialmente extraído a partir das notas de aula de aria Luiza. Campos, Arnaldo Rocha e aria Cláudia Cavalcanti SQL Introdução SQL Structured Query Language Linguagem de

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 é 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

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

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

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

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 DDL Criando Tabelas e Restrições Instituto Militar de Engenharia IME Material extraido parcialmente de notas de aula de Maria Luiza Campos e Arnaldo Vieira Comandos de Definição de Dados Aplicação

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

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

Á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

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

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

Introdução ao SQL. Aécio Costa

Introdução ao SQL. Aécio Costa Aécio Costa A linguagem SQL é um padrão de linguagem de consulta comercial e possui as seguintes partes: Linguagem de definição de dados (DDL) Linguagem interativa de manipulação de dados (DML) Definição

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

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

Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. (http://bidu.lab.ic.unicamp.br/~celio/metasql.php)

Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. Exemplo Clínica. (http://bidu.lab.ic.unicamp.br/~celio/metasql.php) Clínica Todos os exemplos apresentados utilizam o SGBD Postgre - open source Documentação: http://www.postgresql.org/docs (http://bidu.lab.ic.unicamp.br/~celio/metasql.php) Ambulatorios(numero, andar,

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

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

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

2008.1. A linguagem SQL

2008.1. A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

Linguagem SQL Parte I

Linguagem SQL Parte I FIB - Centro Universitário da Bahia Banco de Dados Linguagem SQL Parte I Francisco Rodrigues Santos chicowebmail@yahoo.com.br Slides gentilmente cedidos por André Vinicius R. P. Nascimento Conteúdo A Linguagem

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

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

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

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

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

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

2008.1 SQL. Autor: Renata Viegas

2008.1 SQL. Autor: Renata Viegas SQL Autor: Renata Viegas A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua

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

Banco de Dados I SQL DDL. Frederico D. Bortoloti freddb@ltc.ufes.br

Banco de Dados I SQL DDL. Frederico D. Bortoloti freddb@ltc.ufes.br Banco de Dados I SQL DDL Frederico D. Bortoloti freddb@ltc.ufes.br Introdução Modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de padrão SQL (Structured Query Language)

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

SQL DDL Criando Tabelas e Restrições

SQL DDL Criando Tabelas e Restrições SQL DDL Criando Tabelas e Restrições Fernanda Baião UNIRIO Material parcialmente extraído a partir das notas de aula de Maria Luiza M. Campos, Arnaldo Rocha e Maria Cláudia Cavalcanti Comandos de Definição

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

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 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

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

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados Banco 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

Leia mais

Memória de aula Semanas 15 e 16

Memória de aula Semanas 15 e 16 FMU Curso: Ciência da Computação Disciplina: Banco de Dados I Professor: Ecivaldo Matos Memória de aula Semanas 15 e 16 1) Incluindo linhas nas tabelas a. Para incluir linhas em tabelas utilize o comando

Leia mais

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

Linguagem SQL (Parte I)

Linguagem SQL (Parte I) Universidade Federal de Sergipe Departamento de Sistemas de Informação Itatech Group Jr Softwares Itabaiana Site: www.itatechjr.com.br E-mail: contato@itatechjr.com.br Linguagem SQL (Parte I) Introdução

Leia mais

SQL BANCO DE DADOS. Linguagem de consulta SQL. Linguagem de consulta SQL. Linguagem de Consulta Estruturada

SQL BANCO DE DADOS. Linguagem de consulta SQL. Linguagem de consulta SQL. Linguagem de Consulta Estruturada Revisão de tpicos anteriores BANCO DE DADOS Linguagem de consulta SQL Roberto Duarte Fontes Brasília - DF roberto@fontes.pro.br Projeto de banco de dados Modelagem Conceitual (independe da implementação)

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

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

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

Banco de Dados SQL. João Eduardo Ferreira Osvaldo Kotaro Takai

Banco de Dados SQL. João Eduardo Ferreira Osvaldo Kotaro Takai Banco de Dados SQL João Eduardo Ferreira Osvaldo Kotaro Takai Introdução SQL - Structured Query Language Linguagem declarativa não-procedimental Desenvolvida e implementada pelo laboratório de pesquisa

Leia mais

Aplicações - SQL. Banco de Dados: Teoria e Prática. André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013

Aplicações - SQL. Banco de Dados: Teoria e Prática. André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013 Aplicações - SQL Banco de Dados: Teoria e Prática André Santanchè e Luiz Celso Gomes Jr Instituto de Computação UNICAMP Agosto de 2013 Picture by Steve Kelley 2008 SQL SQL Structured Query Language Originalmente:

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

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Introdução à Engenharia da Computação. Banco de Dados Professor Machado Introdução à Engenharia da Computação Banco de Dados Professor Machado 1 Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens:

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

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

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional Modelo de Dados Relacional e as Restrições de um Banco de Dados Relacional Modelo de Dados Relacional Conceitos do Modelo Relacional Representa o banco de dados como uma coleção de relações. Comparação

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

Introdução. Categorias

Introdução. Categorias Linguagem SQL Introdução SQL (Structured Query Language): desenvolvida pela IBM (70) como parte do sistema System R. A SQL foi inicialmente chamada de SEQUEL É a linguagem de consulta padrão para os SGBDR's

Leia mais

Linguagem SQL. Comandos Básicos

Linguagem SQL. Comandos Básicos Linguagem SQL Comandos Básicos Caetano Traina Júnior Grupo de Bases de Dados e Imagens Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos caetano@icmc.sc.usp.br Comando

Leia mais

Pedro F. Carvalho OCP Oracle 2008.2 10g LINGUAGEM SQL. www.pedrofcarvalho.com.br contato@pedrofcarvalho.com.br São José do Rio Preto

Pedro F. Carvalho OCP Oracle 2008.2 10g LINGUAGEM SQL. www.pedrofcarvalho.com.br contato@pedrofcarvalho.com.br São José do Rio Preto Pedro F. Carvalho OCP Oracle 2008.2 10g LINGUAGEM SQL Objetivos Revisando a sintaxe SQL SELECT, UPDATE, INSERT, DELETE Manipulando expressões Funções matemáticas, etc Condições de Pesquisa Funções de Agregação

Leia mais

2008.2. SQL Avançado Continuação. Renata Viegas

2008.2. SQL Avançado Continuação. Renata Viegas SQL Avançado Continuação Renata Viegas Cláusula COMPUTE Sintaxe: SELECT FROM ORDER BY COMPUTE BY Para que serve? Gerar totalizadores

Leia mais

BANCO DE DADOS Parte 4

BANCO DE DADOS Parte 4 BANCO DE DADOS Parte 4 A Linguagem SQL Introdução Desenvolvida pelo depto de pesquisa da IBM na década de 1970 (System R) Linguagem padrão de BD Relacionais; Apresenta várias padrões evolutivos: SQL86,

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

SQL. Introdução. Por que SQL? Setenças Select-From-Where

SQL. Introdução. Por que SQL? Setenças Select-From-Where Introdução SQL Bancos de Dados I Altigran Soares da Silva IComp/UFAM 2013/02 Adaptado do Material do Professor Jeffrey Ullman Originalmente proposta para o System R desenvolvido nos laboratórios da IBM

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

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

Introdução ao SQL Avançado

Introdução ao SQL Avançado Introdução ao SQL Avançado Introdução as consultas, manipulação e a filtragem de dados com a linguagem SQL Prof. MSc. Hugo Vieira L. Souza Este documento está sujeito a copyright. Todos os direitos estão

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

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

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

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

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

SQL DDL. Frederico D. Bortoloti freddb@ltc.ufes.br Banco de Dados I SQL DDL Frederico D. Bortoloti freddb@ltc.ufes.br Introdução Modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de padrão SQL (Structured Query Language)

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

FAPLAN - Faculdade Anhanguera Passo Fundo Gestão da Tecnologia da Informação Banco de Dados II Prof. Eder Pazinatto Stored Procedures Procedimento armazenados dentro do banco de dados Um Stored Procedure

Leia mais

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011 Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de

Leia mais

Banco de Dados I. Linguagem de Consulta (parte II) Recuperando Dados de Várias Tabelas (JOINS)

Banco de Dados I. Linguagem de Consulta (parte II) Recuperando Dados de Várias Tabelas (JOINS) Banco de Dados I Linguagem de Consulta (parte II) Recuperando Dados de Várias Tabelas (JOINS) Exemplo - pedido Diagrama Entidade-Relacionamento N Pedido N possui N Produto N faz tira 1 Cliente 1 Vendedor

Leia mais

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS CLAUDIO RIBEIRO DA SILVA MARÇO 1997 2 1 - CONCEITOS GERAIS DE 1.1 - Conceitos Banco de Dados - Representa

Leia mais

Modelo Relacional. Modelo Relacional. Conceitos Gerais: Relação

Modelo Relacional. Modelo Relacional. Conceitos Gerais: Relação Modelo Relacional Fernanda Baião UNIRIO Material parcialmente extraído a partir das notas de aula de Maria Luiza M. Campos, Arnaldo Rocha e Maria Cláudia Cavalcanti Modelo Relacional Modelo Lógico: ferramenta

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

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

Integridade Referencial Interface Visual SQL Server

Integridade Referencial Interface Visual SQL Server a. Criar o banco de dados chamado DBSP, com suas respectivas tabelas (S, P e SP), no, conforme especificado abaixo:. Grupo lógico (filegroup) PRIMARY. Name: DBSP Arquivo físico: D:\...\DBSP.MDF Nome da

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

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

Programação SQL. Introdução

Programação SQL. Introdução Introdução Principais estruturas duma Base de Dados: Uma BD relacional é constituída por diversas estruturas (ou objectos ) de informação. Podemos destacar: Database: designa a própria BD; Table/Tabela:

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

SQL - Criação de Tabelas

SQL - Criação de Tabelas SQL - Criação de Tabelas André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 1 / 25 Sumário 1 Introdução 2 Tabelas

Leia mais

Tarefa Orientada 15 Manipulação de dados

Tarefa Orientada 15 Manipulação de dados Tarefa Orientada 15 Manipulação de dados Objectivos: Criação de tabelas teste Comando INSERT INTO Inserção de dados Comando INSERT Actualização de dados Comando UPDATE Eliminação de dados Comando DELETE

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

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

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015 SQL - Banco de Dados 1 Disciplina: Banco de Dados Professor: José Antônio 2 Tópicos de discussão Criando um banco de dados Incluindo, atualizando e excluindo linhas nas tabelas Pesquisa básica em tabelas

Leia mais

Banco de Dados - Senado

Banco de Dados - Senado Banco de Dados - Senado Structured Query Language (SQL) Material preparado :Prof. Marcio Vitorino Ambiente Simplificado de um SGBD 2 Características dos SGBDs Natureza auto-contida de um sistema de banco

Leia mais

f. Vocês podem selecionar todos os campos indicando-os, ou seja, sem usar * (boa prática) g. Muito relevante na manutenção de BD e de aplicações.

f. Vocês podem selecionar todos os campos indicando-os, ou seja, sem usar * (boa prática) g. Muito relevante na manutenção de BD e de aplicações. Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: B1SGB - Sistemas Gerenciadores de Banco de Dados Memória de aula Aula 11 1) Cláusulas SELECT e FROM a. Apesar de ser a primeira, ela é a

Leia mais

SQL. Profa. Msc. Fernanda Lígia Rodrigues Lopes. Disciplina: Fundamentos de Banco de Dados

SQL. Profa. Msc. Fernanda Lígia Rodrigues Lopes. Disciplina: Fundamentos de Banco de Dados SQL Profa. Msc. Fernanda Lígia Rodrigues Lopes Disciplina: Fundamentos de Banco de Dados Roteiro O que é SQL? Breve Histórico da SQL Usos da SQL Comandos SQL DDL Comandos SQL DML Comandos para consultas

Leia mais

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011 Banco de Dados I Aula 16 - Prof. Bruno Moreno 04/11/2011 Plano de Aula O comando DELETE Cláusula CHECK Comparações utilizando NULL Funções agregadas Junções de tabelas em SQL Visões Comando DELETE DELETE

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

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 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

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

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Agenda Linguagem SQL: Introdução; Construção/Definição de tabelas. 2 Linguagem SQL SQL - Structured Query Language;

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 Laboratório de Computação para Ciências Módulo II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino

Leia mais

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Structured Query Language (SQL) Ambiente Simplificado de um SGBD Structured Query Language (SQL) Ambiente Simplificado de um SGBD 2 1 Características dos SGBDs Natureza auto-contida de um sistema de banco de dados: metadados armazenados num catálogo ou dicionário de

Leia mais

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Agenda Estrutura Básica de consultas SQL: A cláusula SELECT; A cláusula FROM; A cláusula WHERE. Operação com cadeias

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

1.264 Aula 7. Introdução ao SQL

1.264 Aula 7. Introdução ao SQL 1.264 Aula 7 Introdução ao SQL Linguagem Estruturada de Consulta (SQL) Aula 7 SELECT, INSERT, DELETE, UPDATE Junções Aula 8 Subconsultas Visões (tabelas virtuais) Índices Transações Segurança Desempenho

Leia mais