Skip to content

Instantly share code, notes, and snippets.

@edgarsandi
Last active August 29, 2015 14:05
Show Gist options
  • Save edgarsandi/4ed4c1deebd3c2fc8cfd to your computer and use it in GitHub Desktop.
Save edgarsandi/4ed4c1deebd3c2fc8cfd to your computer and use it in GitHub Desktop.
Edgar Rodrigues Sandi
@EdgarSandi
Oracle PL/SQL
6 aulas
05/08
07/08
12/08
14/08
19/08
21/08
E-mails do pessoal!!!
"Thamires Cardoso Santoro - Aluno Oracle PLSQL Agosto 2014" <[email protected]>,
"Fabiano Dias Leite - Aluno Oracle PLSQL Agosto 2014" <[email protected]>,
"Paulo Roberto de Oliveira Leite - Aluno Oracle PLSQL Agosto 2014" <[email protected]>,
"Denise Inacio Armindo - Aluno Oracle PLSQL Agosto 2014" <[email protected]>,
"Alexandre Winkel dos Santos - Aluno Oracle PLSQL Agosto 2014" <[email protected]>,
"William Ferreira Carvalho - Aluno Oracle PLSQL Agosto 2014" <[email protected]>,
"Eder Mitsunori Yamasaki - Aluno Oracle PLSQL Agosto 2014" <[email protected]>,
"Rogério Pereira Goulart - Aluno Oracle PLSQL Agosto 2014" <[email protected]>,
------------------------ AULA 1 ---------------------------
-- PL/SQL - Program Language
-- Programação no Banco de Dados
-- PL/PGSQL = PostgreSQL
-- Transaction SQL = SQLServer
-- PL/SQL = MySQL
-- regras de negócios
-- procedures
-- packages
-- triggers
-- functions
-- blocos anônimos
-- Escopo básico
-- bloco anônimo
[DECLARE] -- optional
-- declaração das variáveis
BEGIN
-- Programação
[EXCEPT] -- optional
-- Tratamento de erros
END;
-- enviar texto para o console
dbms_output.put_line('Algum texto');
BEGIN
dbms_output.put_line('Hello world');
END;
-- comentário de linha
/*
comentário
de
bloco
*/
-- Variáveis
-- Exemplo de uso de variáveis
DECLARE
-- nome tipo;
vNome varchar(20);
BEGIN
vNome := 'Edgar';
dbms_output.put_line('Olá ' || vNome || ' tudo bem?');
END;
-- Padrões para nome de variáveis
-- Nomes de variáveis com no máximo 30 caracteres
-- Use no nome da variável algo que descreva muito bem do que se trata
-- Iniciar com letra
-- Não usar palavras reservadas do oracle
-- Não usar caracteres especiais (ç, ^, ~ ...)
-- _ e o # podem ser utilizados
-- Quando o nome for composto utilize o CamelCase -> lowerCamelCase
-- CamelCase -> lowerCamelCase
-- StudlyCaps -> UpperCamelCase
-- quantidadeDeProdutoPorAluno
-- Utilização das aspas simples e aspas duplas
-- "" => identificação de objetos (tables, procedures...)
-- '' => identificação de textos
-- exemplo 2
DECLARE
x number;
vNomeCompleto constant varchar(50) := 'José da Silva';
y2 date;
t4 char(2) not null := 'SP';
vIdade positiveN := 0;
BEGIN
x := 3;
-- vNomeCompleto := 'Maria da Glória';
-- t4 := null;
-- vIdade := -29;
dbms_output.put_line(vNomeCompleto);
dbms_output.put_line(vIdade);
END;
-- number => number(38,0)
-- number(3) => number(3,0)
-- number(10,2) => number(10,2) => 99999999,99
-- varchar e char
-- tabela -> 2000 caracteres
-- PL/SQL -> 32.767 caracteres
-- LOB -> >Long Object Binary
-- LONG -> Long Object (texto)
-- Transações
START TRANSACTION - BEGIN TRANSACTION - BEGIN
COMMIT
ROLLBACK
-- ACID
-- Atomicidade
-- Poder gerenciar comandos garantindo que UM ou TODOS os comandos serão executados
-- são executados ou nenhum será executado
-- impossibilita que dados sejam inseridos parcialmente
-- Consistência
-- Poder manipular informações pelas transações para que nenhum:
-- dados seja disponibilizado em estado inconsistente
-- As alterações só estarão disponíveis depois do COMMIT
-- Isolamento
-- Garante que apenas a própria transação que está trabalhando com os dados
-- tenha acesso à eles
-- Durabilidade
-- Garante a permanência dos dados após a execução da transação,
-- mesmo que ocorra alguma falha no sistema
<inicia transação>
<insere produtos>
<deu erro>? -> SIM ROLLBACK
|
NÃO
COMMIT
DECLARE
<variaveis>
BEGIN
id = sequencia.nextval
START TRANSACTION;
<insere produtos> values(id);
COMMIT;
EXCEPT
ROLLBACK;
END;
-- boolean => true ou false
-- Operadores de condição
if then / elsif endif;
DECLARE
a boolean := true;
b boolean := false;
c boolean := null;
vTeste boolean;
BEGIN
vTeste := (b AND NOT c) OR NOT(a = b) AND (c IS NULL);
IF vTeste = true THEN
dbms_output.put_line('vTeste = true');
ELSIF vTeste = false THEN
dbms_output.put_line('vTeste = false');
ELSIF vTeste IS NULL THEN
dbms_output.put_line('vTeste IS NULL');
END IF;
END;
-- DRY - Don't Repeat Yourself
-- KISS - Keep It Simple Stupid!
DECLARE
a boolean := true;
vResult varchar(5) := 'false';
BEGIN
if a then
vResult := 'true';
end if;
dbms_output.put_line('a = ' || vResult);
END;
if then
else
end if;
if then
elsif
else
end if;
-- Lab01
-- Dado um código, nome e um sexo
-- Responda:
-- Olá aluno <nome>, seu código é <codigo>
-- Olá aluna <nome>, seu código é <codigo>
DECLARE
vCodigo number := 1;
vNome varchar(20) := 'Joao';
vSexo char(1) := 'M';
vTratamento char(5) := 'aluna';
BEGIN
IF (vSexo = 'M') THEN
vTratamento := 'aluno';
END IF;
dbms_output.put_line('Olá ' || vTratamento || ' '
|| vNome || ' , seu código é ' || vCodigo);
END;
-- melhorado (com dialogbox ou "Macro substituição")
DECLARE
vCodigo number;
vNome varchar(20);
vSexo char(1);
vTratamento char(5) := 'aluna';
BEGIN
vCodigo := '&vCodigo';
vNome := '&vNome';
vSexo := '&vSexo';
IF (vSexo = 'M') THEN
vTratamento := 'aluno';
END IF;
dbms_output.put_line('Olá ' || vTratamento || ' '
|| vNome || ' , seu código é ' || vCodigo);
END;
------------------------ AULA 2 ---------------------------
-- Lab02.: Calculadora
-- dados dois inteiros e a operação matemática ('+', '-', '/', '*')
-- executar a operação e mostrar o valor saída dbms
DECLARE
vNum1 number;
vNum2 number;
vOp char(1);
vResult number(3);
BEGIN
vNum1 := &num1;
vOp := '&op';
vNum2 := &num2;
IF vOp = '+' THEN
vResult := vNum1 + vNum2;
ELSIF vOp = '-' THEN
vResult := vNum1 - vNum2;
ELSIF vOp = '*' THEN
vResult := vNum1 * vNum2;
ELSIF vOp = '/' THEN
vResult := vNum1 / vNum2;
ELSE
dbms_output.put_line('Operação inválida');
END IF;
dbms_output.put_line('Resultado: ' || vResult);
END;
-- Lab03.: Conversor de temperatura
-- Dada a fórmula em fahrenheit converta para celsius
-- fórmula: ºC = (ºF -32) / 1,8
DECLARE
vF number(3);
vResult number(3);
BEGIN
vF := &vF;
vResult := (vF - 32) / 1.8;
dbms_output.put_line('Em Celsius: ' || vResult);
END;
-- Escopo de variáveis
DECLARE
x1 number := 5;
BEGIN
DECLARE
x2 number := 7;
BEGIN
DECLARE
x3 number := 9;
BEGIN
dbms_output.put_line(x3);
END;
dbms_output.put_line(x2);
END;
dbms_output.put_line(x1);
END;
-- Quiz
DECLARE
x1 number := 5;
BEGIN
x1 := x1 + 3;
dbms_output.put_line('ETAPA 1 = ' || x1); -- ? 8
DECLARE
x2 number := 7;
BEGIN
x1 := x1 + x2;
dbms_output.put_line('ETAPA 2 = ' || x1); -- ? 15
DECLARE
x1 number := 9;
BEGIN
x1 := x1 + x2 - 3;
dbms_output.put_line('ETAPA 3 = ' || x1); -- ? 13
END;
x1 := x1 - 1;
dbms_output.put_line('ETAPA 4 = ' || x1); -- ? 14
END;
dbms_output.put_line('ETAPA 5 = ' || x1); -- ? 14
END;
-- CASE
-- escopo:
CASE <variavel>
WHEN <valor1> THEN
<alguma coisa>
WHEN <valor2> THEN
<alguma coisa>
WHEN <valor3> THEN
<alguma coisa>
WHEN <valor4> THEN
<alguma coisa>
ELSE
<alguma coisa>
END CASE;
-- Exemplo1:
DECLARE
vPartido varchar(10) := 'PSOL';
BEGIN
CASE vPartido
WHEN 'PT' THEN
dbms_output.put_line('PT');
WHEN 'PSDB' THEN
dbms_output.put_line('PSDB');
WHEN 'PMDB' THEN
dbms_output.put_line('PMDB');
WHEN 'PSOL' THEN
dbms_output.put_line('PSOL');
ELSE
dbms_output.put_line('ND');
END CASE;
END;
-- Exemplo2:
BEGIN
CASE 'A'
WHEN UPPER('a') THEN
dbms_output.put_line('A');
END CASE;
END;
-- LOOP
-- escopo
LOOP
EXIT WHEN <condição>
END LOOP;
-- Exemplo:
DECLARE
x number := 1;
BEGIN
dbms_output.put_line('Início do LOOP');
LOOP
EXIT WHEN x > 5;
dbms_output.put_line('x = ' || x);
x := x + 1;
END LOOP;
dbms_output.put_line('Término do LOOP');
END;
-- WHILE
-- escopo
WHILE <condicao> LOOP
<comandos>
END LOOP;
-- exemplo
DECLARE
x number := 1;
BEGIN
dbms_output.put_line('Início do WHILE');
WHILE x <= 5 LOOP
-- IF x > 3 THEN EXIT; END IF;
-- ou ...
-- EXIT WHEN x > 3; -- não faz parte da sintaxe - usado
-- para quebrar o fluxo do while
dbms_output.put_line('x = ' || x);
x := x + 1;
END LOOP;
dbms_output.put_line('Término do WHILE');
END;
-- FOR
FOR x IN 1 .. 10 LOOP
<comandos>
END LOOP;
-- exemplo INCREMENTAL
BEGIN
dbms_output.put_line('Início do Loop');
FOR x IN 1 .. 10 LOOP
dbms_output.put_line('x = ' || x);
END LOOP;
dbms_output.put_line('Final do Loop');
END;
-- exemplo DECREMENTAL
BEGIN
dbms_output.put_line('Início do Loop');
FOR x IN REVERSE 1 .. 10 LOOP
dbms_output.put_line('x = ' || x);
END LOOP;
dbms_output.put_line('Final do Loop');
END;
-- Lab4: -- WHILE
-- Se você guardar R$ 120,00 por mês na poupança,
-- quando você terá 1 milhão de reais?
-- rendimento: 0.5% => 0.005 => 1.005
-- fórmula: total = (total + deposito) * rendimento
WHILE <condicao> LOOP
<comandos>
END LOOP;
DECLARE
vSaldo number(10,2) := 0;
vMensal number(8,2) := 120.00;
vRendimento number(6,3) := 1.005;
vMeses number := 0;
BEGIN
WHILE vSaldo <= 1000000 LOOP
vMeses := vMeses + 1;
vSaldo := (vSaldo + vMensal) * vRendimento;
END LOOP;
dbms_output.put_line('No final de: ' || vMeses
|| ' meses ou em ' || TRUNC(vMeses/12)
|| ' anos você terá ' || vSaldo);
END;
-- 752 meses
-- 1.002.137,13
-- 1.002.290
-- ROUND
-- TRUNC
-- Lab5: -- FOR
-- Quanto você terá na poupança aplicando R$ 50.00 por
-- mês durante 3 anos?
-- rendimento 0.5%
FOR x IN 1 .. 10 LOOP
<comandos>
END LOOP;
-- Lab4:
DECLARE
vSaldo number(10,2) := 0;
vMensal number(8,2) := 50.00;
vRendimento number(6,3) := 1.005;
vMeses number := 36;
BEGIN
FOR vMes IN 1 .. vMeses LOOP
vSaldo := (vSaldo + vMensal) * vRendimento;
dbms_output.put_line(vMes || ' --> ' || vSaldo);
END LOOP;
dbms_output.put_line('No final de: ' || vMeses
|| ' meses ou em ' || TRUNC(vMeses/12)
|| ' anos você terá ' || vSaldo);
END;
-- 36 meses
-- 1976,64
-- SQL -- dentro PL/SQL
CREATE TABLE tb_cidades(
cd_cidade NUMBER(4) PRIMARY KEY,
nm_cidade VARCHAR2(50) NOT NULL,
tx_uf CHAR(2) NOT NULL
);
INSERT INTO tb_cidades (cd_cidade, nm_cidade, tx_uf)
VALUES (1, 'São Paulo', 'SP');
INSERT INTO tb_cidades (cd_cidade, nm_cidade, tx_uf)
VALUES (2, 'São José dos Campos', 'SP');
-- SEQUENCES
-- escopo
CREATE SEQUENCE seq_<nome>;
CREATE SEQUENCE seq_cidade;
CREATE SEQUENCE
"ALUNO"."SEQ_CIDADE"
MINVALUE 1 MAXVALUE 9999999999999999999999999999
INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER
NOCYCLE ;
-- valor atual -> current value -> currval
-- proximo valor -> next value -> nextval
SELECT seq_cidade.nextval FROM dual;
SELECT seq_cidade.currval FROM dual;
INSERT INTO tb_cidades (cd_cidade, nm_cidade, tx_uf)
VALUES (1, 'São Paulo', 'SP');
INSERT INTO tb_cidades (cd_cidade, nm_cidade, tx_uf)
VALUES (2, 'São José dos Campos', 'SP');
-- Caso você faça igual ao Alexandre...
ALTER SEQUENCE seq_cidade INCREMENT BY 1;
DROP SEQUENCE seq_cidade;
-- adicionando registros com o sequence
INSERT INTO tb_cidades (cd_cidade, nm_cidade, tx_uf)
VALUES (seq_cidade.nextval, 'Jacareí', 'SP');
INSERT INTO tb_cidades (cd_cidade, nm_cidade, tx_uf)
VALUES (seq_cidade.nextval, 'Caçapava', 'SP');
SELECT * FROM tb_cidades;
-- SQL ANSI'92
-- DML - Data Manipulation Language
-- UPDATE, INSERT, DELETE
-- DQL - Data Query Language
-- SELECT, SHOW
-- DDL - Data Definition Language
-- CREATE, ALTER, DROP, DESC, TRUNCATE
-- DCL - Data Control Language
-- GRANT, REVOKE
-- DML no PL/SQL
DECLARE
vCidade varchar2(50) := 'Taubaté';
vUF char(2) := 'SP';
vCod number(5);
BEGIN
INSERT INTO tb_cidades (cd_cidade, nm_cidade, tx_uf)
VALUES (seq_cidade.nextval, vCidade, vUF)
RETURNING cd_cidade INTO vCod;
dbms_output.put_line('A cidade foi cadastrada com o id: '
|| vCod);
END;
------------------------ AULA 3 ---------------------------
-- TYPE
-- Usando o TYPE para capturar o tipo de dado de uma coluna
DESC tb_cidades;
SELECT * FROM tb_cidades;
%type
<tabela>.<coluna>%type;
DECLARE
vCidade tb_cidades.nm_cidade%type := 'Arujá';
vUF tb_cidades.tx_uf%type := 'SP';
vCod number(5);
BEGIN
INSERT INTO tb_cidades (cd_cidade, nm_cidade, tx_uf)
VALUES (seq_cidade.nextval, vCidade, vUF)
RETURNING cd_cidade INTO vCod;
dbms_output.put_line('A cidade foi cadastrada com o id: '
|| vCod);
END;
-- ROWTYPE
DECLARE
vReg tb_cidades%rowtype;
vCod number(5);
BEGIN
vReg.nm_cidade := 'Guarulhos';
vReg.tx_uf := 'SP';
INSERT INTO tb_cidades (cd_cidade, nm_cidade, tx_uf)
VALUES (seq_cidade.nextval, vReg.nm_cidade, vReg.tx_uf)
RETURNING cd_cidade INTO vCod;
dbms_output.put_line('A cidade foi cadastrada com o id: '
|| vCod);
END;
-- SUBTYPE
DECLARE
SUBTYPE tipo_telefone IS tb_usuarios%rowtype;
vTelefone1 tipo_telefone;
vTelefone2 tipo_telefone;
vTelefone3 tipo_telefone;
BEGIN
vTelefone1 := '(34) 5345-3345';
END;
-- TYPE - DDL - criando tipos de dados no Oracle
-- escopo:
CREATE OR REPLACE TYPE <nome>
AS OBJECT (
<coluna> <tipo>,
<coluna> <tipo>
);
CREATE OR REPLACE TYPE full_name_type
AS OBJECT (
first_name varchar(80),
last_name varchar(80)
);
CREATE OR REPLACE TYPE full_mailing_address_type
AS OBJECT(
street varchar(80),
city varchar(80),
state char(2),
zip char(9)
);
-- utilizando o TYPE
CREATE TABLE customer(
full_name full_name_type,
full_address full_mailing_address_type
);
-- inserindo registros com o TYPE
INSERT INTO customer(full_name, full_address)
VALUES(
full_name_type('Edgar', 'Sandi'),
full_mailing_address_type('Av. Nelson Dávila','SJC', 'SP','12220-000')
);
-- SELECT registros com o TYPE
SELECT c.full_name.first_name, c.full_address.street
FROM customer c;
-- DQL (SELECT) dentro do PL/SQL
-- O SELECT dentro do PL/SQL possui limitações
-- Ele não pode retornar mais do que 1 registro
-- Ele não pode retornar um registro completo
DECLARE
vCidade varchar(50) := '';
BEGIN
SELECT nm_cidade INTO vCidade
FROM tb_cidades
WHERE cd_cidade = 1;
dbms_output.put_line('Cidade encontrada: ' || vCidade);
END;
[NA VM]
-> dispositivos -> adaptadores de rede
-- trocar de NAT para placa em modo bridge
-> aplicativos -> sistema -> terminal
su - [enter]
season
mv /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
no arquivo:
/etc/sysconfig/network-scripts/ifcfg-eth1
trocar:
DEVICE=eth0
BOOTPROTO=none
para:
DEVICE=eth1
BOOTPROTO=dhcp
comente as linhas:
#HWADDR=08:00:27:9D:05:D6
#IPADDR=10.0.2.15
#NETMASK=255.255.255.0
#BROADCAST=10.0.2.255
#GATEWAY=10.0.2.2
service network restart
-- senha expirou?
sqlplus / as sysdba
SELECT profile from DBA_USERS where username = 'ALUNO';
ALTER profile DEFAULT limit password_life_time UNLIMITED;
ALTER USER ALUNO IDENTIFIED BY "season";
DECLARE
vCidade varchar(50) := '';
BEGIN
SELECT nm_cidade INTO vCidade
FROM tb_cidades
WHERE cd_cidade = 1;
dbms_output.put_line('Cidade encontrada: ' || vCidade);
END;
-- Lab6
-- Através de uma consulta (passando o cd_aluno) cd_aluno := 1
-- As inscricoes de um aluno
-- Resposta: "O aluno" / "A aluna" realizou x inscricoes
tb_alunos, tb_inscricoes, tb_turmas, tb_cursos, tb_categorias,
tb_instrutores e tb_salas
-- DUMP - INICIAL
-- criar tabelas
-- tb_categorias
CREATE TABLE tb_categorias(
cd_categoria number(3) PRIMARY KEY NOT NULL,
nm_categoria varchar2(50) NOT NULL
);
-- tb_instrutores
CREATE TABLE tb_instrutores(
cd_instrutor number(3) PRIMARY KEY NOT NULL,
nm_instrutor varchar2(50) NOT NULL
);
-- tb_salas
CREATE TABLE tb_salas(
cd_sala char(3) PRIMARY KEY NOT NULL,
nm_sala varchar2(50) NOT NULL,
vl_capacidade number(3) NOT NULL
);
-- tb_cursos
CREATE TABLE tb_cursos(
cd_curso NUMBER(5) PRIMARY KEY NOT NULL,
nm_curso varchar2(50) NOT NULL,
vl_ch NUMBER(4),
cd_categoria number(3)
);
-- tb_turmas
CREATE TABLE tb_turmas(
cd_turma NUMBER(6) PRIMARY KEY NOT NULL,
dt_inicio DATE NOT NULL,
dt_fim DATE NOT NULL,
tx_periodo char(1) NOT NULL, -- M ou T ou N
cd_instrutor NUMBER(3),
cd_curso NUMBER(5),
cd_sala CHAR(3)
);
-- tb_alunos
CREATE TABLE tb_alunos(
cd_aluno NUMBER(5) PRIMARY KEY,
nm_aluno VARCHAR2(50) NOT NULL,
tx_sexo CHAR(1) NOT NULL, -- M ou F
dt_nascimento DATE
);
-- tb_inscricoes
CREATE TABLE tb_inscricoes(
cd_aluno NUMBER(5) NOT NULL,
cd_turma NUMBER(6) NOT NULL,
dt_inscricao DATE NOT NULL,
vl_inscricao NUMBER(10,2) NOT NULL, -- 99999999,99
PRIMARY KEY(cd_aluno, cd_turma)
);
-- Criar constraints
-- tb_cursos x tb_categorias
ALTER TABLE tb_cursos
ADD CONSTRAINT fk_cursos__categorias
FOREIGN KEY (cd_categoria)
REFERENCES tb_categorias(cd_categoria);
-- tb_turmas x tb_cursos
ALTER TABLE tb_turmas
ADD CONSTRAINT fk_turmas__cursos
FOREIGN KEY (cd_curso)
REFERENCES tb_cursos(cd_curso);
-- tb_turmas x tb_instrutores
ALTER TABLE tb_turmas
ADD CONSTRAINT fk_turmas__instrutores
FOREIGN KEY (cd_instrutor)
REFERENCES tb_instrutores(cd_instrutor);
-- tb_turmas x tb_salas
ALTER TABLE tb_turmas
ADD CONSTRAINT fk_turmas__salas
FOREIGN KEY (cd_sala)
REFERENCES tb_salas(cd_sala);
-- tb_inscricoes x tb_turmas
ALTER TABLE tb_inscricoes
ADD CONSTRAINT fk_inscricoes__turmas
FOREIGN KEY (cd_turma)
REFERENCES tb_turmas(cd_turma);
-- tb_inscricoes x tb_alunos
ALTER TABLE tb_inscricoes
ADD CONSTRAINT fk_inscricoes__alunos
FOREIGN KEY (cd_aluno)
REFERENCES tb_alunos(cd_aluno);
-- Inserir registros
ALTER SESSION SET NLS_DATE_FORMAT='DD/MM/YYYY';
INSERT ALL
INTO tb_categorias (cd_categoria, nm_categoria) VALUES (1,'Banco de dados')
INTO tb_categorias (cd_categoria, nm_categoria) VALUES (2,'Programação')
INTO tb_categorias (cd_categoria, nm_categoria) VALUES (3,'Design')
SELECT * FROM dual;
INSERT INTO tb_cursos (cd_curso, nm_curso, vl_ch, cd_categoria)
VALUES(1,'Oracle Essencial',24,1);
INSERT INTO tb_cursos (cd_curso, nm_curso, vl_ch, cd_categoria)
VALUES(2,'PHP',40,2);
INSERT INTO tb_cursos (cd_curso, nm_curso, vl_ch, cd_categoria)
VALUES(3,'Oracle PL/SQL',24,3);
INSERT INTO tb_instrutores (cd_instrutor, nm_instrutor) VALUES (1,'Ronaldo');
INSERT INTO tb_instrutores (cd_instrutor, nm_instrutor) VALUES (2,'João');
INSERT INTO tb_instrutores (cd_instrutor, nm_instrutor) VALUES (3,'Pedro');
INSERT INTO tb_salas (cd_sala, nm_sala, vl_capacidade) VALUES ('S01','Sala 01',8);
INSERT INTO tb_salas (cd_sala, nm_sala, vl_capacidade) VALUES ('S02','Sala 02',12);
INSERT INTO tb_alunos (cd_aluno, nm_aluno, tx_sexo, dt_nascimento)
VALUES (1,'Marisa','F','27/03/1979');
INSERT INTO tb_alunos (cd_aluno, nm_aluno, tx_sexo, dt_nascimento)
VALUES (2,'Rosana','F','27/03/1979');
INSERT INTO tb_alunos (cd_aluno, nm_aluno, tx_sexo, dt_nascimento)
VALUES (3,'Carlos','M','15/06/1960');
INSERT INTO tb_alunos (cd_aluno, nm_aluno, tx_sexo, dt_nascimento)
VALUES (4,'Fabio','M','20/09/1985');
INSERT INTO tb_alunos (cd_aluno, nm_aluno, tx_sexo, dt_nascimento)
VALUES (5,'Fabiana','F','11/10/1986');
INSERT INTO tb_alunos (cd_aluno, nm_aluno, tx_sexo, dt_nascimento)
VALUES (6,'Ana','F','11/12/1975');
INSERT INTO tb_alunos (cd_aluno, nm_aluno, tx_sexo, dt_nascimento)
VALUES (7,'Clara','F','11/12/2000');
INSERT INTO tb_alunos (cd_aluno, nm_aluno, tx_sexo, dt_nascimento)
VALUES (8,'Henrique','M','10/07/1996');
INSERT INTO tb_alunos (cd_aluno, nm_aluno, tx_sexo, dt_nascimento)
VALUES (9,'Claudia','F','01/07/1993');
INSERT INTO tb_alunos (cd_aluno, nm_aluno, tx_sexo, dt_nascimento)
VALUES (10,'Marta','F','08/04/1997');
INSERT INTO tb_turmas (cd_turma, dt_inicio, dt_fim, tx_periodo, cd_instrutor,
cd_curso, cd_sala)
VALUES (1,'01/07/2008','10/10/2008','M',1,1,'S01');
INSERT INTO tb_turmas (cd_turma, dt_inicio, dt_fim, tx_periodo, cd_instrutor,
cd_curso, cd_sala)
VALUES (2,'01/05/2008','10/6/2008','T',2,1,'S02');
INSERT INTO tb_turmas (cd_turma, dt_inicio, dt_fim, tx_periodo, cd_instrutor,
cd_curso, cd_sala)
VALUES (3,'01/06/2008','10/8/2008','N',1,2,'S01');
INSERT INTO tb_turmas (cd_turma, dt_inicio, dt_fim, tx_periodo, cd_instrutor,
cd_curso, cd_sala)
VALUES (4,'05/10/2008','09/11/2008','N',2,3,'S01');
INSERT INTO tb_turmas (cd_turma, dt_inicio, dt_fim, tx_periodo, cd_instrutor,
cd_curso, cd_sala)
VALUES (5,'05/10/2008','09/11/2008','M',1,3,'S02');
INSERT INTO tb_inscricoes (cd_aluno, cd_turma, dt_inscricao, vl_inscricao)
VALUES (1,1,'10/05/2008',500);
INSERT INTO tb_inscricoes (cd_aluno, cd_turma, dt_inscricao, vl_inscricao)
VALUES (2,3,'10/06/2008',800);
INSERT INTO tb_inscricoes (cd_aluno, cd_turma, dt_inscricao, vl_inscricao)
VALUES (3,4,'10/07/2008',900);
INSERT INTO tb_inscricoes (cd_aluno, cd_turma, dt_inscricao, vl_inscricao)
VALUES (4,2,'10/05/2008',500);
INSERT INTO tb_inscricoes (cd_aluno, cd_turma, dt_inscricao, vl_inscricao)
VALUES (4,3,'10/06/2008',600);
INSERT INTO tb_inscricoes (cd_aluno, cd_turma, dt_inscricao, vl_inscricao)
VALUES (5,5,'10/04/2008',700);
INSERT INTO tb_inscricoes (cd_aluno, cd_turma, dt_inscricao, vl_inscricao)
VALUES (6,1,'10/03/2008',1000.50);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment