SLIDE AULA

SLIDE AULA


DisciplinaModelagem de Dados2.874 materiais37.460 seguidores
Pré-visualização10 páginas
Alter TABLE departamento 
drop column nome;
Table altered.
SQL> Alter TABLE departamento 
add nome varchar(20);
Table altered.
*
O Comando INSERT
Adicione linhas a uma tabela utilizando o comando INSERT. 
O comando INSERT insere apenas uma linha por vez.
Não esqueça o COMMIT
INSERT INTO	table [(column [, column...])]
VALUES		(value [, value...]);
*
Inserindo Novas Linhas
Insira uma nova linha informando os valores para cada coluna da tabela.
Liste os valores na mesma ordem das colunas na tabela. 
Opcionalmente, liste as colunas na cláusula do INSERT. 
 
Strings e datas devem ser informando entre aspas simples.
SQL> INSERT INTO depto (depto_num, depto_nome, depto_loc)
 2 VALUES	 (50, 'DESENVOLVIMENO', \u2018RECIFE');
1 row created.
*
SQL> INSERT INTO	depto (depto_num, depto_nome )
 2 VALUES		(60, \u2018REC HUMANOS');
1 row created.
SQL> INSERT INTO	depto
 2 VALUES		(70, \u2018JURIDICO', NULL);
1 row created.
Inserindo Linhas com Nulls
Implicitamente: omita o nome da coluna da lista de colunas.
Explicitamente: especifique o valor NULL.
*
O Comando UPDATE
Modificando linhas existentes com o comando UPDATE. 
Modifique mais de uma linha por vez especificando uma condição na cláusula WHERE.
Não esqueça o COMMIT
UPDATE		table
SET		column = value [, column = value]
[WHERE 		condition];
*
Atualizando linhas em uma tabela
Linhas específicas podem ser modificadas utilizando a cláusula WHERE.
Todas as linhas da tabela são modificadas se a cláusula WHERE for omitida.
SQL> UPDATE 	emp
 2 SET 	depto_num = 20
 3 WHERE 	enum = 7782;
1 row updated.
SQL> UPDATE 	emp
 2 SET 	depto_num = 20;
14 rows updated.
*
Eliminando Linhas de uma Tabela
Linhas específicas podem ser eliminadas utilizando a cláusula WHERE.
Todas as linhas da tabela são eliminadas se a cláusula WHERE for omitida.
SQL> DELETE FROM	depto
 2 WHERE 		depto_nome = 'DESENVOLVIMENTO'; 
1 row deleted.
SQL> DELETE FROM	depto;
4 rows deleted.
*
*
O Comando SELECT
SELECT	[DISTINCT] {*, column [alias],...}
FROM	table;
SELECT identifica as colunas
FROM identifica as tabelas
*
*
Selecionando linhas
 
SQL> SELECT *
 2 FROM 	depto;
*
*
 
 
 
 
Definindo Alias para Colunas
 
SQL> SELECT enome AS nome, sal AS salario
 2 FROM emp;
NOME SALARIO
------------- --------- ...
SQL> SELECT enome "Nome",
 2 sal*12 \u201cSalario Anual"
 3 FROM emp;
*
*
 
Eliminando Linhas Duplicadas
SQL> SELECT DISTINCT depto_num
 2 FROM emp;
DEPTO_NUM
---------
 10
 20
 30
 
DISTINCT
*
Utilizando a Cláusula WHERE
SQL> SELECT enome, cargo, depto_num
 2 FROM emp
 3 WHERE cargo='CAIXA';
ENOME CARGO DEPTO_NUM
---------- --------- ---------
RONALDO CAIXA 30
MANUEL CAIXA 20
PAULO CAIXA 20
LUCIANO CAIXA 10
*
Operadores de Comparação
Operador
=
>
 >=	
<
 <=	
<>
Significado
Igual a
Maior que
Maior ou igual a	
Menor que
Menor ou igual a
Diferente de
*
Outros Operadores
Operador
BETWEEN ...AND...
IN(lista)
LIKE
IS NULL
Significado
Entre dois valores (inclusive)	 
Satisfaz uma lista de valores 
Satisfaz um padrão de caracteres
É um valor nulo (null) 
*
Operador BETWEEN
ENOME SAL
---------- ---------
MARIA 1250
SERGIO 1500
MATHEUS 1250
PAULO 1100
LUCIANO 1300
SQL> SELECT	enome, sal
 2 FROM 	emp
 3 WHERE	sal BETWEEN 1000 AND 1500;
*
Operador IN
SQL> SELECT	enum, enome, sal, ger
 2 FROM 	emp
 3 WHERE	ger IN (7902, 7566, 7788);
 ENUM ENOME SAL GER
--------- ---------- --------- ---------
 7902 JOSE 3000 7566
 7369 MANUEL 800 7902
 7788 FABIO 3000 7566
 7876 PAULO 1100 7788
*
SQL> SELECT	enome
 2 FROM 	emp
 3 WHERE	enome LIKE \u2018M%';
Operador LIKE
Utilize o operador LIKE para realizar pesquisas por padrões (wildcards).
% substitui zero ou mais caracteres
_ substitui um único caracter
*
SQL> SELECT enome, ger
 2 FROM emp
 3 WHERE ger IS NULL;
ENOME GER
---------- ---------
CARLOS
Operador IS NULL
Testando valores nulos (null)
*
Operadores Lógicos
Operador
AND OR
 NOT
Significado
Retorna TRUE se a condição de ambos os componentes for TRUE
Retorna TRUE se a condição de um dos componentes for TRUE
Retorna TRUE se a condição for FALSE (vise-versa) 
*
Operador NOT
SQL> SELECT enome, cargo
 2 FROM emp
 3 WHERE cargo NOT IN('CAIXA','GERENTE','ANALISTA');
ENOME CARGO
---------- ---------
CARLOS PRESIDENTE
MARIA VENDEDOR
CELSO 	 VENDEDOR
SERGIO 	 VENDEDOR
MATHEUS 	 VENDEDOR
*
Cláusula ORDER BY
SQL> SELECT 	 enome, cargo, depto_num, dtinicio
 2 FROM 	 emp
 3 ORDER BY dtinicio DESC;
ENOME CARGO DEPTO_NUM DTINICIO
---------- --------- --------- ---------
PAULO CAIXA 20 12-JAN-83
FABIO ANALISTA 20 09-DEC-82
LUCIANO CAIXA 10 23-JAN-82
RONALDO CAIXA 30 03-DEC-81
JOSE ANALISTA 20 03-DEC-81
CARLOS PRESIDENTE 10 17-NOV-81
MARIA VENDEDOR 30 28-SEP-81
...
14 rows selected.
*
Joins
Utilize uma junção para consultar dados de mais de uma tabela.
Especifique a condição de junção na cláusula WHERE.
Informe o nome da tabela junto com o nome da coluna, se tabelas diferentes possuírem colunas com os mesmos nomes.
SELECT	table1.column, table2.column
FROM	table1, table2
WHERE	table1.column1 = table2.column2;
*
Criando Alias para Tabelas
SQL> SELECT emp.enum, emp.enome, emp.depto_num, 
 2	 depto.depto_num, depto.depto_loc
 3 FROM emp, depto
 4 WHERE emp.depto_num = depto.depto_num;
SQL> SELECT e.enum, e.enome, e.depto_num, 
 2 d.depto_num, d.depto_loc
 3 FROM emp e, depto d
 4 WHERE e.depto_num = d.depto_num;
*
O que são Funções de Grupo?
Funções de grupo operam em conjuntos de linhas, produzindo um resultado por grupo.
EMP
\u201co maior salário da tabela EMP\u201d
DEPTO_NUM SAL
--------- ---------
 10 2450
 10 5000
 10 1300
 20 800
 20 1100
 20 3000
 20 3000
 20 2975
 30 1600
 30 2850
 30 1250
 30 950
 30 1500
 30 1250
 MAX(SAL)
---------
 5000
*
Tipos de Funções de Grupo
AVG (média)
COUNT (contagem)
MAX (máximo)
MIN (mínimo)
STDDEV 
SUM (soma)
VARIANCE (variação)
*
Utilizando Funções de Grupo
SELECT	column, group_function(column)
FROM		table
[WHERE	condition]
[ORDER BY	column];
*
AVG(SAL) MAX(SAL) MIN(SAL) SUM(SAL)
-------- --------- --------- ---------
 1400 1600 1250 5600
SQL> SELECT	AVG(sal), MAX(sal),
 2		MIN(sal), SUM(sal)
 3	FROM	emp
 4	WHERE	cargo LIKE \u2018VEND%';
Funções AVG e SUM
Utilize o AVG e SUM apenas para dados numéricos
*
 
SQL> SELECT	MIN(dtinicio), MAX(dtinicio)
 2 FROM	emp;
MIN(DTINI MAX(DTINI
--------- ---------
17-DEZ-80 12-JAN-83
Funções MIN e MAX
Utilize MIN e MAX para qualquer tipo de dado
*
 
 COUNT(*)
---------
 6
SQL> SELECT	COUNT(*)
 2 FROM	emp
 3 WHERE	depto_num = 30;
Função COUNT
COUNT(*) retorna o número de linhas na tabela
*
COUNT(COMIS)
------------
 4
SQL> SELECT	COUNT(comis)
 2 FROM	emp
 3 WHERE	depto_num = 30;
Função COUNT
COUNT(coluna) retorna o número de linhas não nulas da tabela
*
Criando Grupos de Dados 
EMP
\u201cmédia salarial por departamento\u201d
DEPTO_NUM SAL
--------- ---------
 10 2450
 10 5000
 10 1300
 20 800
 20 1100
 20 3000
 20 3000
 20 2975
 30 1600
 30 2850
 30 1250
 30 950
 30 1500
 30 1250
 DEPTO_NUM AVG(SAL)
 --------- ---------
 10 2916.6667
 20 2175
 30 1566.6667
*
Criando