CREATE TABLE Autores (
AutorID INT AUTO_INCREMENT PRIMARY KEY,
Nome VARCHAR(100),
Email VARCHAR(100),
InstituicaoID INT,
FOREIGN KEY (InstituicaoID) REFERENCES Instituicoes(InstituicaoID)
);
CREATE TABLE Revistas (
RevistaID INT AUTO_INCREMENT PRIMARY KEY,
Nome VARCHAR(100),
ISSN VARCHAR(20)
);
CREATE TABLE Artigos (
ArtigoID INT AUTO_INCREMENT PRIMARY KEY,
Titulo VARCHAR(255),
Resumo TEXT,
PalavrasChave VARCHAR(255),
RevistaID INT,
FOREIGN KEY (RevistaID) REFERENCES Revistas(RevistaID)
);
CREATE TABLE Instituicoes (
InstituicaoID INT AUTO_INCREMENT PRIMARY KEY,
Nome VARCHAR(100),
Cidade VARCHAR(100),
Pais VARCHAR(100)
);
CREATE TABLE Autor_Artigo (
AutorID INT,
ArtigoID INT,
PRIMARY KEY (AutorID, ArtigoID),
FOREIGN KEY (AutorID) REFERENCES Autores(AutorID),
FOREIGN KEY (ArtigoID) REFERENCES Artigos(ArtigoID)
);
Com relação ao código SQL acima, no SGBD MySQL, julgue os itens de 96 a 100.
Para que se mostre o número de artigos publicados por cada autor, pode-se utilizar o comando a seguir.
SELECT Autores.Nome AS NomeAutor, COUNT(*) AS NumeroArtigos
FROM Autores
INNER JOIN Autor_Artigo ON Autores.AutorID = Autor_Artigo.AutorID
GROUP BY Autores.Nome;