/* \i 'H:\\Linguaggi_1\\PostgreSQL\\Musiche-1_Create.sql' */ DROP DATABASE IF EXISTS musiche; CREATE DATABASE musiche; /* Creazione del db */ \c musiche CREATE TABLE PERSONE ( NomePersona VARCHAR(20) PRIMARY KEY, AnnoNascita INTEGER NOT NULL ); CREATE TABLE ALBUM ( IdeAlbum INTEGER PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, TitoloAlbum VARCHAR(50) NOT NULL, AnnoAlbum INTEGER NOT NULL ); CREATE TABLE CANZONI ( IdeCanzone INTEGER PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, TitoloCanzone VARCHAR(50) NOT NULL, AnnoCanzone INTEGER ); CREATE TABLE ALBUM_CANZO ( IdeAlbum INTEGER REFERENCES ALBUM(IdeAlbum) ON DELETE CASCADE ON UPDATE CASCADE, IdeTraccia INTEGER, IdeCanzone INTEGER NOT NULL REFERENCES CANZONI(IdeCanzone) ON DELETE CASCADE ON UPDATE CASCADE, PRIMARY KEY(IdeAlbum, IdeTraccia), UNIQUE(IdeAlbum, IdeCanzone) ); CREATE TABLE AUTORI_CANZO ( NomePersona VARCHAR(20) REFERENCES PERSONE(NomePersona) ON DELETE CASCADE ON UPDATE CASCADE, IdeCanzone INTEGER REFERENCES CANZONI(IdeCanzone) ON DELETE CASCADE ON UPDATE CASCADE, PRIMARY KEY(NomePersona, IdeCanzone) ); CREATE TABLE CANTANTI_CANZO ( NomePersona VARCHAR(20) REFERENCES PERSONE(NomePersona) ON DELETE CASCADE ON UPDATE CASCADE, IdeCanzone INTEGER REFERENCES CANZONI(IdeCanzone) ON DELETE CASCADE ON UPDATE CASCADE, PRIMARY KEY(NomePersona, IdeCanzone) );