Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Apostila sql, Notas de estudo de Cultura

Programação

Tipologia: Notas de estudo

2014

Compartilhado em 19/07/2014

genesio-genepada-1
genesio-genepada-1 🇧🇷

1 documento

1 / 113

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Structured Query Language
-
SQL*PLUS
1
SQL*PLUS
Conceito
O SQL*PLUS é um ambiente de trabalho que permite ao usuário ORACLE
acessar o banco de dados para efetuar varias atividades como incluir, consultar, alterar
ou remover dados;
O ambiente SQL*PLUS permite:
-
Editar, armazenar, recuper
ar e executar comandos SQL e blocos de comando SQL;
-
Formatar, executar cálculos, armazenar e imprimir resultados de uma consulta;
-
Criar, alterar, remover e listar objetos, como: tabelas, índices, seqüências, sinônimos
e views;
-
Atribuir valores par
a execução de comandos SQL;
-
Escolher um ambiente próprio de trabalho para edição de comandos;
Características do SQL:
-
É uma linguagem não Procedural, que executa linhas de comandos;
-
Permite Incluir, consultar, alterar ou remover dados da base;
-
G
arante consistência e a integridade de dados;
-
Permite dar e retirar permissões de acesso a usuários;
-
Acesso e copia entre Bancos de dados diferentes;
-
Pode ser usada por:
. Administradores de sistema;
. Administradores de Banco de Dados;
. Adminis
tradores de Segurança em Banco;
. Gerentes;
. Programadores em diversas ferramentas;
. Pessoal de Suporte;
. Usuários de banco de dados de modo geral;
-
Com o SQL standard pode
-
se usar diversas ferramentas como Pré
-
compiladores:
. Pro*Ada;
. Pro*C;
. Pro*Cobol;
. Pro*Fortran;
. Pro*Pascal;
. Pro*PL/I ;
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Pré-visualização parcial do texto

Baixe Apostila sql e outras Notas de estudo em PDF para Cultura, somente na Docsity!

SQL*PLUS

Conceito

O SQL*PLUS é um ambiente de trabalho que permite ao usuário ORACLE acessar o banco de dados para efetuar varias atividades como incluir, consultar, alterar ou remover dados;

O ambiente SQLPLUS permite:*

  • Editar, armazenar, recuperar e executar comandos SQL e blocos de comando SQL;
  • Formatar, executar cálculos, armazenar e imprimir resultados de uma consulta;
  • Criar, alterar, remover e listar objetos, como: tabelas, índices, seqüências, sinônimos e views;
  • Atribuir valores para execução de comandos SQL;
  • Escolher um ambiente próprio de trabalho para edição de comandos;

Características do SQL:

  • É uma linguagem não Procedural, que executa linhas de comandos;
  • Permite Incluir, consultar, alterar ou remover dados da base;
  • Garante consistência e a integridade de dados;
  • Permite dar e retirar permissões de acesso a usuários;
  • Acesso e copia entre Bancos de dados diferentes;
  • Pode ser usada por: . Administradores de sistema; . Administradores de Banco de Dados; . Administradores de Segurança em Banco; . Gerentes; . Programadores em diversas ferramentas; . Pessoal de Suporte; . Usuários de banco de dados de modo geral;
  • Com o SQL standard pode-se usar diversas ferramentas como Pré-compiladores: . ProAda; . ProC; . ProCobol; . ProFortran; . ProPascal; . ProPL/I ;

Capítulo 1

ACESSANDO O SQL*PLUS

Para que o usuário possa se conectar com o produto SQL*PLUS, è necessário que esteja previamente cadastrado como usuário ORACLE.

Quando o ORACLE é instalado, e criado automaticamente um usuário chamado SCOTT com a senha TIGER, este usuário acessa várias tabelas e estruturas próprias deste usuário.

Sintaxe de comando ambiente Character mode:

SQLPLUS[usuário]/[senha]

Prompt>sqlplus scott/tiger

SQL*PLUS: Release 3.1.3.7.2 - Production on Wed Sep 04 15:22:47 1996 Copyright © ORACLE Corporation 1979, 1994. All rights reserved.

Connected to: Oracle7 Server Release 7.1.3.3.6 - Production Release With the tributed option PL/SQL Release 2.1.3.2.1 - Production

SQL>

Em ambiente Gráfico:

Localize o Ícone Sql*Plus no Windows e dê um Click Duplo.

Para abandonar o SQLPLUS basta digitar:*

SQL> Exit;

Para consulta comandos usa-se o comando HELP

SQL> Help

Para consulta o conteúdo do diretório sem deslogar do SQLPLUS:*

SQL> Host

ou para executar o comando dentro do SQL*PLUS

SQL> Host

Exemplo 3: listando apenas a linha 2 e tornando-a corrente

SQL> L 2 2* (Codigo number(2) not null,

Input

Pode-se incluir uma ou mais linhas no buffer a partir da linha corrente ,ou no meio do texto, forçando uma determinada linha a se tornar corrente.

Sintaxe:

I[NPUT] [texto]

Exemplo 1: Incluindo uma linha depois da linha 2

SQL>List 3 3* nome varchar2(20) not null,

SQL> i 4* data_inclusao date, ou SQL> i data_inclusao date,

SQL> List 1 create table cadastro 2 (Codigo number(2) not null, 3 Nome varchar2(20) not null, 4 Data_inclusao date. 5 dt_nascimento date, 6 id_sexo char, 7* Observação long)

Change

Sintaxe:

C[HANGE]/texto antigo/[texto novo]

O conteúdo de qualquer linha do buffer pode ser alterado todo ou parcialmente através do comando CHANGE.

Exemplo:

SQL> L 4 4* data_inclusao date, SQL> c/data_inclusao/dt_inclusao

SQL> List 1 create table cadastro 2 (Codigo number(2) not null, 3 Nome varchar2(20) not null, 4 dt_inclusao date. 5 dt_nascimento date, 6 id_sexo char, 7* Observação long)

Nota: No local da / pode-se usar outros caracteres. Preferencialmente usar caracteres não usados na descricao dos comandos;

Del

Exclui a linha corrente do buffer;

Sintaxe:

DEL

Exemplo:

SQL> L 4 4* dt_inclusao date,

SQL> del SQL> L 1 create table cadastro 2 (Codigo number(2) not null, 3 Nome varchar2(20) not null, 4 dt_nascimento date, 5 id_sexo char, 6* Observação long

Nota: Não é possível excluir várias linhas ao mesmo tempo.

Append

Pode-se acrescentar, ao final da linha corrente, um texto ou um caracter, utilizando o comando APPEND.

Sintaxe:

A[PPEND] [texto, caracter]

Quando nenhum arquivo é especificado, o SQL*PLUS criará no diretório corrente um arquivo chamado AFIEDT.BUF que conterá o comando do buffer. O editor será então ativado, carregando para a memória este arquivo; todas as alterações realizadas através do editor serão automaticamente transferidas para o buffer, quando da saída do mesmo.

Exemplo: Se existir algo no buffer:

SQL> edit Wrote file afiedt.buf

Executando o conteúdo do Buffer:

O conteúdo de SQL editado no buffer, pode ser executada de três maneiras diferentes: ; , / e run , especificadas a seguir:

SQL Terminator

A variável de sistema SQLT[erminator], define o caracter que representa para o SQL*PLUS fim do comando de SQL e execução imediata do mesmo. Normalmente, este caracter é o ponto e virgula (;).

Exemplo: Editando um arquivo para criar uma estrutura:

SQL> SHOW SQLTERMINATOR SQLTERMINATOR , (hex 3b)

SQL> create table cadastro 2 (Codigo number(2) not null, 3 Nome varchar2(20) not null, 4 dt_nascimento date, 5 id_sexo char, 6* Observação long);

Table created

Barra (/):

A barra / , quando digitada na primeira coluna da linha em branco do buffer, determinada a execução do comando SQL; se for digitada diretamente no prompt, significa que o comando de SQL, contido no buffer, deve ser executado sem a exibição do mesmo.

Exemplo 1:

SQL> create table cadastro 2 (Codigo number(2) not null, 3 Nome varchar2(20) not null, 4 dt_nascimento date, 5 id_sexo char, 6 Observação long) 7 /

Table created

Exemplo 2: Executando arquivo previamente digitado:

SQL> /

Table created

RUN

O comando run ou r , determina que o comando SQL do buffer, deve ser executado com a exibição do mesmo.

Exemplo: Executando arquivo do buffer:

SQL> Run 1 create table cadastro 2 (Codigo number(2) not null, 3 Nome varchar2(20) not null, 4 dt_nascimento date, 5 id_sexo char, 6* Observação long)

Table created

Buffer x arquivo

O buffer é uma área de memória capaz de armazenar temporariamente, um comando SQL; quando a conexão com o SQL*PLUS é encerrada, o comando é abandonado. Da mesma forma, quando outro comando é digitado, o anterior passa a não existir; se for necessário executar o comando outras vezes, tal comando deve ser gravado em um arquivo através do comando SAVE.

OBS: A variável de sistema SUF[FIX] define a extensão que deve ser assumida nas transações, entre o SQL*PLUS e o sistema operacional, quando a extensão for omitida; normalmente esta extensão é .sql.

SQL> clear buffer

Colocando comentários nos comandos SQL

Usando REM[ARK]

Usa-se no início da linha acompanhado do comentário

Exemplo:

REM Relacao de Funcionários REM para pagamento de Salários Select empno, ename, job, comm, sal REM verificando na tabela EMP from emp order by deptno /

Usando /* ....... */

Usa-se para abranger o comentario

Exemplo:

/* Relacao de Funcionarios para pagamento de Salários / / / Select empno, ename, job, comm, sal from emp / verificando na tabela EMP */ order by deptno /

Usando --

Usa-se antes do comentario:

Exemplo:

-- Relacao de Funcionarios -- para pagamento de Salários -- Select empno, ename, job, comm, sal from emp -- verificando na tabela EMP order by deptno /

Capítulo 2

ACESSANDO O BANCO DE DADOS ORACLE

Criando uma Tabela:

  • Uma tabela corresponde a um arquivo convencional;
  • Uma linha da tabela corresponde a um registro de um arquivo convencional;
  • Uma coluna da tabela corresponde a um registro de um arquivo convencional;
  • Uma tabela e composta por uma ou mais colunas;
  • Cada coluna possui um tipo de dado e tamanho(quando aplicável);
  • Pode-se informar restrições para cada coluna ou p/ um conjunto de colunas;

Criando a estrutura de uma tabela.

  • O nome da tabela pode ser composto por letras, números e underscore, porém deve sempre começar com caracter alfabético;
  • Máximo 30 caracteres;
  • Não pode ser palavra reservada;
  • O nome do objeto deve ser único;
  • Deve ter no mínimo uma coluna;

Sintaxe:

CREATE TABLE usuário.nome_tabela ( nome_coluna tipo_dado [tamanho} [restrições], (nome_coluna tipo_dado [tamanho] [restrições], [restrições] ) TABLESPACE nome_tablespace PCTFREE número PCTUSED número

Exemplo: Para criar uma tabela, digite na linha de comando:

SQL> create table EMP 2 (empno number(4) not null, 3 ename varchar2(20), 4 job varchar2(10), 5 mrg number(4), 6 hiredate date, 7 sal number(7,2), 8 comm number(7,2), 9 deptno number(2) not null)

Table created.

Exemplo:

SQL> create table cadastro 2 (...... 3 Observação Long varchar ou Observação Long, 4 ....);

RAW

Colunas que armazenam valores binários com tamanho variável máximo de 255 bytes). O tamanho tem que ser informado (este tipo é mais usado para armazenar seqüências de caracteres gráficos).

LONG RAW

Colunas que armazenam valores binários com tamanho variável (máximo de 2G bytes); o tamanho não deve ser informado (este tipo é mais usado para armazenar seqüências de caracteres gráficos).

Nota: Para os tipos LONG e LONG RAW:

  • Somente é permitido um campo por tabela;
  • Não podem fazer parte de cláusulas WHERE, GROUP BY, ORDER BY, CONNECT BY ou DISTINCT, Não podem ser usados em expressões (SUBSTR, INSTR, etc);
  • Não podem ser indexes;
  • Não podem aparecer em expressões ou condições
  • Não podem ser passados como argumentos para procedures ou funções;

NUMBER

Colunas que armazenam valores numéricos, positivos ou negativos, com no máximo de 38 dígitos; caso o tamanho não seja informado, o ORACLE assumirá que o tamanho máximo é 38 com o ponto decimal flutuante. O tamanho de uma coluna numérica pode ser definido com precisão e escala.

Exemplos:

Especificação Dados Valor Armazenado number 7456123.89 7456123. number(9) 7456123.89 7456124 number(9,2) 7456123.89 7456123. number(9,1) 7456123.89 7456123. number(6) 7456123.8 Erro number(15,1) 7456123.8 7456123. number(7,2) 7456123.89 Erro number(7,-2) 7456123.89 7456100 number(4,5) .01234.

number(4,5) .00012. number(4,5) .000127. number(2,7) .0000012. number(2,7) .00000123.

código number (2) not null, salário number(9,2), vl_completo number(3,8), vl_deposito number (10,-2)

DATE

Colunas que armazenam data, hora (com minutos e segundos) e o século; não deve ser informado o tamanho.

Exemplo:

SQL> Create table Cadastro (.... dt_inclusao date, ....);

Verificando a Estrutura de uma tabela

Uma vez criada a tabela no Banco de Dados, pode-se visualizar a definição de sua estrutura através do comando DESCRIBE

DESCRIBE

Sintaxe:

DESC[RIBE] nome_tabela

Exemplo:

SQL> desc emp

Capítulo 3

INTEGRIDADE DE DADOS E REFERENCIAL

Restrições / Constraints

Restrições são regras básicas, informadas ao RDBMS, para o controle do preenchimento de uma ou mais colunas da tabela. Podem ser especificadas na definição da coluna (column constraint) ou no final do comando de criação da tabela (table constraint).

Estas restrições forçam a consistência e integridade referencial do Banco de Dados; toda restrição criada possui um nome que pode ser atribuído pelo usuário através da opção CONSTRAINT. Caso isto não ocorra, o ORACLE se encarregará de escolher um nome de acordo com critérios próprios (a vantagem dessa atribuição ser realizada pelo usuário é a facilidade de uma exclusão futura).

O uso de restrições eliminam erros de programação, além de sua funcionalidade ser controlada pelo ORACLE. Estas restrições são armazenadas no dicionário de dados; por isso os dados inseridos através de qualquer aplicação se ajustam as constraints definidas.

Caso alguma restrição seja violada, imediatamente são retornadas mensagens de erro que podem ser tratadas pelas aplicações.

Exemplo 1: Column Constraint

SQL> Create table Emp (empno number(4) constraint pk_emp primary key, ename varchar2(20) constraint uk_emp unique, job varchar2(10), mrg number constraint fk_mgr references emp, hiredate date default sysdate, sal number(12,2) constraint ck_sal check (sal > 500), comm number(5,2), deptno number(2) constraint fk_deptno references dept);

Exemplo 2: Table Constraint

SQL. Create table Emp (empno number(4) , ename varchar2(20) , job varchar2(10) , mgr number , hiredate date , sal number(12,2) , comm number(5,2) , deptno number(2) , constraint pk_emp primary key (empno), constraint uk_emp unique(ename), constraint fk_mgr foreign key (mgr) references emp(empno), constraint ck_sal check (sal > 500), constraint fk_deptno foreign key (deptno) references dept(deptno) on delete cascade)

Not Null

Define se o preenchimento da coluna é obrigatório, só pode ser declarado junto com a coluna. Caso não seja informada, será assumida a opção NULL.

Exemplo:

SQL> Create table Emp (....., ename varchar2(20) not null, .....);

Primary Key

Define que uma ou mais colunas compõem a chave primária da tabela. São usadas para identificar uma linha exclusiva da tabela. Desta forma para cada chave é retornada apenas uma linha da tabela.

Exemplo:

SQL> Create table Emp (empno number(4), ... deptno number(2), constraint pk_emp primary key (empno), ....);

Foreign Key

Define que uma ou mais colunas compõem a chave primária ou são únicas em uma outra tabela, só podem ser declaradas depois de todas as colunas.

Exemplo:

SQL> Create table Emp (.... deptno number(2) constraint fk_deptno foreign key (deptno) references dept(deptno));

Check

Define um domínio de valores permitidos para uma coluna.

Exemplo 1:

SQL> Create table Emp (....., sal number(12,2) constraint ck_sal check (sal > 500), .....);

Exemplo 2:

SQL> Create table Cadastro (....., id_sexo varchar2(1) constraint ck_sexo check (id_sexo in ( M , F )), .....);

Exercícios - 02

  1. Criar as seguintes tabelas e suas constraints:

Cliente

cd_cliente n(6) chave primária nm_cliente c(45) chave única ie_sexo c(1) somente aceitar F ou M endereço c(45) obrigatório cidade c(20) estado c(2) CEP n(9) DDD n(4) fone n(9) cd_representante n(4) obrigatório vl_limite_credito n(10,2) observação long

Produto

cd_produto n(6) chave primária ds_produto c(50) chave única

Pedido

nr_pedido n(4) chave primária dt_pedido data obrigatória ie_comissao c(1) deve aceitar S ou N cd_cliente chave estrangeira na tabela cliente dt_envio data vl_total n(12,2) deve ser maior ou igual a zero

Item_Pedido

nr_pedido n(4) chave estrangeira na tabela pedido nr_item n(4) cd_produto n(6) chave estrangeira na tabela produto vl_unitario n(9,2) obrigatório quantidade n(8) obrigatório vl_total_item n(9,2)

obs.: Chave primária composta por: nr_pedido e nr_item

  1. Verificar a estrutura das tabelas criadas.