A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Conceitos básicos de SQL

Apresentações semelhantes


Apresentação em tema: "Conceitos básicos de SQL"— Transcrição da apresentação:

1 Conceitos básicos de SQL
Professor: Virgílio Fries Müller www. vfm.com.br Conceitos básicos de SQL Schedule: Timing Topic 40 minutes Lecture 25 minutes Practice 65 minutes Total

2 Criando e Manipulando Tabelas
Schedule: Timing Topic 30 minutes Lecture 20 minutes Practice 50 minutes Total

3 Tabela Unidade básica de armazenamento da base de dados, formada por colunas e linhas (tuplas)

4 Criando Tabelas Criando a tabela depto.
SQL> CREATE TABLE depto 2 (depto_num NUMBER(2), 3 depto_nom VARCHAR2(14), 4 depto_loc VARCHAR2(13)); Table created. Listando a estrutura da tabela criada. SQL> DESCRIBE depto Name Null? Type DEPTO_NUM NOT NULL NUMBER(2) DEPTO_NOME VARCHAR2(14) DEPTO_LOC VARCHAR2(13)

5 CRIAÇÃO DA TABELA CLIENTE
CREATE TABLE CLIENTE(     CODIGO INTEGER,     NOME VARCHAR(10))

6 CRIAÇÃO DA TABELA CLIENTE COM CHAVE PRIMÁRIA.
Alter table cliente Add constraint PK_CLIENTE Primary key (codigo)

7 CRIAÇÃO DA TABELA CLIENTE – GENERATOR PARA UTILIZAÇÃO DE AUTO-INCREMENTO.
CREATE SEQUENCE GEN_CLIENTE_ID

8 CRIAÇÃO DA TABELA CLIENTE
CREATE TABLE CLIENTE(     CODIGO INTEGER,     NOME VARCHAR(10))

9 TRIGGER PARA AUTO- INCREMENTO NA TABELA CLIENTE
create trigger CLIENTE_bi for CLIENTE active before insert position 0 as begin   if (new.codigo is null) then     new.codigo = gen_id(gen_CLIENTE_id,1); end

10 Select Schedule: Timing Topic 30 minutes Lecture 20 minutes Practice
50 minutes Total

11 O Comando SELECT SELECT identifica as colunas
SELECT [DISTINCT] {*, column [alias],...} FROM table; SELECT identifica as colunas FROM identifica as tabelas

12 Selecionando linhas SQL> SELECT * 2 FROM depto;
SQL> SELECT depto_num, depto_loc 2 FROM depto; SQL> SELECT enome, sal, sal+300 2 FROM emp; SQL> SELECT enome, sal, 12*sal+100 2 FROM emp; SQL> SELECT deptno, dname, loc 2 FROM dept;

13 Definindo Alias para Colunas
SQL> SELECT enome AS nome, sal AS salario 2 FROM emp; NOME SALARIO SQL> SELECT enome "Nome", sal*12 “Salario Anual" 3 FROM emp; Nome Salario Anual

14 Eliminando Linhas Duplicadas
DISTINCT SQL> SELECT DISTINCT depto_num 2 FROM emp; DEPTO_NUM 10 20 30 SQL> SELECT DISTINCT deptno, job 2 FROM emp;

15 Restringindo consultas e ordenando resultados

16 Utilizando a Cláusula WHERE
SQL> SELECT enome, cargo, depto_num 2 FROM emp 3 WHERE cargo='CAIXA'; ENOME CARGO DEPTO_NUM RONALDO CAIXA MANUEL CAIXA PAULO CAIXA LUCIANO CAIXA

17 Operadores de Comparação
= > >= < <= <> Significado Igual a Maior que Maior ou igual a Menor que Menor ou igual a Diferente de

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

19 Operador BETWEEN SQL> SELECT enome, sal 2 FROM emp
3 WHERE sal BETWEEN 1000 AND 1500; ENOME SAL MARIA SERGIO MATHEUS PAULO LUCIANO limite inferior superior

20 Operador IN SQL> SELECT enum, enome, sal, ger 2 FROM emp
3 WHERE ger IN (7902, 7566, 7788); ENUM ENOME SAL GER 7902 JOSE 7369 MANUEL 7788 FABIO 7876 PAULO

21 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 2 FROM emp 3 WHERE enome LIKE ‘M%'; SQL> SELECT ename, hiredate 2 FROM emp 3 WHERE hiredate LIKE '%81';

22 Operador IS NULL Testando valores nulos (null)
SQL> SELECT enome, ger 2 FROM emp 3 WHERE ger IS NULL; ENOME GER CARLOS SQL> SELECT ename, job, comm 2 FROM emp 3 WHERE comm IS NULL; ENAME JOB COMM KING PRESIDENT BLAKE MANAGER CLARK MANAGER ...

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

24 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

25 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 JAN-83 FABIO ANALISTA DEC-82 LUCIANO CAIXA JAN-82 RONALDO CAIXA DEC-81 JOSE ANALISTA DEC-81 CARLOS PRESIDENTE NOV-81 MARIA VENDEDOR SEP-81 ... 14 rows selected.

26 Manipulando dados

27 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...]);

28 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', ‘RECIFE'); 1 row created.

29 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];

30 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. Note: The EMPLOYEE table has the same data as the EMP table. SQL> SELECT ename, deptno 2 FROM employee; ENAME DEPTNO KING BLAKE CLARK JONES MARTIN ALLEN TURNER ... 14 rows selected.

31 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. SQL> SELECT * 2 FROM department 3 WHERE dname = 'DEVELOPMENT'; no rows selected. SQL> DELETE FROM emp 2 WHERE hiredate > TO_DATE(' ', 'DD.MM.YY'); 1 row deleted.

32 Exibindo dados de múltiplas tabelas

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

34 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, d.depto_num, d.depto_loc 3 FROM emp e, depto d 4 WHERE e.depto_num = d.depto_num;

35 Funções de Grupo (Agregação)

36 O que são Funções de Grupo?
Funções de grupo operam em conjuntos de linhas, produzindo um resultado por grupo. EMP DEPTO_NUM SAL “o maior salário da tabela EMP” MAX(SAL) 5000

37 Tipos de Funções de Grupo
AVG (média) COUNT (contagem) MAX (máximo) MIN (mínimo) STDDEV SUM (soma) VARIANCE (variação)

38 Utilizando Funções de Grupo
SELECT column, group_function(column) FROM table [WHERE condition] [ORDER BY column]; Class Management Note Stress the use of DISTINCT and group functions ignoring null values. ALL is the default and is very rarely specified.

39 Funções AVG e SUM Utilize o AVG e SUM apenas para dados numéricos
SQL> SELECT AVG(sal), MAX(sal), 2 MIN(sal), SUM(sal) 3 FROM emp 4 WHERE cargo LIKE ‘VEND%'; AVG(SAL) MAX(SAL) MIN(SAL) SUM(SAL)

40 Funções MIN e MAX Utilize MIN e MAX para qualquer tipo de dado
SQL> SELECT MIN(dtinicio), MAX(dtinicio) 2 FROM emp; MIN(DTINI MAX(DTINI 17-DEZ JAN-83 SQL> SELECT MIN(ename), MAX(ename) 2 FROM emp; MIN(ENAME) MAX(ENAME) ADAMS WARD

41 Função COUNT COUNT(*) retorna o número de linhas na tabela
SQL> SELECT COUNT(*) 2 FROM emp 3 WHERE depto_num = 30; COUNT(*) 6 Class Management Note Demo: l5count1.sql, l5count2.sql Purpose: To illustrate using the COUNT(*) and COUNT(expr) functions.

42 Função COUNT COUNT(coluna) retorna o número de linhas não nulas da tabela SQL> SELECT COUNT(comis) 2 FROM emp 3 WHERE depto_num = 30; COUNT(COMIS) 4 SQL> SELECT COUNT(deptno) 2 FROM emp; COUNT(DEPTNO) 14 SQL> SELECT COUNT(DISTINCT (deptno)) 2 FROM emp; COUNT(DISTINCT(DEPTNO)) 3

43 Criando Grupos de Dados
EMP DEPTO_NUM SAL DEPTO_NUM AVG(SAL) 2175 “média salarial por departamento”

44 Criando Grupos de Dados: A Cláusula GROUP BY
SELECT column, group_function(column) FROM table [WHERE condition] [GROUP BY group_by_expression] [ORDER BY column]; Divida as linhas de uma tabela em pequenos grupos usando a cláusula GROUP BY.

45 A Cláusula GROUP BY Colunas utilizadas em funções de grupo não precisam estar listadas no GROUP BY. SQL> SELECT AVG(sal) 2 FROM emp 3 GROUP BY depto_num; AVG(SAL) 2175 Class Management Note Demonstrate the query with and without the DEPTNO in the SELECT statement. SQL> SELECT deptno, AVG(sal) 2 FROM emp 3 GROUP BY deptno 4 ORDER BY AVG(sal); DEPTNO AVG(SAL)

46 Utilizando GROUP BY em Múltiplas Colunas
SQL> SELECT depto_num, cargo, sum(sal) 2 FROM emp 3 GROUP BY depto_num, cargo; DEPTO_NUM CARGO SUM(SAL) 10 CAIXA 10 GERENTE 10 PRESIDENTE 20 ANALISTA 20 CAIXA ... 9 rows selected.

47 FIM! POR FAVOR ESTUDE-ME EM CASA!
Schedule: Timing Topic 30 minutes Lecture 20 minutes Practice 50 minutes Total


Carregar ppt "Conceitos básicos de SQL"

Apresentações semelhantes


Anúncios Google