Criando Instruções SQL Básicas Objetivos:
|
|
|
- Luana Pinheiro Corte-Real
- 10 Há anos
- Visualizações:
Transcrição
1 Criando Instruções SQL Básicas Objetivos: Listar os recursos das instruções SELECT SQL Executar uma instrução SELECT básica Diferenciar instruções SQL e comandos SQL*Plus 1
2 Recursos das Instruções SELECT SQL Seleção Projeção Tabela 1 Tabela 1 Junção Tabela 1 Tabela 2 2
3 Instrução SELECT Básica SELECT FROM [DISTINCT] {*, coluna [apelido],...} tabela; SELECT identifica que colunas. FROM identifica qual tabela. 3
4 Criando Instruções SQL Instruções SQL não fazem distinção entre maiúsculas e minúsculas. Instruções SQL podem estar em uma ou mais linhas. Palavras-chave não podem ser abreviadas ou divididas entre as linhas. Normalmente, as cláusulas são colocadas em linhas separadas. Guias e endentações são usadas para aperfeiçoar a legibilidade. 4
5 Selecionando Todas as Colunas SQL> SELECT * 2 FROM dept; DEPTNO DNAME LOC ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 5
6 Selecionando Colunas Específicas SQL> SELECT deptno, loc 2 FROM dept; DEPTNO LOC NEW YORK 20 DALLAS 30 CHICAGO 40 BOSTON 6
7 Defaults de Cabeçalho de Coluna Justificada default Esquerda: Dados de caractere e data Direita: Dados numéricos Exibição default: Letra maiúscula 7
8 Expressões Aritméticas Criar expressões com dados NUMBER e DATE usando operadores aritméticos Operador + - * / Descrição Adicionar Subtrair Multiplicar Dividir 8
9 Usando Operadores Aritméticos SQL> SELECT ename, sal, sal FROM emp; ENAME SAL SAL KING BLAKE CLARK JONES MARTIN ALLEN rows selected. 9
10 Precedência do Operador * / + _ A multiplicação e a divisão têm prioridade sobre a adição e a subtração. Os operadores com a mesma prioridade são avaliados da esquerda para a direita. Os parênteses são usados para forçar a avaliação e para esclarecer as instruções. 10
11 Precedência do Operador SQL> SELECT ename, sal, 12*sal FROM emp; ENAME SAL 12*SAL KING BLAKE CLARK JONES MARTIN ALLEN rows selected. 11
12 Usando Parênteses SQL> SELECT ename, sal, 12*(sal+100) 2 FROM emp; ENAME SAL 12*(SAL+100) KING BLAKE CLARK JONES MARTIN rows selected. 12
13 Definindo um Valor Nulo Um valor nulo não está disponível, não é atribuído, é desconhecido ou não é aplicável. Um valor nulo não é o mesmo que um zero ou um espaço em branco. SQL> SELECT ename, job, sal, comm 2 FROM emp; ENAME JOB SAL COMM KING PRESIDENT 5000 BLAKE MANAGER TURNER SALESMAN rows selected. 13
14 Valores Nulos nas Expressões Aritméticas Expressões aritméticas contendo um valor nulo são avaliadas como nulo. SQL> select ename, 12*sal+comm 2 from emp 3 WHERE ename='king'; ENAME 12*SAL+COMM KING 14
15 Definindo um Apelido de Coluna Renomeia um cabeçalho de coluna É útil para cálculos Segue imediatamente o nome da coluna Palavra-chave AS opcional entre o nome da coluna e o apelido Necessita de aspas duplas caso contenha espaços ou caracteres especiais ou faça distinção entre maiúsculas e minúsculas 15
16 Usando Apelidos de Coluna SQL> SELECT ename AS name, sal salary 2 FROM emp; NAME SALARY SQL> SELECT ename "Name", 2 sal*12 "Annual Salary" 3 FROM emp; Name Annual Salary
17 Operador de Concatenação Concatena colunas ou strings de caractere a outras colunas É representado por duas barras Verticais - Cria uma coluna resultante que é uma expressão de caracteres 17
18 Usando um Operador de Concatenação SQL> SELECT ename job AS "Employees" 2 FROM emp; Employees KINGPRESIDENT BLAKEMANAGER CLARKMANAGER JONESMANAGER MARTINSALESMAN ALLENSALESMAN rows selected. 18
19 Strings Literais de Caracteres Uma literal é um caractere, um número ou uma data incluída na lista SELECT. Os valores literais de caractere e data devem estar entre aspas simples. Cada string de caractere é gerada uma vez para cada linha retornada. 19
20 Usando Strings Literais de Caracteres SQL> SELECT ename ' is a ' job 2 AS "Employee Details" 3 FROM emp; Employee Details KING is is a PRESIDENT BLAKE is is a MANAGER CLARK is is a MANAGER JONES is is a MANAGER MARTIN is is a SALESMAN rows selected. 20
21 Linhas Duplicadas A exibição default das consultas é de todas as linhas, incluindo linhas duplicadas. SQL> SELECT deptno 2 FROM emp; DEPTNO rows selected. 21
22 Eliminando Linhas Duplicadas Elimine linhas duplicadas usando a palavra-chave DISTINCT na cláusula SELECT. SQL> SELECT DISTINCT deptno 2 FROM emp; DEPTNO
23 Exibindo a Estrutura de Tabela Use o comando DESCRIBE do SQL*Plus para exibir a estrutura de uma tabela. DESC[RIBE] nome da da tabela SQL> DESCRIBE dept Name Null? Type DEPTNO NOT NULL NUMBER(2) DNAME VARCHAR2(14) LOC VARCHAR2(13) 23
24 Restringindo e Classificando Dados Objetivos: Limitar linhas recuperadas por uma consulta Classificar linhas recuperadas por uma consulta 24
25 Limitando Linhas Usando uma Seleção EMP EMPNO ENAME JOB... DEPTNO 7839 KING PRESIDENT BLAKE MANAGER CLARK MANAGER JONES MANAGER " recuperar todos os funcionários do departamento 10" EMP EMPNO ENAME JOB... DEPTNO 7839 KING PRESIDENT CLARK MANAGER MILLER CLERK 10 25
26 Limitando Linhas Selecionadas Restringe as linhas retornadas usando a cláusula WHERE. SELECT [DISTINCT] {* coluna [apelido],...} FROM tabela [WHERE condição(ões)]; A cláusula WHERE segue a cláusula FROM. 26
27 Usando a Cláusula WHERE SQL> SELECT ename, job, deptno 2 FROM emp 3 WHERE job='clerk'; ENAME JOB DEPTNO JAMES CLERK 30 SMITH CLERK 20 ADAMS CLERK 20 MILLER CLERK 10 27
28 Strings de Caractere e Datas As strings de caractere e valores de data aparecem entre aspas simples. Os valores de caractere fazem distinção entre maiúsculas e minúsculas e os valores de data diferenciam formatos. O formato de data default é DD-MON-YY. SQL> SELECT ename, job, deptno 2 FROM emp 3 WHERE ename = 'JAMES'; 28
29 Operadores de Comparação Operador = > >= < <= <> Significado Igual a Maior do que Maior do que ou igual a Menor do que Menor ou igual a Diferente de 29
30 Usando Operadores de Comparação SQL> SELECT ename, sal, comm 2 FROM emp 3 WHERE sal<=comm; ENAME SAL COMM MARTIN
31 Outros Operadores de Comparação Operador BETWEEN...AND... IN(list) LIKE IS NULL IS NOT NULL Significado Entre dois valores (inclusive) Vincula qualquer um de uma lista de valores Vincula um padrão de caractere É um valor nulo Não é um valor nulo 31
32 Usando o Operador BETWEEN Use o operador BETWEEN para exibir linhas baseadas em uma faixa de valores. SQL> SELECT ename, sal 2 FROM emp 3 WHERE sal BETWEEN 1000 AND 1500; ENAME SAL MARTIN 1250 TURNER 1500 WARD 1250 ADAMS 1100 MILLER 1300 Limite inferior Limite superior 32
33 Usando o Operador IN Use o operador IN para testar os valores de uma lista. SQL> SELECT empno, ename, sal, mgr 2 FROM emp 3 WHERE mgr IN (7902, 7566, 7788); EMPNO ENAME SAL MGR FORD SMITH SCOTT ADAMS
34 Usando o Operador LIKE Use o operador LIKE para executar pesquisas curinga de valores de string de pesquisa válidos. As condições de pesquisa podem conter caracteres literais ou números. % denota zero ou muitos caracteres. _ denota um caractere. SQL> SELECT ename 2 FROM emp 3 WHERE ename LIKE 'S%'; 34
35 Usando o Operador LIKE Você pode combinar caracteres de vinculação de padrão. SQL> SELECT ename 2 FROM emp 3 WHERE ename LIKE '_A%'; ENAME MARTIN JAMES WARD É possível usar o identificador ESCAPE para procurar por "%" ou "_". 35
36 Usando o Operador IS NULL Teste para valores nulos com o operador IS NULL. SQL> SELECT ename, mgr 2 FROM emp 3 WHERE mgr IS NULL; ENAME MGR KING 36
37 Operadores Lógicos Operador AND OR NOT Significado Retorna TRUE se as condições de componentes forem TRUE Retorna TRUE se uma condição de componente for TRUE Retorna TRUE se a condição seguinte for FALSE 37
38 Usando o Operador AND AND exige que ambas as condições sejam TRUE. SQL> SELECT empno, ename, job, sal 2 FROM emp 3 WHERE sal>= AND job='clerk'; EMPNO ENAME JOB SAL ADAMS CLERK MILLER CLERK
39 Usando o Operador OR OR exige que uma condição seja TRUE. SQL> SELECT empno, ename, job, sal 2 FROM emp 3 WHERE sal>= OR job='clerk'; EMPNO ENAME JOB SAL KING PRESIDENT BLAKE MANAGER CLARK MANAGER JONES MANAGER MARTIN SALESMAN JAMES CLERK rows selected. 39
40 Usando o Operador NOT SQL> SELECT ename, job 2 FROM emp 3 WHERE job NOT IN ('CLERK','MANAGER','ANALYST'); ENAME JOB KING PRESIDENT MARTIN SALESMAN ALLEN SALESMAN TURNER SALESMAN WARD SALESMAN 40
41 Regras de Precedência Ordem de Avaliação Operador 1 Todos os operadores de comparação 2 NOT 3 AND 4 OR Sobreponha regras de precedência usando parênteses. 41
42 Regras de Precedência SQL> SELECT ename, job, sal 2 FROM emp 3 WHERE job='salesman' 4 OR job='president' 5 AND sal>1500; ENAME JOB SAL KING PRESIDENT 5000 MARTIN SALESMAN 1250 ALLEN SALESMAN 1600 TURNER SALESMAN 1500 WARD SALESMAN
43 Regras de Precedência Use parênteses para forçar a prioridade. SQL> SELECT ename, job, sal 2 FROM emp 3 WHERE (job='salesman' 4 OR job='president') 5 AND sal>1500; ENAME JOB SAL KING PRESIDENT 5000 ALLEN SALESMAN
44 Cláusula ORDER BY Classificar as linhas com a cláusula ORDER BY ASC: ordem crescente, default DESC: ordem decrescente A cláusula ORDER BY vem depois na instrução SELECT. SQL> SELECT ename, job, deptno, hiredate 2 FROM emp 3 ORDER BY hiredate; ENAME JOB DEPTNO HIREDATE SMITH CLERK DEC-80 ALLEN SALESMAN FEB rows selected. 44
45 Classificando em Ordem Decrescente SQL> SELECT ename, job, deptno, hiredate 2 FROM emp 3 ORDER BY hiredate DESC; ENAME JOB DEPTNO HIREDATE ADAMS CLERK JAN-83 SCOTT ANALYST DEC-82 MILLER CLERK JAN-82 JAMES CLERK DEC-81 FORD ANALYST DEC-81 KING PRESIDENT NOV-81 MARTIN SALESMAN SEP rows selected. 45
46 Classificando por Apelido de Coluna SQL> SELECT empno, ename, sal*12 annsal 2 FROM emp 3 ORDER BY annsal; EMPNO ENAME ANNSAL SMITH JAMES ADAMS MARTIN WARD MILLER TURNER rows selected. 46
47 Classificando por Várias Colunas A ordem da lista ORDER BY é a ordem de classificação. SQL> SELECT ename, deptno, sal 2 FROM emp 3 ORDER BY deptno, sal DESC; ENAME DEPTNO SAL KING CLARK MILLER FORD rows selected. Você pode classificar por uma coluna que não esteja na lista SELECT. 47
48 Sumário SELECT [DISTINCT] {* coluna [apelido],...} FROM tabela [WHERE condição(ões)] [ORDER BY {coluna, expr, apelido} [ASC DESC]]; 48
49 Funções de Uma Única Linha Objetivos: Descrever vários tipos de funções disponíveis no SQL Usar funções de data, número e caractere nas instruções SELECT Descrever o uso das funções de conversão 49
50 Funções SQL Entrada arg 1 arg 2 arg n Função A função executa a ação Saída Resultado valor 50
51 Dois Tipos de Funções SQL Funções Funções de Uma Única Linha Funções de Várias Linhas 51
52 Funções de Uma Única Linha Manipulam itens de dados Aceitam argumentos e retornam um valor Agem em cada linha retornada Retornam um resultado por linha Podem modificar o tipo de dados Podem ser aninhadas function_name (coluna expressão, [arg1, arg2,...]) 52
53 Funções de Uma Única Linha Caractere Geral Funções de Uma Única Linha Número Conversão Data 53
54 Funções de Caractere Funções de caractere Funções de Conversão de Maiúsculas e Minúsculas LOWER UPPER INITCAP Funções de manipulação de caractere CONCAT SUBSTR LENGTH INSTR LPAD TRIM 54
55 Exibindo Dados de Várias Tabelas Objetivos: Criar instruções SELECT para obter acesso aos dados a partir de mais de uma tabela usando as junções idênticas e não-idênticas Visualizar dados que, em geral, não correspondem a uma condição de junção usando junções externas Unindo uma tabela a ela mesma 55
56 Obtendo Dados de Várias Tabelas EMP EMPNO ENAME... DEPTNO KING BLAKE MILLER DEPT DEPTNO DNAME LOC ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON EMPNO EMPNO DEPTNO LOC LOC NEW NEW YORK YORK CHICAGO NEW NEW YORK YORK DALLAS CHICAGO CHICAGO rows rows selected. 56
57 O Que É uma Junção? Use uma junção para consultar dados a partir de uma ou mais tabelas. SELECT FROM WHERE tabela1.coluna, tabela2.coluna tabela1, tabela2 tabela1.coluna1 = tabela2.coluna2; Criar uma condição de junção na cláusula WHERE. Prefixar o nome da coluna com o nome da tabela quando o mesmo nome da coluna aparecer em mais de uma tabela. 57
58 Produto Cartesiano Um produto cartesiano é formado quando: Uma condição de junção estiver omitida Uma condição de junção estiver inválida Todas as linhas na primeira tabela estão unidas a todas as linhas da segunda tabela Para evitar um produto Cartesiano, sempre inclua uma condição de junção válida em uma cláusula WHERE. 58
59 Gerando Produto Cartesiano EMP (14 linhas) EMPNO EMPNOENAME ENAME DEPTNO KING BLAKE MILLER DEPT (4 linhas) DEPTNO DNAME DNAME LOC LOC ACCOUNTING NEW NEW YORK YORK RESEARCH DALLAS SALES SALES CHICAGO OPERATIONS BOSTON "Produto Cartesiano: 14*4=56 linhas" ENAME ENAME DNAME DNAME KING KING ACCOUNTING BLAKE BLAKE ACCOUNTING KING KING RESEARCH BLAKE BLAKE RESEARCH rows rows selected. 59
60 Tipos de Junções Junção idêntica Junção não-idêntica Junção externa Autojunção 60
61 O Que É uma Junção Idêntica? EMP EMPNO ENAME DEPTNO KING BLAKE CLARK JONES MARTIN ALLEN TURNER JAMES WARD FORD SMITH rows selected. Chave estrangeira DEPT DEPTNO DNAME LOC ACCOUNTING NEW YORK 30 SALES CHICAGO 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 20 RESEARCH DALLAS 20 RESEARCH DALLAS rows selected. Chave primária 61
62 Recuperando Registros com Junções Idênticas SQL> SELECT emp.empno, emp.ename, emp.deptno, 2 dept.deptno, dept.loc 3 FROM emp, dept 4 WHERE emp.deptno=dept.deptno; EMPNO ENAME DEPTNO DEPTNO LOC KING NEW YORK 7698 BLAKE CHICAGO 7782 CLARK NEW YORK 7566 JONES DALLAS rows selected. 62
63 Qualificando Nomes de Coluna Ambíguos Use os prefixos de tabela para qualificar nomes de coluna que estão em várias tabelas. Melhore o desempenho usando os prefixos de tabela. Diferencie colunas que possuem nomes idênticos, mas que residam em tabelas diferentes usando apelidos de coluna. 63
64 Condições de Pesquisa Adicional Usando o Operador AND EMP EMPNO ENAME DEPTNO KING BLAKE CLARK JONES MARTIN ALLEN TURNER JAMES WARD FORD SMITH rows selected. DEPT DEPTNO DNAME LOC ACCOUNTING NEW YORK 30 SALES CHICAGO 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 30 SALES CHICAGO 20 RESEARCH DALLAS 20 RESEARCH DALLAS rows selected. 64
65 Usando Apelidos de Tabela Simplifique consultas usando apelidos de tabela. SQL> SELECT emp.empno, emp.ename, emp.deptno, 2 dept.deptno, dept.loc 3 FROM emp, dept 4 WHERE emp.deptno=dept.deptno; SQL> SELECT e.empno, e.ename, e.deptno, 2 d.deptno, d.loc 3 FROM emp e, dept d 4 WHERE e.deptno= d.deptno; 65
66 Unindo Mais de Duas Tabelas CUSTOMER NAME NAME CUSTID JOCKSPORTS TKB TKB SPORT SPORT SHOP SHOP VOLLYRITE JUST JUST TENNIS K+T K+T SPORTS SHAPE SHAPE UP UP WOMENS SPORTS rows rows selected. ORD CUSTID ORDID ORDID ITEM ORDID ORDID ITEMID rows rows selected rows rows selected. 66
67 Junções Não-idênticas EMP EMPNO ENAME SAL KING BLAKE CLARK JONES MARTIN ALLEN TURNER JAMES rows selected. SALGRADE GRADE LOSAL HISAL "o salário na tabela EMP está entre salário inferior e salário superior na tabela SALGRADE" 67
68 Recuperando Registros com Junções Não-idênticas SQL> SELECT e.ename, e.sal, s.grade 2 FROM emp e, salgrade s 3 WHERE e.sal 4 BETWEEN s.losal AND s.hisal; ENAME SAL GRADE JAMES SMITH ADAMS rows selected. 68
69 Junções Externas EMP ENAME DEPTNO KING 10 BLAKE 30 CLARK 10 JONES DEPT DEPTNO DNAME ACCOUNTING 30 SALES 10 ACCOUNTING 20 RESEARCH OPERATIONS Nenhum funcionário do departamento OPERATIONS 69
70 Junções Externas Use uma junção externa para consultar também todas as linhas que em geral não atendem à condição de junção. O operador de junção externo é um sinal de adição (+). SELECT tabela1.coluna, tabela2.coluna FROM tabela1, tabela2 WHERE tabela1.coluna(+) = tabela2.coluna; SELECT tabela1.coluna, tabela2.coluna FROM tabela1, tabela2 WHERE tabela1.coluna = tabela2.coluna(+); 70
71 Usando Junções Externas SQL> SELECT e.ename, d.deptno, d.dname 2 FROM emp e, dept d 3 WHERE e.deptno(+) = d.deptno 4 ORDER BY e.deptno; ENAME DEPTNO DNAME KING 10 ACCOUNTING CLARK 10 ACCOUNTING OPERATIONS 15 rows selected. 71
72 Autojunções EMP (WORKER) EMPNO ENAME MGR KING 7698 BLAKE CLARK JONES MARTIN ALLEN 7698 EMP (MANAGER) EMPNO ENAME KING 7839 KING 7839 KING 7698 BLAKE 7698 BLAKE "MGR na tabela WORKER é igual a EMPNO na tabela MANAGER" 72
73 Unindo uma Tabela a Ela Mesma SQL> SELECT worker.ename ' works for ' manager.ename 2 FROM emp worker, emp manager 3 WHERE worker.mgr = manager.empno; WORKER.ENAME 'WORKSFOR' MANAG BLAKE works for KING CLARK works for KING JONES works for KING MARTIN works for BLAKE rows selected. 73
74 Sumário SELECT FROM WHERE tabela1.coluna, tabela2.coluna tabela1, tabela2 tabela1.coluna1 = tabela2.coluna2; Junção idêntica Junção não-idêntica Junção externa Autojunção 74
75 SQL: Lista de Exercício 1. Escreva uma query para mostrar o nome do empregado, número e nome do departamento para todos os empregados 2. Crie uma única lista de todos os cargos que estão no departamento Escreva uma query para mostrar o nome do empregado, nome e localização do departamento de todos os empregados que ganham comissão 4. Mostre o nome do empregado e nome do departamento para todo os empregado que tenha um A em seu nome. Salve em p4q4.sql. 5. Escreva uma query para mostrar o nome, cargo, número e nome do departamento de todos os empregados que trabalham em DALLAS 6. Mostre o nome e número do empregado com o seu respectivo gerente, nome e número. Nomeie as colunas como Employee, emp#, Manager, and Mgr#, respectivamente. Salve em p4q6.sql 7. Modifique p4q6.sql para mostrar todos os empregados, incluindo King, que não tem gerente. Salve em p4q7.sql. Execute. 75
76 SQL: Lista de Exercício 8. Crie uma query que mostre o nome do empregado, número do departamento e todos os empregados que trabalham no mesmo departamento. Nomeie cada coluna apropriadamente. 9. Mostre a estrutura da tabela SALGRADE. Crie uma query que mostre o nome, cargo, nome do departamento, salário e a faixa salarial de todos os empregados. 10. Crie uma query para mostrar o nome e data de contratação de todos empregados contratado após o Blake. 11. Mostre todos os nomes dos empregados com suas datas de contratações, nome dos gerentes e datas de contratações dos empregados que foram contratados antes dos seus gerentes. Nomeie as colunas como Employee, Emp Hiredate, Manager, and Mgr Hiredate, respectivamente. 12. Crie uma query que mostre o nome do empregado e salário como um montante de asteriscos. Cada asterisco significa centenas de dólares. Ordene os dados em ordem descendente de salário. Nomeie a coluna como EMPLOYEE_AND_THEIR_SALARIES. 76
77 Agregando Dados Usando Funções de Grupo Objetivos: Identificar as funções de grupo disponíveis Descrever o uso de funções de grupo Agrupar dados usando a cláusula GROUP BY Incluir ou excluir linhas agrupadas usando a cláusula HAVING 77
78 O Que São Funções de Grupo? As funções de grupo operam em conjuntos de linhas para fornecer um resultado por grupo. EMP DEPTNO SAL "salário máximo na tabela EMP" MAX(SAL)
79 Tipos de Funções de Grupo AVG COUNT MAX MIN STDDEV SUM VARIANCE 79
80 Usando Funções de Grupo SELECT FROM [WHERE [GROUP BY [ORDER BY [coluna,] group_function(coluna) tabela condição] coluna] coluna]; 80
81 Usando Funções AVG e SUM Você pode usar AVG e SUM para dados numéricos. SQL> SELECT AVG(sal), MAX(sal), 2 MIN(sal), SUM(sal) 3 FROM emp 4 WHERE job LIKE 'SALES%'; AVG(SAL) MAX(SAL) MIN(SAL) SUM(SAL)
82 Usando Funções MIN e MAX Você pode usar MIN e MAX para qualquer tipo de dados. SQL> SELECT MIN(hiredate), MAX(hiredate) 2 FROM emp; MIN(HIRED MAX(HIRED DEC JAN-83 82
83 Usando a Função COUNT COUNT(*) retorna o número de linhas em uma tabela. SQL> SELECT COUNT(*) 2 FROM emp 3 WHERE deptno = 30; COUNT(*)
84 Usando a Função COUNT COUNT(expr) retorna o número de linhas não nulas. SQL> SELECT COUNT(comm) 2 FROM emp 3 WHERE deptno = 30; COUNT(COMM)
85 Funções de Grupo e Valores Nulos As funções de grupo ignoram valores nulos na coluna. SQL> SELECT AVG(comm) 2 FROM emp; AVG(COMM)
86 Usando a Função NVL com Funções de Grupo A função NVL força as funções de grupo a incluírem valores nulos. SQL> SELECT AVG(NVL(comm,0)) 2 FROM emp; AVG(NVL(COMM,0))
87 Criando Grupos de Dados EMP DEPTNO SAL "salário médio na tabela EMP para cada departamento" DEPTNO AVG(SAL)
88 Criando Grupos de Dados: Cláusula GROUP BY SELECT FROM [WHERE [GROUP BY [ORDER BY coluna, group_function(coluna) tabela condição] group_by_expression] coluna]; Divida linhas de uma tabela em grupos menores usando a cláusula GROUP BY. 88
89 Usando a Cláusula GROUP BY Todas as colunas na lista SELECT que não estejam em funções de grupo devem estar na cláusula GROUP BY SQL> SELECT deptno, AVG(sal) 2 FROM emp 3 GROUP BY deptno; DEPTNO AVG(SAL)
90 Usando a Cláusula GROUP BY A coluna GROUP BY não precisa estar na lista SELECT SQL> SELECT AVG(sal) 2 FROM emp 3 GROUP BY deptno; AVG(SAL)
91 Agrupando por Mais de Uma Coluna EMP DEPTNO JOB SAL MANAGER PRESIDENT CLERK CLERK CLERK ANALYST ANALYST MANAGER SALESMAN MANAGER SALESMAN CLERK SALESMAN SALESMAN 1250 "soma de salários na tabela EMP para cada cargo, agrupados por departamento" DEPTNO JOB SUM(SAL) CLERK 1300 MANAGER 2450 PRESIDENT 5000 ANALYST 6000 CLERK 1900 MANAGER 2975 CLERK 950 MANAGER 2850 SALESMAN
92 Usando a Cláusula GROUP BY em Várias Colunas SQL> SELECT deptno, job, sum(sal) 2 FROM emp 3 GROUP BY deptno, job; DEPTNO JOB SUM(SAL) CLERK MANAGER PRESIDENT ANALYST CLERK rows selected. 92
93 Consultas Ilegais Usando Funções de Grupo Qualquer coluna ou expressão na lista SELECT que não seja uma função agregada deve estar na cláusula GROUP BY. SQL> SELECT deptno, COUNT(ename) 2 FROM emp; Coluna ausente na cláusula GROUP BY SELECT deptno, COUNT(ename) * ERROR at at line 1: 1: ORA-00937: Nenhuma função de de grupo de de grupo único (Not a single-group group function) 93
94 Consultas Ilegais Usando Funções de Grupo Não é possível usar a cláusula WHERE para restringir grupos. Use a cláusula HAVING para restringir grupos. SQL> SELECT deptno, AVG(sal) 2 FROM emp 3 WHERE AVG(sal) > GROUP BY BY deptno; WHERE AVG(sal) > 2000 * ERROR at at line 3: 3: ORA-00934: A função de de grupo não é permitida aqui (Group function is is not allowed here) Não é possível usar a cláusula WHERE para restringir grupos 94
95 Excluindo Resultados do Grupo EMP DEPTNO SAL "salário máximo por departamento maior do que US$ 2.900" DEPTNO MAX(SAL)
96 Excluindo Resultados do Grupo: Cláusula HAVING Use a cláusula HAVING para restringir grupos As linhas são agrupadas. A função de grupo é aplicada. Os grupos que correspondem à cláusula HAVING são exibidos. SELECT FROM [WHERE [GROUP BY [HAVING [ORDER BY coluna, group_function tabela condição] group_by_expression] group_condition] coluna]; 96
97 Usando a Cláusula HAVING SQL> SELECT deptno, max(sal) 2 FROM emp 3 GROUP BY deptno 4 HAVING max(sal)>2900; DEPTNO MAX(SAL)
98 Usando a Cláusula HAVING SQL> SELECT job, SUM(sal) PAYROLL 2 FROM emp 3 WHERE job NOT LIKE 'SALES%' 4 GROUP BY job 5 HAVING SUM(sal)> ORDER BY SUM(sal); JOB PAYROLL ANALYST 6000 MANAGER
99 Aninhando Funções de Grupo Exiba o salário médio máximo SQL> SELECT max(avg(sal)) 2 FROM emp 3 GROUP BY deptno; MAX(AVG(SAL))
100 Sumário SELECT FROM [WHERE [GROUP BY [HAVING [ORDER BY coluna, group_function(coluna) tabela condição] group_by_expression] group_condition] coluna]; Ordem de avaliação das cláusulas: cláusula WHERE cláusula GROUP BY cláusula HAVING 100
101 SQL: Lista de Exercício Determine se verdadeiro(v) ou falso(f) as seguintes declarações: 1. Funções de grupo trabalham em muitas linhas para produzir um resultado. 2. Funções de grupo usam nulls nos seus cálculos. 3. A cláusula WHERE restringe linhas antes de incluí-las em cálculos de funções de grupos. 4. Mostre o maior, o menor, a soma e a média dos salários de todos os empregados. Nomeie as colunas como Maximum, Minimum, Sum, and Average, respectivamente. Arredonde os resultados para inteiro. Salve em p5q4.sql. 5. Modifique p5q4.sql para mostrar o menor, o maior, a soma e a média dos salários para cada tipo de cargo. Salve em p5q5.sql. 6. Escreva uma query para mostrar o número de empregados com o mesmo cargo. 7. Determine o número de gerentes sem listá-los. Nomeie a coluna como Number of Managers. 101
102 SQL: Lista de Exercício Determine se verdadeiro(v) ou falso(f) as seguintes declarações: 8. Escreva uma query que mostre a diferença entre o maior e menor salário. Nomeie a coluna como DIFFERENCE. 9. Mostre o número do gerente e o salário mais baixo pago aos funcionários daquele gerente. Exclua o empregado que não possua gerente. Exclua qualquer grupo where o menor salário seja menor que $1000. Ordene por salário (descendente). 10. Escreva uma query para mostrar o nome do departamento, nome da localização, número de empregados, e média de salário para todos os empregados daquele departamento. Nomeie as colunas como dname, loc, Number of People, and Salary, respectivamente. 11. Crie uma query que mostre o número total de empregados e daquele total, o número que foram contratados em 1980, 1981, 1982, e Nomeie as colunas de forma apropriada. 102
103 Subconsultas Objetivos: Descrever os tipos de problemas que as subconsultas podem resolver Definir as subconsultas Listar os tipos de subconsultas Criar subconsultas de uma única linha e de várias linhas 103
104 Usando uma Subconsulta para Resolver um Problema "Quem tem um salário maior que o de Jones?" Consulta principal? "Que funcionários têm um salário maior que o salário de Jones?" Subconsulta? "Qual é o salário de Jones?" 104
105 Subconsultas SELECT FROM WHERE select_list tabela operador expr (SELECT FROM select_list tabela); A subconsulta (consulta interna) é executada uma vez antes da consulta principal. O resultado da subconsulta é usado pela consulta principal (consulta externa). 105
106 Usando uma Subconsulta SQL> SELECT ename 2 FROM emp WHERE sal > 4 (SELECT sal 5 FROM emp 6 WHERE empno=7566); ENAME KING FORD SCOTT 106
107 Diretrizes para o Uso de Subconsultas Coloque as subconsultas entre parênteses. Coloque as subconsultas no lado direito do operador de comparação. Não adicione uma cláusula ORDER BY a uma subconsulta. Use operadores de uma única linha com subconsultas de uma única linha. Use operadores de várias linhas com subconsultas de várias linhas. 107
108 Tipos de Subconsultas Subconsulta de uma única linha Consulta principal Subconsulta Subconsulta de várias linhas Consulta principal Subconsulta Consulta Main query principal Subconsulta Subquery retorna retorna Subconsulta de várias colunas retorna CLERK CLERK MANAGER CLERK 7900 MANAGER
109 Subconsultas de uma Única Linha Retorne somente uma linha Use operadores de comparação de uma única linha Operador = > >= < <= <> Significado Igual a Maior do que Maior do que ou igual a Menor do que Menor ou igual a Diferente de 109
110 Executando Subconsultas de uma Única Linha SQL> SELECT ename, job 2 FROM emp 3 WHERE job = CLERK 4 (SELECT job 5 FROM emp 6 WHERE empno = 7369) 7 AND sal > (SELECT sal 9 FROM emp 10 WHERE empno = 7876); ENAME JOB MILLER CLERK 110
111 Usando Funções de Grupo em uma Subconsulta SQL> SELECT ename, job, sal 2 FROM emp WHERE sal = 4 (SELECT MIN(sal) 5 FROM emp); ENAME JOB SAL SMITH CLERK
112 Cláusula HAVING com Subconsultas O Oracle Server primeiro executa as subconsultas. O Oracle Server retorna os resultados para a cláusula HAVING da consulta principal. SQL> SELECT deptno, MIN(sal) 2 FROM emp 3 GROUP BY deptno 4 HAVING MIN(sal) > (SELECT MIN(sal) 6 FROM emp 7 WHERE deptno = 20); 112
113 O que Há de Errado com esta Instrução? SQL> SELECT empno, ename 2 FROM emp 3 WHERE sal = 4 (SELECT MIN(sal) 5 FROM emp 6 GROUP BY deptno); Operador de uma única linha com subconsulta de várias linhas ERROR: ORA-01427: A subconsulta de de uma única linha retorna mais de de uma linha (Single-row subquery returns more than one row) no no rows selected 113
114 Esta Instrução Irá Funcionar? SQL> SELECT ename, job 2 FROM emp 3 WHERE job = 4 (SELECT job 5 FROM emp 6 WHERE ename='smythe'); no no rows selected A subconsulta não retorna nenhum valor 114
115 Subconsultas de Várias Linhas Retorne mais de uma linha Use operadores de comparação de várias linhas Operador IN ANY ALL Significado Igual a qualquer membro na lista Compare o valor a cada valor retornado pela subconsulta Compare o valor a todo valor retornado pela subconsulta 115
116 Usando o Operador ANY em Subconsultas de Várias Linhas SQL> SELECT empno, ename, job FROM emp WHERE sal < ANY (SELECT sal 5 FROM emp 6 WHERE job = 'CLERK') 7 AND job <> 'CLERK'; EMPNO ENAME JOB MARTIN SALESMAN 7521 WARD SALESMAN 116
117 Usando o Operador ALL em Subconsultas de Várias Linhas SQL> SELECT empno, ename, job FROM emp WHERE sal > ALL (SELECT avg(sal) 5 FROM emp 6 GROUP BY deptno); EMPNO ENAME JOB KING PRESIDENT 7566 JONES MANAGER 7902 FORD ANALYST 7788 SCOTT ANALYST 117
118 Sumário As subconsultas são úteis quando uma consulta baseia-se em valores desconhecidos. SELECT FROM WHERE select_list tabela operador expr (SELECT select_list FROM tabela); 118
119 SQL: Lista de Exercício 1. Escreva uma query para mostrar o nome do empregado e data de contratação para todos os empregados do departamento do Blake. Exclua o Blake. 2. Crie uma query para mostrar o número e nome dos empregados que ganham acima da máeia salarial. Ordene os resultados por salário (decrescente). 3. Escre uma query que mostre o número e nome dos empregados que trabalham em um departamento que tem um empregado cujo nome contem um T. salve em p6q3.sql. 4. Mostre o nome do empregado, número do departamento e cargo para todos eo empregados lotados em Dallas. 5. Mostre o nome do empregado e salário de todos os empregados do King. 6. Mostre o número do departamento, nome do empregado e cargo de todos os empregados do departamento Sales. 7. Modifiique p6q3.sql para mostrar o número e nome do empregado, salário de todos os empregados que ganham mais que média salarial e que trabalham em um departamento que possui um empregado com um T em seu nome. Salve como p6q7.sql. Execute. 119
120 Subconsultas de Várias Colunas Objetivos: Criar uma subconsulta de várias colunas Descrever e explicar o comportamento de subconsultas quando valores nulos forem recuperados Criar uma subconsulta em uma cláusula FROM 120
121 Subconsultas de Várias Colunas Consulta principal MANAGER 10 Subconsulta SALESMAN 30 MANAGER 10 CLERK 20 A consulta principal compara a Valores de uma subconsulta de várias linhas e de várias colunas MANAGER 10 SALESMAN 30 MANAGER 10 CLERK
122 Usando Subconsultas de Várias Colunas Exiba a ID da ordem, a ID do produto e a quantidade de itens na tabela de itens que corresponde à ID do produto e à quantidade de um item na ordem 605. SQL> SELECT ordid, prodid, qty 2 FROM item 3 WHERE (prodid, qty) IN 4 (SELECT prodid, qty 5 FROM item 6 WHERE ordid = 605) 7 AND ordid <> 605; 122
123 Usando Subconsultas de Várias Colunas Exiba o número da ordem, o número do produto e a quantidade de qualquer item em que o número do produto e a quantidade correspondam ao número do produto e à quantidade de um item na ordem 605. SQL> SELECT ordid, prodid, qty 2 FROM item 3 WHERE (prodid, qty) IN 4 (SELECT prodid, qty 5 FROM item 6 WHERE ordid = 605) 7 AND ordid <> 605; 123
124 Comparações de Coluna Aos pares PRODID QTY Sem ser aos pares PRODID QTY
125 Subconsulta de Comparação que Não Seja aos Pares Exiba o número da ordem, o número do produto e a quantidade de qualquer item em que o número do produto e a quantidade correspondam a qualquer número do produto e quantidade de um item na ordem 605. SQL> SELECT ordid, prodid, qty 2 FROM item 3 WHERE prodid IN (SELECT prodid 4 FROM item 5 WHERE ordid = 605) 6 AND qty IN (SELECT qty 7 FROM item 8 WHERE ordid = 605) 9 AND ordid <> 605; 125
126 Subconsulta que Não Seja aos Pares ORDID PRODID QTY rows selected. 126
127 Valores Nulos em uma Subconsulta SQL> SELECT employee.ename 2 FROM emp employee 3 WHERE employee.empno NOT IN 4 (SELECT manager.mgr 5 FROM emp manager); no rows selected. 127
128 Usando uma Subconsulta na Cláusula FROM SQL> SELECT a.ename, a.sal, a.deptno, b.salavg 2 FROM emp a, (SELECT deptno, avg(sal) salavg 3 FROM emp 4 GROUP BY deptno) b 5 WHERE a.deptno = b.deptno 6 AND a.sal > b.salavg; ENAME SAL DEPTNO SALAVG KING JONES SCOTT rows selected. 128
129 SQL: Lista de Exercício 1. Escreva uma query para mostrar nome do empregado, número do departamento e salário de qualquer empregado cujo número do departamento e salário casam ambos com o número do departamento e salário de qualquer empregado que ganha comissão. 2. Mostre o nome do empregado, nome do departamento e salário de qualquer empregado cujo salário e comissão casam ambos com com o salário e comissão de qualquer empregado lotado em Dallas. 3. Crie uma query para mostrar o nome, data de contratação e salário para todos os empregados que tenham o mesmo salário e comissão do Scott. 4. Crie uma query para mostrar os empregados que ganham salário maior que qualquer CLERKS. Ordene o resultado por salário (decrescente). 129
130 Manipulação de Dados Objetivos: Descrever cada instrução DML Inserir linhas em uma tabela Atualizar linhas em uma tabela Deletar linhas de uma tabela Controlar transações 130
131 DML (Data Manipulation Language) Uma instrução DML é executada quando você: Adiciona novas linhas a uma tabela Modifica linhas existentes em uma tabela Remove linhas existentes de uma tabela Uma transação consiste em um conjunto de instruções DML que formam uma unidade lógica de trabalho. 131
132 Adicionando uma Nova Linha em uma Tabela 50 DEVELOPMENT DETROIT Nova linha DEPT DEPTNO DNAME LOC ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON " inserir uma nova linha na tabela DEPT " DEPT DEPTNO DNAME LOC ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 50 DEVELOPMENT DETROIT 132
133 A Instrução INSERT Adicione novas linhas em uma tabela usando a instrução INSERT. INSERT INTO VALUES tabela [(coluna [, [, coluna...])] (valor [, [, valor...]); Somente uma linha é inserida por vez com esta sintaxe. 133
134 Inserindo Novas Linhas Insira uma nova linha contendo valores para cada coluna. Liste valores na ordem default das colunas na tabela. Liste opcionalmente as colunas na cláusula INSERT. SQL> INSERT INTO dept (deptno, dname, loc) 2 VALUES (50, 'DEVELOPMENT', 'DETROIT'); 1 row created. Coloque os valores de data e caractere entre aspas simples. 134
135 Inserindo Linhas com Valores Nulos Método implícito: Omita a coluna da lista de colunas. SQL> INSERT INTO dept (deptno, dname ) 2 VALUES (60, 'MIS'); 1 row created. Método explícito: Especifique a palavra-chave NULL. SQL> INSERT INTO dept 2 VALUES (70, 'FINANCE', NULL); 1 row created. 135
136 Inserindo Valores Especiais A função SYSDATE registra a data e hora atuais. SQL> INSERT INTO emp (empno, ename, job, 2 mgr, hiredate, sal, comm, 3 deptno) 4 VALUES (7196, 'GREEN', 'SALESMAN', , SYSDATE, 2000, NULL, 6 10); 1 row created. 136
137 Inserindo Valores Específicos de Data Adicionar um novo funcionário. SQL> INSERT INTO emp 2 VALUES (2296,'AROMANO','SALESMAN',7782, 3 TO_DATE('FEB 3, 1997', 'MON DD, YYYY'), , NULL, 10); 1 row created. Verifique sua adição. EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO AROMANO SALESMAN FEB
138 Inserindo Valores Usando Variáveis de Substituição Crie um script interativo usando parâmetros de substituição do SQL*Plus SQL> INSERT INTO dept (deptno, dname, loc) 2 VALUES (&department_id, 3 '&department_name', '&location'); Enter value for department_id: 80 Enter value for department_name: EDUCATION Enter value for location: ATLANTA 1 row created. 138
139 Criando um Script com Prompts Personalizados ACCEPT armazena o valor em uma variável. PROMPT exibe o texto personalizado. ACCEPT department_id PROMPT 'Please enter the - department number:' ACCEPT department_name PROMPT 'Please enter - the department name:' ACCEPT location PROMPT 'Please enter the - location:' INSERT INTO dept (deptno, dname, loc) VALUES (&department_id, '&department_name', '&location'); 139
140 Copiando Linhas a partir de Outra Tabela Crie a instrução INSERT com uma subconsulta. SQL> INSERT INTO managers(id, name, salary, hiredate) 2 SELECT empno, ename, sal, hiredate 3 FROM emp 4 WHERE job = 'MANAGER'; 3 rows created. Não use a cláusula VALUES. Faça a correspondência do número de colunas na cláusula INSERT com o número de colunas na subconsulta. 140
141 Alterando os Dados em uma Tabela EMP EMPNO ENAME JOB... DEPTNO 7839 KING PRESIDENT BLAKE MANAGER CLARK MANAGER JONES MANAGER " atualize uma linha em uma tabela EMP " EMP EMPNO ENAME JOB... DEPTNO 7839 KING PRESIDENT BLAKE MANAGER CLARK MANAGER JONES MANAGER
142 A instrução UPDATE Modifique linhas existentes com a instrução UPDATE. UPDATE tabela SET coluna = valor [, [, coluna = valor,...] [WHERE condição]; Atualize mais de uma linha por vez, se necessário. 142
143 Atualizando Linhas em uma Tabela Uma linha ou linhas específicas são modificadas quando você especifica a cláusula WHERE. SQL> UPDATE emp 2 SET deptno = 20 3 WHERE empno = 7782; 1 row updated. Todas as linhas na tabela são modificadas quando você omite a cláusula WHERE. SQL> UPDATE employee 2 SET deptno = 20; rows rows updated. 143
144 Atualizando com Subconsulta de Várias Colunas Atualize o cargo e o departamento do funcionário 7698 para coincidir com o do funcionário SQL> UPDATE emp 2 SET (job, deptno) = 3 (SELECT job, deptno 4 FROM emp 5 WHERE empno = 7499) 6 WHERE empno = 7698; 1 row updated. 144
145 Atualizando Linhas Baseadas em Outra Tabela Use subconsultas em instruções UPDATE para atualizar linhas em uma tabela baseada em valores de outra tabela. SQL> UPDATE employee 2 SET deptno = (SELECT deptno 3 FROM emp 4 WHERE empno = 7788) 5 WHERE job = (SELECT job 6 FROM emp 7 WHERE empno = 7788); 2 rows rows updated. 145
146 Atualizando Linhas: Erro de Restrição de Integridade SQL> UPDATE emp 2 SET deptno = WHERE deptno = 10; UPDATE emp * ERROR at at line 1: 1: ORA-02291: integrity constraint (USR.EMP_DEPTNO_FK) violated - parent key not found Não existe o número de departamento
147 Removendo uma Linha de uma Tabela DEPT DEPTNO DNAME LOC ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 50 DEVELOPMENT DETROIT 60 MIS... " remova uma linha da tabela DEPT " DEPT DEPTNO DNAME LOC ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 60 MIS
148 A Instrução DELETE Você pode remover linhas existentes de uma tabela usando a instrução DELETE. DELETE [FROM] tabela [WHERE condição]; 148
149 Deletando Linhas de uma Tabela Linhas específicas são deletadas quando você especifica a cláusula WHERE. SQL> DELETE FROM department 2 WHERE dname = 'DEVELOPMENT'; 1 row row deleted. -Todas as linhas na tabela serão deletadas se você omitir a cláusula WHERE. SQL> DELETE FROM 4 rows rows deleted. department; 149
150 Deletando Linhas Baseadas em Outra Tabela Use subconsultas em instruções DELETE para remover linhas de uma tabela baseadas em valores de outra tabela. SQL> DELETE FROM employee 2 WHERE deptno = 3 (SELECT deptno 4 FROM dept 5 WHERE dname ='SALES'); 6 rows deleted. 150
151 Deletando Linhas: Erro de Restrição de Integridade SQL> DELETE FROM dept 2 WHERE deptno = 10; DELETE FROM dept * ERROR at at line 1: 1: ORA-02292: integrity constraint (USR.EMP_DEPTNO_FK) violated - child record found Você não pode deletar uma linha que contenha uma chave primária usada como chave estrangeira em outra tabela. 151
152 Transações de Banco de Dados Consistem de uma das seguintes instruções: Instruções DML que fazem uma alteração consistente nos dados Uma instrução DDL Uma instrução DCL 152
153 Transações de Banco de Dados Começa quando for executada a primeira instrução SQL executável Termina com um dos seguintes eventos: COMMIT ou ROLLBACK é emitida Instrução DDL ou DCL é executada (commit automático) O usuário sai O sistema cai 153
154 Vantagens das Instruções COMMIT e ROLLBACK Garantir consistência de dados Visualizar alterações nos dados antes de fazer as alterações permanentemente Agrupar operações relacionadas logicamente 154
155 Controlando Transações Transação INSERT UPDATE INSERT DELETE COMMIT Savepoint A Savepoint B ROLLBACK para Savepoint B ROLLBACK para Savepoint A ROLLBACK 155
156 Estado dos Dados Antes de COMMIT ou ROLLBACK O estado anterior dos dados pode ser recuperado. O usuário atual pode revisar os resultados das operações DML usando a instrução SELECT. Outros usuários não poderão ver os resultados das instruções DML do usuário atual. As linhas afetadas são bloqueadas, outros usuários não poderão alterar os dados dentro das linhas afetadas. 156
157 Estado dos Dados Após COMMIT As alterações nos dados são feitas permanentemente no banco de dados. O estado anterior dos dados é perdido permanentemente. Todos os usuários podem ver os resultados. As linhas afetadas são desbloqueadas, essas linhas estão disponíveis para serem manipuladas por outros usuários. Todos os savepoints são apagados. 157
158 Submetendo Dados a Commit Fazer as alterações. SQL> UPDATE emp 2 SET deptno = WHERE empno = 7782; 1 row row updated. Submeter alterações a commit. SQL> COMMIT; Commit complete. 158
159 Estado dos Dados Após ROLLBACK Descarte todas as alterações pendentes usando a instrução ROLLBACK. As alterações nos dados são desfeitas. O O estado anterior dos dados é restaurado. As linhas afetadas são desbloqueadas. SQL> DELETE FROM 14 rows deleted. SQL> ROLLBACK; Rollback complete. employee; 159
160 Fazendo Roll Back de Alterações para um Marcador Crie um marcador em uma transação atual usando a instrução SAVEPOINT. Faça roll back do marcador usando a instrução ROLLBACK TO SAVEPOINT. SQL> UPDATE... SQL> SAVEPOINT update_done; Savepoint created. SQL> INSERT... SQL> ROLLBACK TO update_done; Rollback complete. 160
161 Rollback no Nível da Instrução Se uma única instrução DML falhar durante a execução, será feito roll back somente dessa instrução. O Oracle Server implementa um savepoint implícito. Todas as outras alterações são mantidas. O usuário deve finalizar as transações explicitamente usando uma instrução COMMIT ou ROLLBACK. 161
162 Consistência na Leitura A consistência na leitura garante sempre uma exibição consistente dos dados. As alterações feitas por um usuário não entram em conflito com as alterações feitas por outro usuário. A consistência na leitura garante que nos mesmos dados: Os leitores não esperem pelos autores Os autores não esperem pelos leitores 162
163 Implementação da Consistência na Leitura Usuário A UPDATE emp SET sal = 2000 WHERE ename = 'SCOTT'; Blocos de dados Segmentos de rollback Usuário B SELECT * FROM emp; Imagem da consistência na leitura dados alterados e dados intactos antes de alterar dados "antigos" 163
164 Bloqueando Bloqueios:: Impedem a interação destrutiva entre transações simultâneas Não requerem ação do usuário Usam automaticamente o nível mais baixo de restrição São mantidos durante a duração da transação Há dois modos básicos: Exclusivo Compartilhado 164
165 Sumário Instrução INSERT UPDATE DELETE COMMIT SAVEPOINT ROLLBACK Descrição Adiciona uma nova linha à tabela Modifica linhas existentes na tabela Remove linhas existentes da tabela Torna permanente todas as alterações pendentes Permite um rollback no marcador do savepoint Descarta todas as alterações nos dados pendentes 165
DML. SQL (Select) Verificando estrutura da tabela
SISTEMAS DE INFORMAÇÃO BANCO DE DADOS 2 SQL (Select) PROF: EDSON THIZON DML É a parte mais ampla da SQL. Permite pesquisar, alterar, incluir e deletar dados da base de dados. São quatro as sentenças mais
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
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
Controle de transações em SQL
Transações Controle de transações em SQL Uma transação é implicitamente iniciada quando ocorre uma operação que modifica o banco de dados (INSERT, UPDATE ou DELETE). Uma transação pode terminar normalmente
Linguagem SQL. Banco de Dados André Luiz do Vale Soares
Linguagem SQL Banco de Dados André Luiz do Vale Soares 1 SQL Structured Query Language Instruções de DML, DDL, VDL, SDL Implementa a maior parte dos operadores da Álgebra Relacional Origem: SEQUEL (Structured
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
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
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
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
Pedro F. Carvalho OCP Oracle 2008.2 10g LINGUAGEM SQL. www.pedrofcarvalho.com.br [email protected] 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
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,
Banco de Dados II. Aula do dia 10/03. Revisão. SQL Estudado até o dia 03/03/2011
Banco de Dados II Aula do dia 10/03 Revisão SQL Estudado até o dia 03/03/2011 Operadores de Comparação Operador = > >= <
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
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
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
www.eversantoro.com.br RECUPERANDO DADOS eversantoro
www.eversantoro.com.br RECUPERANDO DADOS eversantoro Usando funções de uma única linha para personalizar a saída eversantoro Funções SQL Entrada Saída Função arg 1 arg 2 A função executa a ação Valor do
BANCO DE DADOS. SQL Select. Engenharia da Computação. Aula 20. Vamos considerar a tabela EMP para os exemplos a seguir. SELECT colunas FROM tabelas;
Engenharia da Computação BANCO DE DADOS Aula SQL Select SELECT - recupera informação do Banco de Dados. Formato mais simples: SELECT colunas FROM tabelas; Vamos considerar a tabela EMP para os exemplos
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
SQL DML. Frederico D. Bortoloti [email protected]
Banco de Dados I SQL DML Frederico D. Bortoloti [email protected] SQL - DML Os exemplos da aula serão elaborados para o esquema de dados a seguir: Empregado(matricula, nome, endereco, salario, supervisor,
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:
Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho
Laboratório de Banco de Dados II Aula 04 Prof. Érick de Souza Carvalho 1 SQL (Structured Query Language ) Prof. Érick de Souza Carvalho 2 SQL Structured Query Language - Introdução É uma Linguagem para
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
Prof.: Clayton Maciel Costa [email protected]
Programação com acesso a BD Prof.: Clayton Maciel Costa [email protected] 1 Agenda Estrutura Básica de consultas SQL: A cláusula SELECT; A cláusula FROM; A cláusula WHERE. Operação com cadeias
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
DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano
DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS Fábio Roberto Octaviano Conceitos da arquitetura Oracle e da Linguagem SQL Recuperar dados por meio de SELECT Criar relatórios de dados classificados
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
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
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
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
Tarefa Orientada 10 Obter informação a partir de uma tabela
Tarefa Orientada 10 Obter informação a partir de uma tabela Objectivos: Consultar dados de uma tabela Utilizar operadores aritméticos, relacionais, lógicos, de concatenação de cadeias de caracteres, LIKE
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
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;
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
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
Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos
Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos Objetivos: Criar restrições para atributos, chaves primárias e estrangeiras; Explorar consultas SQL com uso de
BANCO DE DADOS SQL (DML: SELECT, INSERT, UPDATE, DELETE)
BANCO DE DADOS SQL (DML: SELECT, INSERT, UPDATE, DELETE) Prof. Edson Thizon DML É a parte mais ampla da SQL. Permite pesquisar, alterar, incluir e deletar dados da base de dados. São quatro as sentenças
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
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]
1. FUNDAMENTAÇÃO TEÓRICA 4
1. FUNDAMENTAÇÃO TEÓRICA 4 1.1. BANCO DE DADOS 4 1.2. BANCOS DE DADOS RELACIONAIS 5 1.3. SISTEMAS GERENCIADORES DE BANCOS DE DADOS 9 1.4. OBJETOS DO BANCO DE DADOS. 11 1.5. USUÁRIOS DO BANCO DE DADOS 11
BANCO DE DADOS II LINGUAGEM SQL - STRUCTURED QUERY LANGUAGE. Prof.: Elvis Bloemer Meurer
BANCO DE DADOS II LINGUAGEM SQL - STRUCTURED QUERY LANGUAGE Prof.: Elvis Bloemer Meurer ORLEANS, 2011 1 CAPITULO 6: FUNÇÕES DE GRUPO...4 6.1 OBJETIVOS DESTE CAPÍTULO...4 6.2 FUNÇÕES DISPONÍVEIS...4 6.3
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
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
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
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
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
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
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
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
1. Sua primeira tarefa é determinar a estrutura da tabela DEPARTMENTS e seu conteúdo.
Exercícios (LAB SQL) AULA 01 (INTRODUÇÃO SELECT) Você foi admitido como programador SQL da XYZW Corporation. Sua primeira tarefa é criar alguns relatórios com base nos dados das tabelas de recursos humanos.
SISTEMAS DE INFORMAÇÃO BANCO DE DADOS SQL PROF: EDSON THIZON
SISTEMAS DE INFORMAÇÃO BANCO DE DADOS SQL PROF: EDSON THIZON Histórico Entre 1974 e 1979, o San José Research Laboratory da IBM desenvolveu um SGDB relacional que ficou conhecido como Sistema R. Para a
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:
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
Á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
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 [email protected] Projeto de banco de dados Modelagem Conceitual (independe da implementação)
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]
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
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,
PHP INTEGRAÇÃO COM MYSQL PARTE 1
INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira [email protected] Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança
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
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
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
Introdução aos cálculos de datas
Page 1 of 7 Windows SharePoint Services Introdução aos cálculos de datas Aplica-se a: Microsoft Office SharePoint Server 2007 Ocultar tudo Você pode usar fórmulas e funções em listas ou bibliotecas para
Introdução ao SQL. O que é SQL?
Introdução ao SQL 1 O que é SQL? Inicialmente chamada de Sequel, SQL (Structured Query Language), é a linguagem padrão utilizada para comunicar-se com um banco de dados relacional. A versão original foi
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
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
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
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)
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
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
Histórico de revisões
Apostila 3 Histórico de revisões Data Versão Descrição Autor 30/09/2011 1.0 Criação da primeira versão HEngholmJr CONTEÚDO Exclusão de registros Consultas por Dados de Resumo Group by / Having Funções
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
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
DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano
DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS Fábio Roberto Octaviano Agrupamento de Dados Após o término do Capítulo: Identificar as funções de agrupamento. Descrever o uso das funções
António Rocha Nuno Melo e Castro
António Rocha Nuno Melo e Castro SQL- Strutured Query Language é a linguagem mais usada nas bases dados relacionais. Originalmente desenvolvida pela IBM Actualmente é um standard, o mais recente é o 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,
FUNCTION ) RETURNS INTEGER AS $$ DECLARE
PERFORM O comando PERFORM permite a execução de um comando SELECT desprezando o resultado do comando. PERFORM query; A variável especial FOUND é definida como verdadeiro se a instrução produzir pelo menos
O que são Bancos de Dados?
SQL Básico Liojes de Oliveira Carneiro [email protected] www.professor-liojes.blogspot.com O que são Bancos de Dados? É o software que armazena, organiza, controla, trata e distribui os dados
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
DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano
DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS Fábio Roberto Octaviano Agrupando Dados Relacionados Rollup, Cube e Grouping Sets Após o término do Capítulo: Utilizar ROLLUP para gerar sub-totais.
Tarefa Orientada 19 Triggers
Tarefa Orientada 19 Triggers Objectivos: Criar triggers AFTER Criar triggers INSTEAD OF Exemplos de utilização Os triggers são um tipo especial de procedimento que são invocados, ou activados, de forma
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
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.
Bases de Dados 2007/2008. Aula 1. Referências
Bases de Dados 2007/2008 Aula 1 Sumário 1. SQL Server 2000: configuração do acesso ao servidor. 1.1. SQL Server Service Manager. 1.2. SQL Server Enterprise Manager. 1.3. SQL Query Analyzer. 2. A base de
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 [email protected] IF685
Os dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas.
MySQL 101 Recapitulando Os dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas. As bases de dados são úteis quando necessitamos
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
Tarefa Orientada 11 Junção Interna
Tarefa Orientada 11 Junção Interna Objectivos: Junção Interna (INNER JOIN) Junção Interna A operação de junção interna (INNER JOIN) é utilizada para combinar colunas de duas ou mais tabelas. O resultado
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
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
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,
SQL92 DDL( RIS, ACTUALIZAÇÕES E VISTAS) DML (QUERIES, SUBQUERIES,JUNÇÕES, E OPERAÇÕES SOBRE CONJUNTOS)
SQL92 DDL( RIS, ACTUALIZAÇÕES E VISTAS) DML (QUERIES, SUBQUERIES,JUNÇÕES, E OPERAÇÕES SOBRE CONJUNTOS) SQL SQL, é uma linguagem de programação que foi desenvolvida para questionar bases de dados relacionais
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:
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
