Escolar Documentos
Profissional Documentos
Cultura Documentos
Requisito Valor
Arquitetura do Computador Intel (x86)
Sistema Operacional Windows 2000 SP4 ou posterior
Componentes do cliente: 75 MB
Memória RAM Mínimo de 256 MB
Recomendado 512 MB
Microsoft Windows Installer (MSI) Versão MSI 2.0 ou posterior
120
Banco de Dados I
LEITURA COMPLEMENTAR
Você poderá ter mais detalhes da instalação do Oracle XE no site
oficial: <http://download.oracle.com/docs/cd/B25329_01/doc/ins-
tall.102/b25143/toc.htm>.
PARA REFLETIR
Neste conteúdo conhecemos um pouco a respeito do SGBD Oracle,
junto com seus colegas, pesquise outros SGBD existentes verificando
seu fabricante, seu posicionamento no mercado, sua principal utiliza-
ção e empresa que os utilizam.
125
Tema 3
SQL – DML e DDL
3.2
TIPOS DE DADOS E DEFINIÇÃO DE TABELAS
Tipo Descrição
CHAR(TAM) Tipo texto de armazenamento fixo que ocupa o
número de bytes definidos para o seu tamanho,
cujo valor pode variar entre 1 e 2000.
VARCHAR2(TAM) Tipo texto de armazenamento variável que ocupa
o número de bytes definidos para o seu tamanho,
cujo valor pode variar entre 1 e 4000.
DATE Tipo utilizado para armazenamento de datas com
informações de dia, mês, ano com 4 dígitos, hora,
minutos e segundos.
INTEGER Armazena números inteiros tais como 1, 10 e 409.
NUMBER(P,S) Único tipo numérico existente no Oracle que é ar-
mazenado como ponto flutuante (números reais).
Armazena números entre 1 x 10-130 e 9.99999 x
10125. O parâmetro p define o número máximo de
dígitos do número, enquanto que o parâmetro s
define quantos dos dígitos são dedicados às ca-
sas decimais. A precisão máxima deste tipo é de
até 38 dígitos. O parâmetro s pode ser omitido.
Neste caso, a escala é zero, ou seja, um número
inteiro.
126
Banco de Dados I
Tipo Descrição
BINARY_FLOAT Introduzido na versão 10g. Suporta um núme-
ro de ponto flutuante de 32 bits. Magnitude:
-2147483647 .. 2147483647.
BINARY_DOUBLE Introduzido na versão 10g. Suporta um número de
ponto flutuante de 64 bits.
CLOB Suporta textos de até 4 GB.
D Matrícula;
D Curso;
D Data de nascimento;
D Média Geral;
D Nome.
127
Tema 3
SQL – DML e DDL
5 rows selected
129
Tema 3
SQL – DML e DDL
DESCRIBE ALUNOS;
6 rows selected
1 rows selected
131
Tema 3
SQL – DML e DDL
DD Multiplicação: 10 * 5 = 50;
DD Divisão: 6 / 3 = 2;
SELECT 10 * 5 + 6 / 3 - 4
FROM DUAL
SELECT 40 - 3 * 10
FROM DUAL;
SELECT ( 40 - 3 ) * 10
FROM DUAL
SELECT SYSDATE + 10
FROM DUAL
Resultado:
SYSDATE+10
-------------------------
22/07/11
1 rows selected
134
Banco de Dados I
SELECT SYSDATE - 10
FROM DUAL
Resultado:
SYSDATE-10
-------------------------
02/07/11
1 rows selected
SELECT SYSDATE,
SYSDATE + 3/1440,
SYSDATE + 2/86400
FROM DUAL
1 rows selected
136
Banco de Dados I
LEITURA COMPLEMENTAR
Para maiores detalhes a respeito dos tipos de dados Oracle você pode
consultar a documentação oficial do SGBD, em: <http://download.ora-
cle.com/docs/cd/B19306_01/server.102/b14200/sql_elements001.
htm#i54330>.
PARA REFLETIR
Mencionamos neste conteúdo que podemos expressar número em
ponto flutuante com o tipo NUMBER. Entrando, a partir da versão 10g
do SGBD foram introduzidos os tipos BINARY_DOUBLE e BINARY_
FLOAT. Pesquise juntamente com os seus colegas as reais vantagens
em se utilizar esses novos tipos.
137
Tema 3
SQL – DML e DDL
3.3
RESTRIÇÕES DE INTEGRIDADE E INDEXAÇÃO
NOT NULL
O que significa um valor nulo? É o número zero? É um espa-
ço em branco? É uma string vazia? Nulo significa ausência de dado.
Uma tabela que possui uma coluna nula indica que existe uma lacuna
para sem valor algum, pois NULL significa indisponível, desconhecido
e inaplicável. Em suma, os atributos das tabelas que admitem NULL
precisam ser analisados de forma especial.
UNIQUE
CONSTRAINT <nome_restricao>
UNIQUE (<coluna01>,
<coluna02>,
<coluna03>,
...
<coluna_N>);
PRIMARY KEY
Esta restrição define a chave primária da tabela que define a
unicidade de cada linha. Cada tabela possui somente uma chave pri-
mária. Assim como as restrições de chaves únicas, as chaves primá-
rias permitem que uma única coluna ou lista de colunas sejam con-
templadas em sua definição. A seguir demonstraremos a definição da
chave primária da tabela MATRÍCULAS, formada pelo ano, semestre,
disciplina e aluno, conforme definição do projeto lógico:
140
Banco de Dados I
FOREIGN KEY
Imagine o seguinte cenário: O aluno THIAGO LIMA, cujo núme-
ro de matrícula é 207112 está matriculado na disciplina 101547-BAN-
CO DE DADOS. Considerando as estruturas das tabelas de disciplinas
e de matrículas descritas anteriormente podemos visualizar os dados:
Tabela de disciplinas:
COD_DISC CREDITOS NOM_DISC
--------- -------- --------------
101547 4 BANCO DE DADOS
Tabela de matrículas:
MAT_ALU ANO SEM COD_DISC
------- ---- --- --------
207112 2011 2 101547
142
Banco de Dados I
CHECK
Define as condições que cada campo da tabela deve atender. No
exemplo a seguir definiremos uma restrição onde a nota do aluno na
primeira unidade, campo NOTA01, deve estar entre zero e dez:
Indexação
Indexação é um método de ajuste de desempenho que permite
recuperação mais rápida de registros. Por exemplo, considere a tabela
de alunos com as colunas código do aluno, nome do aluno e matrícula;
é possível criar um índice para o campo matrícula, pois é bem comum
a necessidade de localizar o registro de um determinado aluno através
do seu número de matrícula. Você deve estar imaginando, então vou
criar índices para todas as colunas de todas as tabelas do banco, as-
sim as consultas terão o melhor desempenho?
ON ALUNOS (MAT_ALU)
LEITURA COMPLEMENTAR
D SERSON, Roberto R. Oracle 10g Database – Guia do DBA. São
Paulo: Novatec, 2004.
PARA REFLETIR
Nesta seção estudamos como criar restrições e índices. Imagine uma
chave estrangeira de uma tabela A para tabela B. Visto que é bem
comum filtrar os registros da tabela A através da chave estrangeira,
pesquise junto com o seus colegas sobre a boa prática de criar índices
para as chaves estrangeiras.
147
Tema 3
SQL – DML e DDL
3.4
SQL – SELECT – FROM - WHERE
SELECT *
FROM DISCIPLINAS
SELECT *
FROM DISCIPLINAS
FROM DISCIPLINAS
NOM_DISC “DISCIPLINA”
FROM DISCIPLINAS
[NOT] IN
Utilizado para filtrar os registros baseando-se na lista informa-
da, por exemplo:
FROM DISCIPLINAS
FROM DISCIPLINAS
[NOT] BETWEEN:
Deve ser utilizado para filtrar um atributo através de uma faixa
de valores. Suponha que você deseja listar as disciplinas cujo código
está entre 200850 e 200950. A seguinte consulta SQL poderia gerar
este resultado:
FROM DISCIPLINAS
FROM DISCIPLINAS
[NOT] LIKE
Este comando deve ser utilizado para filtrar um texto. Podemos
combinar o símbolo para indicar qualquer conjunto de caracteres. Por
exemplo: Listar todas as disciplinas que possuam a palavra “ADMI-
NISTRAÇÃO” em sua descrição, independentemente se a palavra está
localizada no início do nome da disciplina, no centro ou no término:
FROM DISCIPLINAS
Note que o símbolo ‘%’ indica que pode ocorrer qualquer carac-
tere à esquerda (início) ou qualquer caractere à direita (término). De
forma análoga aos demais, podemos utilizar o operador de negação
NOT para listar todas as disciplinas que não possuem a palavra “AD-
MINISTRAÇÃO”. Nos conteúdos anteriores comentamos sobre nu-
lidade dos campos que indica se o atributo poderá assumir valores
nulos ou não. O que é um valor NULL? É um texto vazio? Representa
zero? Na realidade, NULL é a representação de um valor desconheci-
do. É um erro comum dos desenvolvedores escreverem a sentença da
seguinte forma:
153
Tema 3
SQL – DML e DDL
SELECT *
FROM CURSOS
SELECT *
FROM CURSOS
Operadores Relacionais
Operador Descrição
----------- --------------------------
<> ou != Diferente
< Menor que
> Maior que
<= Menor ou igual
>= Maior ou igual
SELECT *
FROM CURSOS
WHERE COD_CURSO = 10
155
Tema 3
SQL – DML e DDL
SELECT *
FROM CURSOS
SELECT *
FROM CURSOS
WHERE COD_CURSO = 26 OR
COD_CURSO = 52
SELECT *
FROM CURSOS
MGP > 7
FROM ALUNOS
FROM ALUNOS
ORDER BY NOM_ALU
FROM ALUNOS
LEITURA COMPLEMENTAR
PARA REFLETIR
Utilizando os conhecimento obtidos até agora e junto com seus cole-
gas elabore a sentença SQL necessária para recuperar todos os alunos
do curso 26 que possuem média maior ou igual a 6 e todos os alunos
do curso 10 que possuem média menor que 6.
159
Tema 3
SQL – DML e DDL
RESUMO
Neste tema abordamos os conceitos iniciais sobre a arquitetura do
banco de dados Oracle, instalação da versão Oracle Express Edition
e da ferramenta SQL Developer para interagir com o banco de dados.