Advertisement
fahadkalil

projeto_plsql_g1

Sep 27th, 2019
427
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 4.22 KB | None | 0 0
  1. DROP TABLE cidade CASCADE CONSTRAINTS;
  2. DROP TABLE cliente CASCADE CONSTRAINTS;
  3. DROP TABLE periodicidade CASCADE CONSTRAINTS;
  4. DROP TABLE tipo_espetaculo CASCADE CONSTRAINTS;
  5. DROP TABLE estabelecimento CASCADE CONSTRAINTS;
  6. DROP TABLE espetaculo CASCADE CONSTRAINTS;
  7. DROP TABLE sessao CASCADE CONSTRAINTS;
  8. DROP TABLE reserva CASCADE CONSTRAINTS;
  9. DROP TABLE pedido CASCADE CONSTRAINTS;
  10.  
  11. CREATE TABLE cidade (
  12.     cod_cidade INT NOT NULL,
  13.     nome VARCHAR(50) NOT NULL,
  14.     uf CHAR(2) NOT NULL
  15. );
  16. ALTER TABLE cidade ADD CONSTRAINT cidade_pk PRIMARY KEY (cod_cidade);
  17. ALTER TABLE cidade ADD CONSTRAINT cidade_uq UNIQUE (nome, uf);
  18.  
  19.  
  20. CREATE TABLE cliente (
  21.     cod_cliente INT NOT NULL,
  22.     nome VARCHAR2(50) NOT NULL,
  23.     sobrenome VARCHAR2(50) NOT NULL,
  24.     cpf VARCHAR2(20) NOT NULL,
  25.     endereco_entrega VARCHAR2 (100) NOT NULL,
  26.     cod_cidade INT NOT NULL,
  27.     status CHAR(1) DEFAULT 'A'
  28. );
  29. ALTER TABLE cliente ADD CONSTRAINT cliente_pk PRIMARY KEY (cod_cliente);
  30.  
  31. ALTER TABLE cliente ADD CONSTRAINT cliente_cidade_fk
  32.     FOREIGN KEY (cod_cidade) REFERENCES cidade (cod_cidade);
  33.    
  34. ALTER TABLE cliente ADD CONSTRAINT cliente_status_ck
  35.   CHECK (status IN ('A', 'I'));
  36.  
  37.  
  38. CREATE TABLE periodicidade (
  39.     cod_periodicidade INT NOT NULL,
  40.     descricao VARCHAR2(50) NOT NULL
  41. );
  42. ALTER TABLE periodicidade ADD CONSTRAINT periodicidade_pk PRIMARY KEY (cod_periodicidade);
  43.  
  44.  
  45. CREATE TABLE tipo_espetaculo (
  46.     cod_tipo_espetaculo INT NOT NULL,
  47.     descricao VARCHAR2(50) NOT NULL
  48. );
  49. ALTER TABLE tipo_espetaculo ADD CONSTRAINT tipo_espetaculo_pk PRIMARY KEY (cod_tipo_espetaculo);
  50.  
  51.  
  52. CREATE TABLE estabelecimento (
  53.     cod_estabelecimento INT NOT NULL,
  54.     nome VARCHAR2(50) NOT NULL,
  55.     endereco VARCHAR2(50),
  56.     tem_estacionamento CHAR(1),
  57.     cod_tipo_espetaculo INT NOT NULL
  58. );
  59. ALTER TABLE estabelecimento ADD CONSTRAINT estabelecimento_pk PRIMARY KEY (cod_estabelecimento);
  60.  
  61. ALTER TABLE estabelecimento ADD CONSTRAINT estab_estac_ck CHECK (tem_estacionamento IN ('T', 'F'));
  62.  
  63. ALTER TABLE estabelecimento ADD CONSTRAINT estab_tipo_espetaculo_fk
  64.     FOREIGN KEY (cod_tipo_espetaculo) REFERENCES tipo_espetaculo (cod_tipo_espetaculo);
  65.  
  66.    
  67. CREATE TABLE espetaculo (
  68.     cod_espetaculo INT NOT NULL,
  69.     nome VARCHAR2(50),
  70.     descricao VARCHAR2(100),
  71.     cod_estabelecimento INT NOT NULL
  72. );
  73. ALTER TABLE espetaculo ADD CONSTRAINT espetaculo_pk PRIMARY KEY (cod_espetaculo);
  74. ALTER TABLE espetaculo ADD CONSTRAINT espetaculo_estab_fk
  75.     FOREIGN KEY (cod_estabelecimento) REFERENCES estabelecimento (cod_estabelecimento);
  76.  
  77.  
  78. CREATE TABLE sessao (
  79.     cod_sessao INT NOT NULL,
  80.     cod_espetaculo INT NOT NULL,
  81.     data_hora_inicio DATE,
  82.     duracao INT NOT NULL,
  83.     total_ingressos INT,
  84.     preco NUMBER NOT NULL
  85. );
  86. ALTER TABLE sessao ADD CONSTRAINT sessao_pk PRIMARY KEY (cod_sessao);
  87. ALTER TABLE sessao ADD CONSTRAINT sessao_espetaculo_fk
  88.     FOREIGN KEY (cod_espetaculo) REFERENCES espetaculo (cod_espetaculo);
  89. ALTER TABLE sessao ADD cod_periodicidade INT NOT NULL;
  90. ALTER TABLE sessao ADD CONSTRAINT sessao_periodicidade_fk
  91.     FOREIGN KEY (cod_periodicidade) REFERENCES periodicidade (cod_periodicidade);
  92.  
  93.     CREATE TABLE pedido (
  94.     cod_pedido INT NOT NULL,
  95.     cod_cliente INT NOT NULL,
  96.     data_pedido DATE NOT NULL,
  97.     data_cancelamento DATE,
  98.     status CHAR(1) DEFAULT 'A' NOT NULL CHECK (status IN ('A','I'))
  99. );
  100. ALTER TABLE pedido ADD CONSTRAINT pedido_pk PRIMARY KEY (cod_pedido);
  101. ALTER TABLE pedido ADD CONSTRAINT pedido_cliente_fk
  102.     FOREIGN KEY (cod_cliente) REFERENCES cliente (cod_cliente);
  103.  
  104.    
  105. CREATE TABLE reserva (
  106.     cod_pedido INT NOT NULL,
  107.     cod_espetaculo INT NOT NULL,
  108.     cod_sessao INT NOT NULL,
  109.     cod_reserva INT NOT NULL,
  110.     cadeira VARCHAR2(10) NOT NULL,
  111.     status CHAR(1) DEFAULT 'A'
  112. );
  113. ALTER TABLE reserva ADD CONSTRAINT reserva_pk PRIMARY KEY (cod_reserva);
  114. ALTER TABLE reserva ADD CONSTRAINT reserva_unique UNIQUE (cod_espetaculo, cod_sessao, cadeira);
  115. ALTER TABLE reserva ADD CONSTRAINT reserva_pedido_fk
  116.     FOREIGN KEY (cod_pedido) REFERENCES pedido (cod_pedido);
  117.    
  118. ALTER TABLE reserva ADD CONSTRAINT reserva_espetaculo_fk
  119.     FOREIGN KEY (cod_espetaculo) REFERENCES espetaculo (cod_espetaculo);
  120.    
  121. ALTER TABLE reserva ADD CONSTRAINT reserva_sessao_fk
  122.     FOREIGN KEY (cod_sessao) REFERENCES sessao (cod_sessao);
  123.    
  124. ALTER TABLE reserva ADD CONSTRAINT reserva_status_ck CHECK (status IN ('A', 'I'));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement