CREATE DATABASE DBSISTEMAARTIGOS; /*USE DBSISTEMAARTIGOS; */
CREATE TABLE USUARIO ( ID SERIAL PRIMARY KEY, NOME VARCHAR(245) NOT NULL, EMAIL VARCHAR(245) NOT NULL UNIQUE, PASSWORD VARCHAR(245) NOT NULL, ADMIN BOOLEAN DEFAULT false );
CREATE TABLE CATEGORIA ( ID SERIAL PRIMARY KEY, /usando SERIAL e PRIMARY KEY não há a necessidade do uso de NOT NULL e AUTO_INCREMENT/ NOME VARCHAR(245) NOT NULL );
CREATE TABLE ARTIGO ( ID SERIAL PRIMARY KEY, /tipo correto SERIAL ao invés do INT, AUTO_INCREMENT não necessário/ NOME VARCHAR(245) NOT NULL, DESCRICAO VARCHAR(245) NOT NULL, /como todos os outros campos estavam NOT NULL, imaginei que esse também deveria ficar, pois lá em cima, no outro exercício de criação de tabelas, esse campo Descrição também era NOT NULL/ CONTEUDO JSON NOT NULL, ANO INT NOT NULL, IDUSUARIO INT NOT NULL, IDCATEGORIA INT NOT NULL, FOREIGN KEY (IDUSUARIO) REFERENCES USUARIO (ID), FOREIGN KEY (IDCATEGORIA) REFERENCES CATEGORIA (ID) );
/aspas simples no lugar de aspas duplas nos valores/ INSERT INTO USUARIO (NOME, EMAIL, PASSWORD) VALUES ('JORGE HENRIQUE', 'jorge@teste.com', 'senha'); INSERT INTO USUARIO (NOME, EMAIL, PASSWORD) VALUES ('JOAO PAULO', 'joao@teste.com', 'senha'); INSERT INTO USUARIO (NOME, EMAIL, PASSWORD) VALUES ('ANA MARTINS', 'ana@teste.com', 'senha'); INSERT INTO USUARIO (NOME, EMAIL, PASSWORD) VALUES ('LUIZA FLORES', 'luiza@teste.com', 'senha'); INSERT INTO USUARIO (NOME, EMAIL, PASSWORD) VALUES ('PAULO TARSO', 'paulo@teste.com', 'senha'); INSERT INTO USUARIO (NOME, EMAIL, PASSWORD, ADMIN) VALUES ('AMANDA SILVA', 'amanda@teste.com', 'senha', true);
INSERT INTO CATEGORIA (NOME) VALUES('TECNOLOGIA'); INSERT INTO CATEGORIA (NOME) VALUES('CIENCIA'); INSERT INTO CATEGORIA (NOME) VALUES('PROGRAMACAO');
INSERT INTO ARTIGO (NOME, DESCRICAO, CONTEUDO, ANO, IDUSUARIO, IDCATEGORIA)VALUES('INTRODUCAO AO DOCKER', 'PRIMEIRO CONTATO COM DOCKER', '{"conteudo": "UM CONTEUDO QUALQUER"}', 2020, 1, 1); INSERT INTO ARTIGO (NOME, DESCRICAO, CONTEUDO, ANO, IDUSUARIO, IDCATEGORIA)VALUES('ENTENDENDO REGEX', 'ONDE UTILIZAR REGEX', '{"conteudo": "UM CONTEUDO QUALQUER"}', 2019, 2, 2); INSERT INTO ARTIGO (NOME, DESCRICAO, CONTEUDO, ANO, IDUSUARIO, IDCATEGORIA)VALUES('GoLang', 'SIMPLIFICANDO A COMPLEXIDADE', '{"conteudo": "UM CONTEUDO QUALQUER"}', 2020, 3, 3); INSERT INTO ARTIGO (NOME, DESCRICAO, CONTEUDO, ANO, IDUSUARIO, IDCATEGORIA)VALUES('PHP', 'PHP morreu ou vai morrer?', '{"conteudo": "UM CONTEUDO QUALQUER"}', 2018, 6, 1);
Faça uma consulta de artigos que retorne todos os campos de artigos, mas somente de artigos que são de usuários administradores. Faça uma consulta de artigos que retorne os artigos com o nome de suas categorias, limite essa consulta para que traga no máximo 2 resultados em ordem ascendente.
Estou procurando alguns exercícios na internet para fixar o aprendizado e não consegui resolver esse. Como faço os SELECT abaixo? Alguém pode me ajudar porque não entendi a lógica por trás. Desde já agradeço