Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions notes.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
PRAGMA foreign_keys = ON;

DROP TABLE IF EXISTS note;
DROP TABLE IF EXISTS author;

CREATE TABLE note (
id INTEGER PRIMARY KEY AUTOINCREMENT,
author_id INTEGER,
title VARCHAR(128),
content TEXT,
created_on DATETIME,
FOREIGN KEY(author_id) REFERENCES author(id) ON DELETE CASCADE
);

CREATE TABLE author (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR(128)
);


INSERT INTO author (name) VALUES ("Author Name 1");
INSERT INTO author (name) VALUES ("Author Name 2");
INSERT INTO author (name) VALUES ("Author Name 3");
INSERT INTO author (name) VALUES ("Author Name 4");
INSERT INTO author (name) VALUES ("Author Name 5");

INSERT INTO note (author_id, title, content, created_on) VALUES (1, "Author 1 Note 1", "A1N1 Content", CURRENT_TIMESTAMP);
INSERT INTO note (author_id, title, content, created_on) VALUES (1, "Author 1 Note 2", "A1N2 Content", CURRENT_TIMESTAMP);
INSERT INTO note (author_id, title, content, created_on) VALUES (3, "Author 3 Note 1", "A3N1 Content", CURRENT_TIMESTAMP);
INSERT INTO note (author_id, title, content, created_on) VALUES (4, "Author 4 Note 1", "A4N1 Content", CURRENT_TIMESTAMP);
INSERT INTO note (author_id, title, content, created_on) VALUES (5, "Author 5 Note 1", "A5N1 Content", CURRENT_TIMESTAMP);
INSERT INTO note (author_id, title, content, created_on) VALUES (5, "Author 5 Note 2", "A5N2 Content", CURRENT_TIMESTAMP);
INSERT INTO note (author_id, title, content, created_on) VALUES (5, "Author 5 Note 3", "A5N3 Content", CURRENT_TIMESTAMP);

SELECT title, content FROM note, author
WHERE note.author_id = author.id AND
author.name = "Author Name 5";

SELECT name FROM note, author
WHERE note.author_id = author.id AND
note.id = 6;

SELECT name, COUNT(*) FROM note, author
WHERE note.author_id = author.id
GROUP BY author_id;

DELETE FROM author WHERE id = 3;
61 changes: 60 additions & 1 deletion setup.sql
Original file line number Diff line number Diff line change
@@ -1,3 +1,33 @@
DROP TABLE IF EXISTS album;
DROP TABLE IF EXISTS artist;
DROP TABLE IF EXISTS track;
DROP TABLE IF EXISTS artist_album;

CREATE TABLE album (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title VARCHAR(128) NOT NULL,
release_year INTEGER
);

CREATE TABLE artist (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR(128) NOT NULL
);

CREATE TABLE track (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title VARCHAR(128),
album_id INTEGER,
FOREIGN KEY(album_id) REFERENCES album(id)
);

CREATE TABLE artist_album (
artist_id INTEGER,
album_id INTEGER,
FOREIGN KEY(artist_id) REFERENCES artist(id),
FOREIGN KEY(album_id) REFERENCES album(id)
);

INSERT INTO album (title, release_year) VALUES ("Super Awesome Album", 1990);
INSERT INTO album (title) VALUES ("Super Funky Album");
INSERT INTO album (title, release_year) VALUES ("Super Disco Album", 1978);
Expand Down Expand Up @@ -42,4 +72,33 @@ INSERT INTO track (title, album_id) VALUES ("Super Dubstep Track 1", 5);
INSERT INTO track (title, album_id) VALUES ("Super Dubstep Track 2", 5);
INSERT INTO track (title, album_id) VALUES ("Super Dubstep Track 3", 5);
INSERT INTO track (title, album_id) VALUES ("Super Dubstep Track 4", 5);
INSERT INTO track (title, album_id) VALUES ("Super Dubstep Track 5", 5);
INSERT INTO track (title, album_id) VALUES ("Super Dubstep Track 5", 5);

SELECT * FROM album;
SELECT * FROM album WHERE release_year >= 1975 AND release_year < 1990;
SELECT * FROM album WHERE title LIKE "Super D%";
SELECT * FROM album WHERE release_year IS NULL;

SELECT track.title FROM track, album
WHERE track.album_id = album.id AND album.title = "Super Funky Album";

SELECT track.title AS "Track Title" FROM track, album
WHERE track.album_id = album.id AND album.title = "Super Funky Album";

SELECT album.title FROM album, artist_album, artist
WHERE artist_album.album_id = album.id AND
artist_album.artist_id = artist.id AND
artist.name = "Han Solo";

SELECT AVG(release_year) FROM album;

SELECT AVG(release_year) FROM album, artist_album, artist
WHERE artist_album.album_id = album.id AND
artist_album.artist_id = artist.id AND
artist.name = "Leia and the Ewoks";

SELECT COUNT(*) FROM artist;

SELECT COUNT(*) FROM track, album
WHERE track.album_id = album.id AND
album.title = "Super Dubstep Album";