DROP TABLE IF EXISTS TB_MATHEUS_MEDEIROS_AVALIACOES; DROP TABLE IF EXISTS TB_MATHEUS_MEDEIROS_JOGOS; DROP SEQUENCE IF EXISTS TB_MATHEUS_MEDEIROS_AVALIACOES_SEQ; DROP SEQUENCE IF EXISTS TB_MATHEUS_MEDEIROS_JOGOS_SEQ; CREATE SEQUENCE TB_MATHEUS_MEDEIROS_JOGOS_SEQ START WITH 1 INCREMENT BY 1 CACHE 1 NO CYCLE; CREATE TABLE TB_MATHEUS_MEDEIROS_JOGOS ( CODIGO NUMERIC(10) DEFAULT NEXTVAL('TB_MATHEUS_MEDEIROS_JOGOS_SEQ') NOT NULL, TITULO VARCHAR(100) NOT NULL, GENERO VARCHAR(30) NOT NULL, ANO_LANCAMENTO NUMERIC(4) NOT NULL, PRODUTORA VARCHAR(50) NOT NULL, NOTA_MEDIA NUMERIC(3,1), DESCRICAO VARCHAR(500), CONSTRAINT PK_MM_JOGOS PRIMARY KEY (CODIGO), CONSTRAINT CK_MM_JOGOS_TITULO CHECK (LENGTH(TITULO) BETWEEN 3 AND 100), CONSTRAINT CK_MM_JOGOS_ANO CHECK ( ANO_LANCAMENTO BETWEEN 1970 AND EXTRACT(YEAR FROM CURRENT_DATE) ), CONSTRAINT CK_MM_JOGOS_NOTA_MEDIA CHECK ( NOTA_MEDIA IS NULL OR NOTA_MEDIA BETWEEN 0 AND 10 ) ); CREATE SEQUENCE TB_MATHEUS_MEDEIROS_AVALIACOES_SEQ START WITH 1 INCREMENT BY 1 CACHE 1 NO CYCLE; CREATE TABLE TB_MATHEUS_MEDEIROS_AVALIACOES ( CODIGO NUMERIC(10) DEFAULT NEXTVAL('TB_MATHEUS_MEDEIROS_AVALIACOES_SEQ') NOT NULL, NOME VARCHAR(100) NOT NULL, EMAIL VARCHAR(150) NOT NULL, COMENTARIO VARCHAR(300), NOTA NUMERIC(3,1), DATA_AVALIACAO TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, ID_JOGO NUMERIC(10) NOT NULL, CONSTRAINT PK_MM_AVALIACOES PRIMARY KEY (CODIGO), CONSTRAINT UK_MM_AVAL_EMAIL_JOGO UNIQUE (EMAIL, ID_JOGO), CONSTRAINT FK_MM_AVAL_JOGO FOREIGN KEY (ID_JOGO) REFERENCES TB_MATHEUS_MEDEIROS_JOGOS (CODIGO), CONSTRAINT CK_MM_AVAL_NOTA CHECK ( NOTA IS NULL OR NOTA BETWEEN 0 AND 10 ) );