You are on page 1of 35

Banco de Dados

II
Reviso de DML/DDL
Csar Augusto Loureiro

Objetivo

Comandos DML Select,


Insert, Update e Delete
Comandos DDL
Interface SQL-PLUS

Linguagens
Linguagem de manipulao
dos dados (DML) - Linguagem
que
define
os
comandos
de
manipulao e operao dos dados
(comandos de consulta e atualizao
dos dados dos arquivos).
Select ...

Linguagens
Linguagem de definio dos
dados (DDL) - Linguagem que
define as aplicaes, arquivos e
campos que iro compor o banco de
dados (comandos de criao e
atualizao da estrutura dos campos
dos arquivos).
Create table.....

Instrues DDL
Tipos de dados
VARCHAR2(tam) => Dados caractere de tamanho
variado
CHAR(tam) => Dados caractere de tamanho fixo
NUMBER(i,d) => Dados numricos de tamanho
variado
DATE => data e hora
LONG => caractere at 2 Gb
CLOB => caractere at 4 Gb
RAW => Binrios Brutos at 2000 bytes
BLOB => Binrios at 4 Gb

Create Table
Sintaxe: Create Table
CREATE TABLE tabela
[(coluna tipo, coluna tipo...)]
AS subconsulta

*Subconsulta uma instruo SQL que


define as linhas a serem inseridas na
nova tabela

Create Table
Exemplos:
CREATE TABLE alunos(
matricula
NUMBER(10,0) NOT NULL,
nome
VARCHAR2(40) NOT NULL,
curso
NUMBER(2));

CREATE TABLE dept30


AS
SELECT empno, ename, sal*12 SALANUAL,
hiredate
FROM emp

Exercicio
-

Habilite a gravao de spool para


seu_nome-6.txt

Crie uma tabela chamada CURSO com os


campos (codigo e nome) com seus
respectivos tipos.

Pare a gravao do spool.

Sequence
Utilizado como um contador para
incremento de valores
Sintaxe bsica
CREATE SEQUENCE nome START WITH n
INCREMENT BY n

Sequence
Exemplo:
CREATE SEQUENCE
seq_fornecedores START WITH 1;
SELECT seq_fornecedores.NEXTVAL
FROM dual;

Alter Table
Sintaxe: alter table
-

Adiciona uma nova coluna


Modifica uma coluna existente
Defini um valor default para a
nova coluna
Apaga uma coluna

Alter Table
ALTER TABLE tabela
ADD (Coluna Tipo [DEFAULT exp], Coluna
Tipo);
ALTER TABLE tabela
MODIFY (Coluna Tipo_novo, Coluna
Tipo_novo));
ALTER TABLE tabela

Outros comandos... Table

RENAME tabela TO tabela_nova;


DROP TABLE tabela;
TRUNCATE TABLE tabela;

SQL PLUS

Comandos Bsicos

Desc[ribe] table_name -> mostra a estrutura da


tabela
Ex.:

Ed[it] -> chama um editor com o ultimo comando


executado
Ex.:
ED

DESC EMP

SELECT * from EMP;

Sav[e] file_name.sql-> salva o buffer em arquivo

SQL PLUS

Comandos Bsicos

Spo[ol] file_name.txt -> armazena todos os


resultados no arquivo
Ex.: SPOOL DEMO1.TXT
SELECT * FROM SALGRADE;

Spo[ol] OFF -> para de armazenar os


resultados
Ex.: SPOOL OFF

/ -> Repete o ltimo comando

Tabelas Internas do
Oracle

Tabelas USER_

Possui todas as informaes sobre a


estrutura disponvel ao usurio
corrente.
Select * from USER_TABLES;
Select * from USER_INDEXES;
Select * from USER_CONSTRAINTS;

Tabelas Internas do
Oracle

Tabelas ALL_

Possui todas as informaes sobre a


estrutura disponvel no SGBD acessvel
ao usurio.
Select * from ALL_TABLES;
Select * from ALL_USERS;
Select * from ALL_VIEWS;

Tabelas Internas do
Oracle

Tabelas V$

Utilizadas para obter informaes


referentes ao desempenho do SGBD.

Select * from V$INSTANCE

Comandos DML

Select

Instruo SELECT

Retorna informao como um conjunto de registros.

Sintaxe

SELECT [predicado { * | tabela.* | [tabela.]campo1


[AS alias1]
[, [tabela.]campo2 [AS alias2] [, ...]]}
FROM expresso_tabela [, ...]
[IN banco de dados externo]
[WHERE... ]
[GROUP BY... ]
[HAVING... ]
[ORDER BY... ]
[BETWEEN .. AND .. ]

Select

Exemplos

SELECT empno, ename, job, sal*12 sal_anual


sal_anua
FROM emp
WHERE job = CLERK OR job = PRESIDENT

SELECT *
FROM emp
WHERE job NOT IN (CLERK,MANAGER,A
%);
ORDER BY ename;

Select

Exemplos

SELECT sysdate FROM dual;


*Retorna a data do sistema
SELECT e.ename, e.deptno, d.dname
FROM emp e, dept d
WHERE e.deptno = d.deptno;
*Juno de tabelas

Select
SELECT empregado.ename ||' trabalha para '||
gerente.ename
as "Relacao Chefe-empregado"
FROM emp empregado, emp gerente
WHERE empregado.mgr = gerente.empno
* Unio da tabela com ela mesma
SELECT ename
FROM emp
WHERE sal >
( SELECT sal
FROM emp
WHERE empno = 7566)
* Select com subconsultas

Exerccio-1
-

Habilite a gravao de spool para


seu_nome-1.txt

Visualize todas as tabelas as quais voc


tem direito.
Visualize a estrutura de todas as tabelas
nas quais voc tem acesso.
Selecione todos os registros da tabela
EMP que a data de admisso(HIREDATE)
seja entre janeiro e dezembro de 1981.
Pare a gravao do spool.

Exerccio-2
-

Habilite a gravao de spool para seu_nome-2.tx


seu_nome-2.t

Selecione o nome(ename) e a grade de


salrio(grade) correspondente de cada funciona

Dicas: Tabelas EMP e SALGRADE, utilizam o cam


ENAME
GRADE
----------- ---------Smith
1
Adams
1

Pare a gravao do spool.

Insert

Instruo INSERT
Adiciona um ou vrios registros a uma tabela.

Sintaxe
INSERT INTO tabela [(campo1[, campo2[, ...]]
VALUES (valor1[, valor2[, ...])

Mutiplos registros:
INSERT INTO tabela [(campo1[, campo2[, ...]]
SELECT [origem.]campo1[, campo2[, ...]

Insert
Exemplos:
INSERT INTO emp ( empno, ename, job,
mgr,
hiredate, sal,
comm, deptno)
VALUES
( 7196, GREEN,
SALESMAN,
SYSDATE, 2000, NULL,
10);

7782,

Insert
Exemplos:
INSERT INTO emp ( empno, ename,
job, mgr, hiredate, sal, comm, deptno)
SELECT empno + 1, ename, job, mgr,
hiredate, sal+200, comm,deptno
FROM emp
WHERE job = 'PRESIDENT;

Exerccio-3
-

Habilite a gravao de spool para


seu_nome-3.txt

Insira um registro na tabela EMP


colocando os seus dados.

Pare a gravao do spool.

Update

Instruo Update

Cria uma consulta atualizao


que altera os valores dos campos
em uma tabela especificada com
base em critrios especficos.
Sintaxe
UPDATE tabela
SET valor_novo
WHERE critrio;

Update

Exemplos

UPDATE emp
SET deptno = 20
WHERE empno = 7782;
UPDATE emp;
SET (job, deptno) =
(SELECT job, deptno
FROM emp
WHERE empno = 7499)

Exerccio-4
-

Habilite a gravao de spool para seu_nome4.txt

Altere campo JOB do seu registro na tabela


EMP para o mesmo JOB do funcionrio de
nmero 7900.

Pare a gravao do spool.

Desconecte do oracle ( disconnect)

Delete

Instruo Delete
Cria uma consulta excluso que remove
registros de uma ou mais tabelas
listadas na clusula FROM que satisfaz a
clusula WHERE.

Sintaxe

DELETE [tabela.*]
FROM tabela

Delete

Exemplos

DELETE from emp


WHERE empno = 7900;
DELETE FROM emp
WHERE deptno =
(SELECT deptno
FROM dept
WHERE DNAME = SALES;

Exerccio-5
-

Habilite a gravao de spool para


seu_nome-5.txt

Apague todos os registros da tabela emp


que o trabalhe(JOB) como MANAGER e
que receba 2850 de salrio.

Pare a gravao do spool.

You might also like