Escolar Documentos
Profissional Documentos
Cultura Documentos
1 Smallint
Armazena valores numéricos em dois bytes binários, compreendidos entre o intervalo -32768 a +32767.
2 Integer
Armazena valores numéricos, em quatro bytes binários, compreendidos entre o intervalo -2147483648 a
+2147483647.
3 Decimal (N, M)
Armazena valores numéricos com no máximo 15 dígitos. Nesta opção deve ser definida a quantidade de
dígitos inteiros (n) e casas decimais (m) existentes no campo.
Obs: O banco de dados ORACLE trabalha o tipo de dado NUMBER para referenciar qualquer tipo de dado
numérico.
4 Varchar (N)
Define um campo alfanumérico de até N caracteres, onde N deve ser menor ou igual a 254 caracteres.
5 Char (N)
Define um campo alfanumérico de N caracteres, onde N deve ser menor ou igual a 254 caracteres.
6 Longvarhcar (N)
Define um campo alfanumérico de comprimento maior que 254 caracteres.
7 Date
Define um campo que irá armazenar datas.
8 Time
Define um campo que irá armazenar horário.
10 Synonyms – Binary, Varying For Varbinary, Character For Char, Character, Varying For Varchar,
Dec For Decimal, Integer For Int, Double Precision For Float
Criando tabela
Ex:
Ex:
Ex:
Alter Table Item_De_Fatura Add Constraint Item_De_Fatura_Pk Primary Key (Ifa_Fat_Cod, Ifa_Cod);
Ex:
Alter Table Municipio Add Constraint Municipio_Chk Check (Mun_Uf Is In (‘MT’, ‘MG’, ‘MS’, ‘RO’));
Alter Table Municipio Add Constraint Municipio_Chk Check (Mun_Uf = ‘MT’ Or Mun_Uf = ‘MG’);
Alter Table Municipio Add Constraint Municipio_Chk Check (Mun_Uf = ‘MT’ Or Mun_Uf Is Null);
Ex:
Ex:
Desabilitando restrição
Ex:
Habilitando restrição
Ex:
Ex:
Alter Table Cliente Add Constraint Clientexmunicipio_Fk Foreign Key (Cli_Mun_Cod_Res) References
Municipio (Mun_Cod);
Alter Table Cliente Add Constraint Clientexmunicipio_Fk_2 Foreign Key (Cli_Mun_Cod_Con) References
Municipio (Mun_Cod);
Alter Table Fatura Add Constraint Faturaxcliente_Fk Foreign Key (Fat_Cli_Cod) References Cliente
(Cli_Cod);
Alter Table Fatura Add Constraint Faturaxfuncionario_Fk Foreign Key (Fat_Fun_Cod) References
Funcionario (Fun_Cod);
Ex:
Ex:
Ex:
Ex:
Ex:
Ex:
Ex:
Ex:
Ex:
Select ‘Valor_Literal’
Ex:
Comando Select
Ex:
Quando há necessidade de utilizarmos duas ou mais tabelas num único comando select, ao fazermos as
condições, teremos que digitar o nome da tabela, ponto (“.”) e o nome do campo.
Ex: Crie um select que me traga o nome do funcionário que efetuou a venda da fatura cujo Fat_Cod é 1033
Com isso, eu mandei mostrar o nome do funcionário da tabela Funcionário, relacionando-o com os campos
da tabela Fatura, filtrando pelo campo código do funcionário da tabela Fatura, onde este for igual a 1033 e
onde o código do funcionário da tabela Funcionário for igual ao código do funcionário da tabela Fatura.
Para não haver necessidade de escrever nomes extensos de tabelas nos comandos select, utiliza-se um
apelido para cada tabela, facilitando assim a criação dos comandos e, no caso de utilizar a ferramenta
PL/SQL, ainda há o recurso de completar automaticamente o nome do campo, seja através de apelidos ou
da forma exemplificada acima.
Dica: Sempre que for apelidar tabelas, utilize o padrão de colocar TNUMERO para cada tabela. Por
exemplo: Se for usar 3 tabelas, nomear a primeira como T1, a segunda como T2 e a terceira como T3. (Não
utilizem vários apelidos iguais na mesma janela de códigos sql – SQL WINDOW – do PL/SQL. Isso pode
causar erro porque ele vai entender que a tabela apelidada é a primeira da janela. Sempre que forem usar
apelidos, ou usem um apelido distinto para cada tabela e para cada comando sql ou troquem a janela de
códigos sql pra não dar esse problema)
Utilizando variáveis nos comandos sql
Para não ter que digitar valores fixos e ter que alterá-los toda vez que for executar o comando select, utilize
variáveis, o que irá fazer com que o programa peça pra entrar com o valor em tempo de execução.
Por exemplo, utilize o comando acima com variáveis.
Select T1.Fun_Nom From Funcionário T1, Fatura T2 Where T2.Fat_Cód = &Variavel And T1.Fun_Cód =
T2.Fat_Fun_Cód
Sintaxe: basta digitar “&” e o nome da variável que você preferir no lugar dos valores fixos e pronto!
Vou usar o mesmo exemplo acima, com algumas modificações na escrita, mas com a mesma
funcionalidade.
Isso pode ser usado como você quiser. Tanto na cláusula where, como em qualquer outra parte após o
select.
Basta colocar o nome desejado para a coluna entre aspas duplas, logo após o nome da coluna, ou o cálculo
feito no comando select.
Ex: Mostre o código do município e a unidade federativa da tabela município e renomeie a coluna
Mun_Cod apresentada para Código e a coluna Mun_Uf apresentada para UF
Ex: Eu tenho a coluna Pro_Vlr da tabela Produto. Se eu tiver um produto com valor negativo e quiser saber
o número do valor sem o sinal de positivo ou negativo, eu faria o select abaixo:
Ex: Eu tenho o número 2 e quero saber o valor dele elevado à quarta potência (2*2*2*2 ou 24)
Select Power(2,4)
Ex: Eu tenho uma coluna chamada COL da tabela TAB, cujo tipo de dado é Numeric(12,2). Eu quero saber
o seu valor arredondado para apenas as casas inteiras (12,0).
Ex:
Select Round(4)
Ex:
Ex:
Ex:
Ex:
Ex:
Ex:
Ex:
Ex:
Ex:
Ex:
Ex:
Ex:
Ex:
Str (Número, N, D) – Converte um valor numérico (Número) para string, formatando com N
caracteres na parte inteira (antes da vírgula) e D casas decimais (depois da vírgula)
Ex:
Ex:
Datediff (Parte, Data1, Data2) – Subtrai as duas datas (Data2 – Data1), retornando um resultado
em Parte
Nas funções acima, o argumento Parte especifica qual parte da data usar. Ele pode ser um dos seguintes
valores:
YY – Ano
QQ – Trimestre
MM – Mês
DY – Dia do ano (1 – 365)
DD – Dia do mês
WK – Número da semana (0 – 51)
DW – Dia da semana (Domingo = 1, Segunda = 2, Terça = 3, Quarta = 4, Quinta = 5, Sexta = 6,
Sábado = 7)
HH – Hora (0 – 23)
MI – Minutos
SS – Segundos
MS – Milisegundos
Ex:
Ex:
Ex:
Mostra todos os funcionários que foram admitidos no primeiro dia do mês (de todos os meses, de todos os
anos)
To_Char (XXXXX, ‘Day/MM/YYYY’) – Mostra o dia do campo data por extenso (dia da
semana)
Ex:
Ex:
Ex:
To_Char (XXXXX, ‘Dy/MM/YYYY’) – Mostra o dia do campo data abreviado (dia da semana)
Ex:
Convertendo dados
Ex:
Com valores DateTime, a função Convert pode ter um parâmetro a mais, que especifica o formato da data a
ser usado.Os formatos mais usados são 3 (padrão brasileiro DD/MM/AA), 103 (DD/MM/AAAA) e os
padrões americanos 1 (MM/DD/YY) e 101 (MM/DD/YYYY). O default é o 0, que mostra as datas como:
Jan 01 1997 01:13:23 PM
Para ver a data de hoje no formato brasileiro, use o código abaixo:
Select Convert (Char, Getdate(), 103)
Condições de pesquisa
Operadores de comparação:
= – Igual a
> – Maior que
< – Menor que
>= ou !< – Maior igual ou não menor
<= ou !> – Menor igual ou não maior
<> ou != – Diferente de
Between Valor_Inicial And Valor_Final – Entre Valor_Inicial e Valor_Final
In (Valor_1, Valor_2, Valor_N) – Igual a Valor_1 ou igual a Valor_2 ou igual a
Valor_N
Like ‘%Expressão’ – Termina com Expressão
Like ‘Expressão%’ – Começa com Expressão
Like ‘%Expressão%’ – Tem Expressão no meio
Is Null – É nulo
Is Not Null – Não é nulo
And – E
Or – Ou
Not – Não (contrário, oposto)
Distinct – Elimina valores duplicados no resultado. (Pega
sempre o primeiro que encontrar)
Order By Nome_Da_Coluna [Asc/Desc] – Ordena por Nome_Da_Coluna [Ordenação
Ascendente (do menor para o maior)/Ordenação
Descendente (do maior para o menor)]
Union – União
Group By – Agrupa por
Having [Condições] – Tendo Condições
Funções agregadas
Ex:
Municipio
Mun_Cod Number (10)
Mun_Nom Char (50)
Mun_Uf Char (2)
Insert Into Municipio (Mun_Cod, Mun_Nom, Mun_Uf) Values (1, ‘CUIABÁ’, ‘MT’)
Ficaria:
Municipio
Mun_Cod Mun_Nom Mun_Uf
1 CUIABÁ MT
Inserindo dados em uma tabela com o comando select
Municipio_Copia
Mun_Cop_Cod Integer Mun_Cop_Uf Char (2)
... e que queremos copiar os dados da tabela Municipio para essa tabela. Usaríamos o comando abaixo:
Ex:
Delete Mun_Cop_Cód From Municipio_Copia Where Mun_Cop_Cod > 10
Supondo que tenhamos a tabela Municipio e Municipio_Copia com quase todos os dados iguais e estamos
querendo apagar todos os dados da tabela Municipio_Copia que tenham um Mun_Cop_Uf que não exista
na tabela Municipio
Delete From Municipio_Copia Where Mun_Cop_Uf Not In (Select Mun_Uf From Municipio)
Ex:
Atualizar os dados da coluna Mun_Uf da tabela Municipio, fazendo Mun_Nom receber a string
‘Atualizado’ onde Mun_Uf for maior que D e menor que R
Update Municipio Set Mun_Nom = ‘Atualizado’ Where Mun_Uf > ‘D’ And Mun_Uf < ‘R’
DER – DIAGRAMA DE ENTIDADE RELACIONAMENTO
1 N N 1
Cliente Tem Fatura Tem Funcionario
N 1
Tem Tem
1 N
N Está 1
Municipio Item_De_Fatura em Produto