Documente Academic
Documente Profesional
Documente Cultură
Ana Leda
Banco de Dados II
Independncia de fabricante
incorporada em quase todos os SGBDs em seu padro
Banco de Dados II
em treinamento.
Facilidade no entendimento
comandos escritos em um ingls estruturado de alto nvel.
Consulta interativa
acesso rpido aos dados atravs de comandos interativos.
Banco de Dados II
usurios.
Banco de Dados II
Banco de Dados II
SQL
SQL PLUS
SQL
Command
Comando SQL
ao trmino do comando SQL deve-se acrescentar ponto
e vrgula(;) e pressionar <Enter> para ser executado
imediatamente.
SQL*BUFFER
parte da memria gerenciada pelo SQL*PLUS, que
armazena um comando sql por vez.
todo comando simples realocado no SQL*BUFFER,
toda vez que um novo comando executado.
Banco de Dados II
Banco de Dados II
Banco de Dados II
10
Banco de Dados II
11
Comandos SQL*Plus
Comandos de Execuo
/
Execute
Run
Comando de Edio
Edit
Banco de Dados II
12
Comandos SQL*Plus
Banco de Dados II
13
Banco de Dados II
14
Char ( S )
Alfanumrico de tamanho fixo, mximo 2000 caracteres.
Varchar2 ( S )
Alfanumrico com tamanho mximo de 4000 caracteres.
O que no for utilizado no ocupa espao no banco de
dados.
Varchar ( S)
Mesmo que Varchar2.
Long
Similar ao Varchar2, porm, o tamanho mximo de 2
gigabytes. O valor no pode ser informado. S pode
existir um por tabela e no pode ser usado em consultas.
Banco de Dados II
15
Number (P,S)
Valor numrico com tamanho mximo de 38 caracteres,
Date
Valor de data e hora (01/01/4712 AC at 31/12/4712
DC).
Banco de Dados II
16
SQL - Simbologia
Simbologia
Explicao
PK
Chave Primria
FK
Chave Estrangeira
FK1, FK2
FK1, FK2
NN
U
U1, U2
17
Constraint ou Restrio
representa um mecanismo capaz de implementar
Banco de Dados II
18
Descrio
Not Null
Unique
Primary Key
Foreign Key
(references)
Check
19
SQL - Comandos
Banco de Dados II
20
SQL - Comandos
21
SQL - Comandos
Oracle;
nome da tabela no pode ser igual ao nome de um outro
Banco de Dados II
22
SQL - Comandos
Create Table
Exemplo 1:
Banco de Dados II
23
SQL - Comandos
Create Table
Exemplo 2:
24
SQL - Comandos
Comandos SQL*PLUS
/
Banco de Dados II
25
SQL - Comandos
Banco de Dados II
26
SQL - Comandos
Descrio
Owner
Constraint_Na
me
Nome da constraint.
Table_Name
Constraint_Typ
e
Tipo de definio de
constraint:
C Check or Not Null
P Primary Key
R Foreign Key
de Dados II
U Banco
Unique
27
SQL - Comandos
Descrio
Search_Condition
Texto da condio de
procura da constraint
tipo Check.
R_Owner
R_Constraint_Nam
e
28
SQL - Comandos
DESCRIBE <nome-tabela>
Visualizar constraints
Sintaxe:
DESCRIBE user_constraints
onde USER_CONSTRAINTS uma tabela interna do
dicionrio Oracle.
Banco de Dados II
29
SQL - Comandos
Visualizar objetos
Sintaxe:
DESCRIBE user_objects
Mostra os objetos disponveis na base de dados:
Name
Null Type
------------- -----OBJECT_NAME VARCHAR2(128)
OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(13)
CREATED
DATE
LAST_DDL_TIME
DATE
TIMESTAMP VARCHAR2(75)
STATUS
VARCHAR2(7)
Banco de Dados II
30
SQL - Comandos
Banco de Dados II
31
SQL - Comandos
Banco de Dados II
32
SQL - Comandos
ALTER TABLE
ADD
ADD CONSTRAINT
MODIFY
DROP CONSTRAINT
DROP COLUMN
RENAME COLUMN
RENAME
Banco de Dados II
33
SQL - Comandos
Banco de Dados II
34
SQL - Comandos
35
SQL - Comandos
Banco de Dados II
36
SQL - Comandos
Banco de Dados II
37
SQL - Comandos
Banco de Dados II
38
SQL - Comandos
Banco de Dados II
39
SQL - Comandos
Banco de Dados II
40
SQL - Comandos
Banco de Dados II
41
SQL - Comandos
42
SQL - Comandos
Banco de Dados II
43
SQL - Comandos
44
SQL - Comandos
tabela. A
omitida quando
Banco de Dados II
45
SQL - Comandos
Banco de Dados II
46
SQL - Comandos
UPDATE <Tabela>
SET <Coluna> = <Novo Valor>
[, <Coluna> = <Novo Valor>...]
WHERE <Condio>
Banco de Dados II
47
SQL - Comandos
Update
Na clusula SET so especificados os campos que tero seu
Banco de Dados II
48
SQL - Comandos
Update
Exemplo 1: Atualizar todos os salrios aumentando 5%.
para
10000.
UPDATE Funcionario SET Salario = 10000;
Banco de Dados II
49
SQL - Comandos
os
1000.
Banco de Dados II
50
SQL - Comandos
51
SQL - Comandos
Delete
Quando usado com o WHERE, pode especificar quais
linhas apagar;
O WHERE do DELETE comporta quase todas as
Banco de Dados II
52
SQL - Comandos
Delete
Exemplos:
Banco de Dados II
53
SQL - Comandos
Delete
O teste da condio feito antes das linhas serem
removidas.
Na consulta a seguir, se isso no fosse feito, poderamos
Banco de Dados II
54
SQL - Transaes
Commit
Finaliza a transao corrente, tornando permanente todas
as mudanas pendentes no banco de dados feitas pelos
comandos insert, update e delete.
Toda mudana de dados efetuada durante a transao
temporria at que a transao seja efetivada, ou seja,
dado um COMMIT.
Sintaxe:
COMMIT
Banco de Dados II
55
SQL - Transaes
Show autocommit
Mostra como est o commit, se ON ou OFF.
Sintaxe:
SHOW AUTOCOMMIT
Set autocommit on
Um Commit feito a cada insero, alterao e deleo.
Set autocommit of
necessrio fazer o Commit para efetivar as transaes
pendentes.
Banco de Dados II
56
SQL - Transaes
Rollback
Finaliza a transao corrente descartando todas as
mudanas pendentes.
Sintaxe:
ROLLBACK
Banco de Dados II
57
SQL - Comandos
Banco de Dados II
58
SQL - Comandos
START nome_arquivo
Exemplo: START a:consulta1
@a:consulta1.sql
Banco de Dados II
59
SQL - Comandos
Sintaxe:
SELECT <coluna1>, <coluna2>,...,<colunan>
FROM <tabela1>, <tabela2>,...<tabelam>
Banco de Dados II
60
SQL - Comandos
Comando SELECT
61
SQL - Comandos
cabealho da coluna
correspondente.
Banco de Dados II
62
SQL - Comandos
no
classificado com o cabealho
Classificao para
todos os
empregados.
SELECT ename , sal, 'no classificado' as
Classificao FROM Emp
Banco de Dados II
63
SQL - Comandos
ENAME
---------SMITH
ALLEN
WARD
JONE S
MARTIN
BLAKE
CLARK
SCOTT
KING
SAL
------800
1600
1250
2975
1250
2850
2450
3000
5000
CLASSIFICAO
-------------------no classificado
no classificado
no classificado
no classificado
no classificado
no classificado
no classificado
no classificado
no classificado
Banco de Dados II
64
SQL - Comandos
Banco de Dados II
65
SQL - Comandos
CLERK
ALLEN 7499
SALESMAN
WARD
SALESMAN
7521
JONES 7566
MANAGER
MARTIN
SALESMAN
7654
Banco de Dados II
66
SQL - Comandos
by
Exemplo 1:
Banco de Dados II
67
SQL - Comandos
Banco de Dados II
68
SQL - Comandos
Banco de Dados II
69
SQL - Comandos
Banco de Dados II
70
SQL - Comandos
Operador
Descrio
Igual
<>
Diferente
>
Maior que
<
Menor que
>=
Maior ou igual
<=
Menor ou igual
Between and
Comparaes entre
dois valores
Banco de Dados II
71
SQL - Comandos
Operador
Descrio
No comparao
entre dois valores
IN (Lista)
Igual a qualquer
membro da lista
Not IN (Lista)
Diferente a qualquer
membro da lista
Like
Banco de Dados II
72
SQL - Comandos
73
SQL - Comandos
Banco de Dados II
74
SQL - Comandos
between
SELECT Ename Nome, Job Cargo from Emp
WHERE hiredate between 01-JAN-87 AND 31-DEC-87
SQL> /
NOME
CARGO
---------------King
President
Allen
Salesman
Ward
Salesman
Martin
Salesman
Turner
Salesman
Banco de Dados II
75
SQL - Comandos
com
intervalo, pode-
Banco de Dados II
76
SQL - Comandos
Banco de Dados II
77
SQL - Comandos
utilizando
o comparador LIKE
Banco de Dados II
78
SQL - Comandos
utilizando
o comparador IN
Banco de Dados II
79
SQL - Comandos
80
SQL - Comandos
Banco de Dados II
81
SQL - Comandos
comando select.
Exemplo 3:
Banco de Dados II
82
CONCAT (char1,char2)
Exemplo:
83
LOWER(Ename)
-------------------smith
allen
ward
jones
Banco de Dados II
84
UPPER(char)
Exemplo:
Banco de Dados II
85
SUBSTR(char,m,n)
Exemplo:
86
Descrio
Data + Nmero
Data - Nmero
Data - Data
Retorna o nmero de
dias entre as datas
Banco de Dados II
87
Exemplo:
Select ename, hiredate, hiredate + 90 from Emp
where deptno = 30;
ename
hiredate
hiredate+90
----------------- --------------------------ALLEN
20-FEB-81
21-MAY-81
WARD
MARTIN
BLAKE
TURNER
JAMES
22-FEB-81
23-MAY-81
28-SEP-81
27-DEC-81
01-MAY-81
30-JUL-81
08-SEP-81
07-DEC-81
03-DEC-81
03-MAR-82
Banco de Dados II
88
SEMANAS
---------------
17-DEC-80
1080.8207
20-FEB-81
1071.535
22-FEB-81
1071.2493
02-APR-81
1065.6778
28-SEP-81
1040.1064
Banco de Dados II
89
ADD_MONTH
------------------
17-DEC-80
17-JUN-81
20-FEB-81
20-AUG-81
22-FEB-81
22-AUG-81
02-APR-81
02-OCT-81
28-SEP-81
28-MAR-82
Banco de Dados II
90
MONTHS_BETWEEN(
--------------------------
17-DEC-80
248.57263
20-FEB-81
246.47586
22-FEB-81
246.41134
02-APR-81
245.0565
Banco de Dados II
91
Descrio
DD
Dia do ms
DY
DAY
DDSP
MM
Nmero do ms
MON
MONTH
YY
YYYY
HH:MI:SS
FM
HH24
92
Admisso
--------------12/80
02/81
02/81
04/81
09/81
05/81
06/81
Banco de Dados II
93
Admisso
---------------------------17 de december 1980
20 de february 1981
22 de february 1981
2 de april 1981
28 de september 1981
1 de may 1981
9 de june 1981
Banco de Dados II
94
HIREDATE
--------------03-JUL-93
Banco de Dados II
95
Exemplo:
Round (1456.8976)
1457
Banco de Dados II
96
Exemplo:
Trunc (1456.8976)
1456
Banco de Dados II
97
Banco de Dados II
98
Banco de Dados II
99
Banco de Dados II
100
Banco de Dados II
101
Banco de Dados II
102
GROUP BY
Exemplo:
N de Funcionrios
----------------------3
2
1
1
1
1
Banco de Dados II
103
ERROR at line 1:
ORA-00937: not a single-group group function
Banco de Dados II
104
Cargo
-----------------Gerente
Engenheiro
Engenheiro
Mecnico
Mecnico
Gerente
Mecnico
N de Funcionrios
----------------------1
2
2
1
1
1
1
Banco de Dados II
105
Banco de Dados II
106
Soma Sal
----------------12300.00
8200.00
2500.00
Banco de Dados II
107
Soma Sal
----------------8200.00
Banco de Dados II
108
SQL Sub-Queries
109
SQL Sub-Queries
Banco de Dados II
110
SQL Sub-Queries
Banco de Dados II
111
SQL Join
Banco de Dados II
112
SQL Join
Banco de Dados II
113
SQL Join
114
SQL Join
Exemplo:
115
SQL Join
Banco de Dados II
116
SQL Join
SQL-86
SELECT E.ename, E2.ename Gerente FROM emp E, emp E2
WHERE E.empno = E2.empnoger;
SQL-92
SELECT E.ename, E2.ename Gerente
FROM emp E INNER JOIN emp E2 on E.empno = E2.empnoger;
Banco de Dados II
117
SQL Join
118
SQL Union
Repeties so excludas
Exemplo:
SELECT ename from emp UNION SELECT dname from dept;
ENAME
---------Accounting
Adams
Allen
Clark
Ford
King
Sales
Scott
Banco de Dados II
119
Exemplo:
Banco de Dados II
120
SQL Intersect
Repeties so excludas
Exemplo: Selecionar os cdigos e nomes dos municpios que possuem Clientes
e Fornecedores, estando os clientes e fornecedores em tabelas separadas.
SELECT cd_municip,
WHERE cd_municip
INTERSECT
SELECT cd_municip,
WHERE cd_municip
CD_MUNICIP
---------------1
3
NM_MUNICIP
---------------So Paulo
Curitiba
Banco de Dados II
121
SQL Minus
NM_MUNICIP
---------------Santos
Rio de Janeiro
Banco de Dados II
122
SQL View
Banco de Dados II
123
SQL View
Para que usar Views?
Banco de Dados II
124
SQL View
Sintaxe:
Banco de Dados II
125
SQL View
WITH CHECK OPTION caso exista algum filtro
ao
CHECK OPTION.
Banco de Dados II
126
SQL View
Os dados de uma view nem sempre podem ser alterados.
Vejamos situaes em que as atualizaes normalmente so
proibidas:
Tentativa de insero em uma view que no possua todos
os
campos obrigatrios da tabela base (chave
primria e no
nulos);
Banco de Dados II
127
SQL View
Exemplo:
Banco de Dados II
128
SQL View
Exemplo:
Banco de Dados II
129
SQL View
Exemplo:
CREATE VIEW Emp_Sal (Nome, Cargo, Salario) AS
Select ename, job, sal FROM Emp;
Banco de Dados II
130
SQL View
Exemplo:
Banco de Dados II
131
SQL View
Sintaxe:
DROP VIEW Nome_Viso;
Exemplo:
DROP VIEW Emp_Sal;
Banco de Dados II
132
SQL - View
Descrio
View_Name
Nome da Viso
Text_Length
Text
Texto da viso
Banco de Dados II
133
SQL View
Visualizar Views
Exemplo:
TEXT
-------------------------------------------------------------select ename, job, sal from emp
Banco de Dados II
134
SQL - FIM
APROVEITEM O APRENDIZADO E TENHAM
SUCESSO.
BOA SORTE!!!!!!
Banco de Dados
135