Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DROP SCHEMA IF EXISTS Bildedeling;
- CREATE SCHEMA Bildedeling;
- USE Bildedeling;
- CREATE TABLE Bruker (
- BrukerID VARCHAR(32) NOT NULL,
- Fornavn VARCHAR(32) NOT NULL,
- Etternavn VARCHAR(32) NOT NULL,
- Epost VARCHAR(64) NOT NULL,
- PRIMARY KEY(BrukerID)
- );
- CREATE TABLE Bilde (
- BildeID VARCHAR(32) NOT NULL,
- Beskrivelse VARCHAR(255),
- OpplastetDato DATE NOT NULL,
- Fotograf VARCHAR(32) NOT NULL,
- PRIMARY KEY (BildeId),
- FOREIGN KEY (Fotograf) REFERENCES Bruker(BrukerID)
- );
- CREATE TABLE Likes (
- BildeID VARCHAR(32) NOT NULL,
- BrukerID VARCHAR(32) NOT NULL,
- CONSTRAINT LikesPN PRIMARY KEY(BildeID, BrukerID),
- CONSTRAINT LikesBildeFN FOREIGN KEY(BildeID) REFERENCES Bilde(BildeID),
- CONSTRAINT LikesBrukerFN FOREIGN KEY(BrukerID) REFERENCES Bruker(BrukerID)
- );
- CREATE TABLE Kommentarer (
- BildeID VARCHAR(32) NOT NULL,
- BrukerID VARCHAR(32) NOT NULL,
- Kommentaren TEXT NOT NULL,
- CONSTRAINT KommentarPN PRIMARY KEY(BildeID, BrukerID),
- CONSTRAINT KommentarBildeFN FOREIGN KEY(BildeID) REFERENCES Bilde(BildeID),
- CONSTRAINT KommentarBrukerFN FOREIGN KEY(BrukerID) REFERENCES Bruker(BrukerID)
- );
- CREATE TABLE Emneknagg (
- EmneknaggID INT NOT NULL AUTO_INCREMENT,
- Emneknaggen VARCHAR(64) NOT NULL,
- PRIMARY KEY(EmneknaggID)
- );
- CREATE TABLE TagForBilde (
- BildeID VARCHAR(32) NOT NULL,
- EmneknaggID INT NOT NULL,
- CONSTRAINT TagForBildePN PRIMARY KEY(BildeID, EmneknaggID),
- CONSTRAINT TagForBildeBildeFN FOREIGN KEY(BildeID) REFERENCES Bilde(BildeID),
- CONSTRAINT TagForBildeEmneknaggFN FOREIGN KEY(EmneknaggID) REFERENCES Emneknagg(EmneknaggID)
- );
- INSERT INTO Bruker
- VALUES ('ant100', 'Eirik', 'Aanstad', 'Eirik.Aanstad@mail.com'),
- ('ant101', 'Jean-Luc', 'Picard', 'Picard@mail.com'),
- ('ant102', 'James', 'Kirk', 'Captain.Kirk@mail.com'),
- ('ant103', 'Wesley', 'Crusher', 'Wes@mail.com');
- INSERT INTO Bilde
- VALUES ('pic100', 'Hyttekos', 20180218, 'ant100'),
- ('pic101', 'The Starship Enterprise', 19870928, 'ant101'),
- ('pic102', 'Live Long and Prosper', 20150227, 'ant102'),
- ('pic103', 'Nye albummet til Trump og Kanye!
- Watch the wall', 20180201, 'ant100');
- INSERT INTO Likes
- VALUES ('pic102', 'ant100'),
- ('pic102', 'ant101'),
- ('pic102', 'ant102'),
- ('pic103', 'ant101'),
- ('pic101', 'ant102'),
- ('pic100', 'ant102');
- INSERT INTO Kommentarer
- VALUES ('pic102', 'ant102', 'Rest In Peace dear friend'),
- ('pic102', 'ant101', '<3'),
- ('pic103', 'ant102', 'Lol'),
- ('pic103', 'ant101', 'Not Cool Man');
- INSERT INTO Emneknagg
- VALUES ('100', '#VakreMolde'),
- ('101', '#StarTrek'),
- ('102', '#DonaldDuck'),
- ('103', '#Love');
- INSERT INTO TagForBilde
- VALUES ('pic100', '100'),
- ('pic100', '103'),
- ('pic103', '102'),
- ('pic102', '103'),
- ('pic102', '101'),
- ('pic101', '103'),
- ('pic101', '101'),
- ('pic103', '103');
- SELECT * FROM Bilde;
- SELECT Etternavn, Fornavn, Epost
- FROM Bruker
- ORDER BY Etternavn ASC;
- SELECT *
- FROM Bilde
- WHERE OpplastetDato > 20180201;
- SELECT COUNT(BrukerID) As AntallBrukere
- FROM Bruker;
- SELECT Fornavn, Etternavn, Count(Fotograf) As AntallBilder
- FROM Bruker LEFT JOIN Bilde
- ON Bruker.BrukerId = Bilde.Fotograf
- GROUP BY Fotograf;
- SELECT Fornavn, Etternavn, Count(Fotograf) As AntallBilder
- FROM Bruker LEFT JOIN Bilde
- ON Bruker.BrukerId = Bilde.Fotograf
- GROUP BY Fotograf HAVING AntallBilder < 1;
- SELECT Bilde.BildeID, Fotograf, COUNT(Kommentaren) as AntallKommentarer
- FROM Bilde LEFT JOIN Kommentarer
- ON Bilde.BildeID = Kommentarer.BildeID
- GROUP BY Bilde.BildeID HAVING AntallKommentarer < 1;
- SELECT BrukerID, BildeID
- FROM Likes
- WHERE BildeID = 'pic100';
- SELECT Fornavn, BildeID
- FROM LIKES INNER JOIN
- SELECT *
- FROM Kommentarer;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement