From 58e18dc2eece07bc8c31f0315eee0a96a8edf09a Mon Sep 17 00:00:00 2001 From: Steve Date: Tue, 4 Sep 2018 14:17:35 -0400 Subject: [PATCH 1/2] day 1 --- setup.sql | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/setup.sql b/setup.sql index 94bf2cf..cfba1db 100644 --- a/setup.sql +++ b/setup.sql @@ -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); @@ -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); \ No newline at end of file +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"; \ No newline at end of file From c9c61d9be304cad2fd617461a573062ca15fcf72 Mon Sep 17 00:00:00 2001 From: Steve Date: Tue, 4 Sep 2018 18:57:15 -0400 Subject: [PATCH 2/2] notes sql --- notes.sql | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 notes.sql diff --git a/notes.sql b/notes.sql new file mode 100644 index 0000000..f433c5e --- /dev/null +++ b/notes.sql @@ -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; \ No newline at end of file