Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE TABLE pessoa(
- cod NUMBER(5),
- nome VARCHAR2(200),
- pai NUMBER(5),
- CONSTRAINT pkpessoa PRIMARY KEY (cod),
- CONSTRAINT fkpessoapai foreign KEY (pai) references pessoa(cod)
- );
- INSERT INTO pessoa (cod,nome) VALUES (1,'Adao');
- INSERT INTO pessoa (cod,nome,pai) VALUES (2,'Abel',1);
- INSERT INTO pessoa (cod,nome,pai) VALUES (3,'Caim',1);
- INSERT INTO pessoa (cod,nome,pai) VALUES (4,'Joao',2);
- INSERT INTO pessoa (cod,nome,pai) VALUES (5,'Carlos',2);
- INSERT INTO pessoa (cod,nome,pai) VALUES (6,'Marcos',5);
- INSERT INTO pessoa (cod,nome,pai) VALUES (7,'Julio',6);
- INSERT INTO pessoa (cod,nome,pai) VALUES (8,'Otavio',6);
- SELECT p1.cod, p1.nome, pai.cod, pai.nome
- FROM pessoa p1, pessoa pai
- WHERE p1.pai = pai.cod
- UNION
- SELECT cod,nome,-1,'idk'
- FROM pessoa
- WHERE pai IS NULL;
- ALTER TABLE pessoa ADD(cpf NUMBER(10));
- ALTER TABLE pessoa ADD CONSTRAINT ukcpf UNIQUE(cpf);
- ALTER TABLE pessoa DROP CONSTRAINT ukcpf;
- ALTER TABLE pessoa MODIFY cpf NUMBER(11);
- ----------------------------------------------------------------------
- exercício:
- 1) inclua na tabela pessoa:
- campos - rg VARCHAR2(20),mae VARCHAR2(100), dt_nasc DATE, cidade VARCHAR2(100), sexo CHAR(1), salario NUMBER(10)
- regras - UNIQUE(rg), UNIQUE(nome,mae,dt_nasc),
- CHECK sexo m _masculino f _feminino
- CHECK salario > 700
- ----------------------------------------------------------------------
- ALTER TABLE pessoa ADD(rg VARCHAR2(20), mae VARCHAR2(100), dt_nasc DATE, cidade VARCHAR2(100), sexo CHAR(1), salario NUMBER(10));
- ALTER TABLE pessoa ADD CONSTRAINT ukrg UNIQUE(rg);
- ALTER TABLE pessoa ADD CONSTRAINT uknome UNIQUE(nome,mae,dt_nasc);
- ALTER TABLE pessoa MODIFY sexo CHAR(1) CHECK (sexo IN('m','f'));
- ALTER TABLE pessoa MODIFY salario NUMBER(10) CHECK (salario > 700);
- INSERT INTO pessoa (cod,nome,cpf,rg,pai,mae,dt_nasc,cidade,sexo,salario) VALUES (9,'Cerola',79,69,8,'Mylena','17-08-2016','Florianopolis','m',701);
- INSERT INTO pessoa (cod,nome,cpf,rg,pai,mae,dt_nasc,cidade,sexo,salario) VALUES (10,'Cerola',79,59,8,'Mylena','17-08-2016','Florianopolis','f',701);
- INSERT INTO pessoa (cod,nome,cpf,rg,pai,mae,dt_nasc,cidade,sexo,salario) VALUES (11,'Kellen',79,49,8,'Mylena','17-08-2016','Florianopolis','f',701);
- ----------------------------------------------------------------------
- SELECT SYSDATE FROM dual;
- SELECT UPPER('ana') FROM dual;
- SELECT MAX(cod) FROM pessoa;
- CREATE SEQUENCE sqpessoacod START WITH 12 INCREMENT BY 1;
- CREATE OR REPLACE TRIGGER tgpessoa
- before INSERT OR UPDATE ON pessoa
- FOR each ROW
- DECLARE
- v_cod NUMBER(5);
- BEGIN
- IF inserting THEN
- SELECT sqpessoacod.NEXTVAL INTO v_cod FROM dual;
- :NEW.cod: = v_cod;
- END IF;
- :NEW.nome: = UPPER(:NEW.nome);
- :NEW.mae: = UPPER(:NEW.mae);
- END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement