1. Crie uma seqüência para ser usada com a coluna de chave primária da tabela
DEPT. A seqüência deve começar em 60 e ter um valor máximo de 200.
Incremente sua seqüência em dez números. Nomeie a seqüência DEPT_ID_SEQ.
CREATE SEQUENCE
DEPT_ID_SEQ
INCREMENT BY 10
-- aumenta de 10 em 10
START WITH 60
-- inicia com 60
MAXVALUE 200
-- cresce até 100
NOCYCLE;
-- quando chegar no 200 para de contar.
-- Caso fosse escolhido CYCLE, quando
-- chegar ao fim, o contador volta
-- para 60.
2. Crie um script (select) para exibir as seguintes informações sobre as seqüências:
nome da seqüência, valor máximo, tamanho do incremento e último número.
Nomeie o script como ex13_2.sql . Execute o script.
A tabela DEPT foi criada com as seguintes definições:
CREATE TABLE dept
(deptno
NUMBER(2),
dname
VARCHAR2(14),
loc
VARCHAR2(13),
CONSTRAINT DEPT_PK PRIMARY KEY(DEPTNO));
Resposta do exercício:
Select criado:
SELECT SEQUENCE_NAME, MAX_VALUE,INCREMENT_BY, LAST_NUMBER
FROM USER_SEQUENCES;
Este select foi gravado Arquivo ex13_2.sql, assim este
select torna-se um script e pode ser executado da
seguinte maneira:
SQL> @C:\EDINELSON\Network\BD\bd2\aula_06_11\ex13_2.sql
Resultado da execução do script:
SEQUENCE_NAME
MAX_VALUE INCREMENT_BY LAST_NUMBER
--------------------------- ---------- ------------ ----------DEPT_ID_SEQ
200
10
60
3. Crie um script para inserir uma linha na tabela DEPT. Nomeie o script como
ex13_3.sql. Certifique-se de usar a seqüência criada para a coluna ID.. Execute o
script. Adicione dois departamentos chamados Educação e Administração.
Confirme as adições.
Inserindo dados na tabela Dept
insert into DEPT (deptno, dname, loc)
values (DEPT_ID_SEQ.nextval, 'Educação ', 'Nova Odessa ');
insert into DEPT (deptno, dname, loc)
values (DEPT_ID_SEQ.nextval, 'Administração ', 'Nova Odessa ');
Estes dois comandos foram gravados no aqruivo ex13_3.sql
tornando-se, assim, um script
Para executar o script basta fornecer o caminho onde ele
está gravado bem como o seu nome.
SQL> @C:\EDINELSON\Network\BD\bd2\aula_06_11\ex13_3.sql
4. Crie um índice não-exclusivo na coluna de chave estrangeira (dept_id /deptno) na
tabela EMP. Crie um índice para a coluna nome do departamento.
A tabela EMP foi criada com as seguintes definições:
CREATE TABLE emp (
empno NUMBER(4),
ename VARCHAR2(10) NOT NULL,
job
VARCHAR2(9),
mgr
NUMBER(4),
hiredate DATE,
sal
NUMBER(7,2),
comm NUMBER(7,2),
deptno NUMBER(7,2) NOT NULL,
CONSTRAINT emp_empno_pk PRIMARY KEY (EMPNO)
,
CONSTRAINT emp_empno_fk FOREIGN KEY (deptno) REFERENCES dept
(deptno));
Relembrando a sintaxe de criação de índice:
CREATE [UNIQUE] INDEX <nome_índice> ON nome_da_tabela (coluna 1
[ASC | DESC] [coluna 2 [ASC | DESC]]...);
Respostas do exercício:
Create index I_EMP_DEPTNO on EMP (DEPTNO);
Create index I_DEPT_DNOME on DEPT (DNAME);
5. Exiba os índices e as exclusividades existentes no dicionário de dados para a
tabela EMP. Salve a instrução em um script chamado ex13_5.sql.
SQL> SELECT INDEX_NAME, TABLE_NAME,UNIQUENESS
2 FROM USER_INDEXES
3 WHERE TABLE_NAME = 'EMP';
INDEX_NAME
-----------------------------I_EMP_DEPTNO
EMP_EMPNO_PK
TABLE_NAME
-----------------------------EMP
EMP
Mostrando os índices de todas as tabelas (criadas nestes exercícios):
SQL> SELECT INDEX_NAME, TABLE_NAME,UNIQUENESS
2 FROM USER_INDEXES;
INDEX_NAME
-----------------------------I_EMP_DEPTNO
EMP_EMPNO_PK
I_DEPT_DNOME
DEPT_PK
TABLE_NAME
-----------------------------EMP
EMP
DEPT
DEPT
UNIQUENES
--------NONUNIQUE
UNIQUE
NONUNIQUE
UNIQUE
UNIQUENES
--------NONUNIQUE
UNIQUE
Download

1. Crie uma seqüência para ser usada com a coluna de chave