diff --git a/day1.sql b/day1.sql new file mode 100644 index 0000000..4ab962c --- /dev/null +++ b/day1.sql @@ -0,0 +1,50 @@ +-- SHOW ALL ALBUMS +SELECT * FROM album; + +-- SELECT ALBUMS CREATE BETWEEN 1975 and 1990 +SELECT * FROM album +WHERE release_year BETWEEN 1975 and 1990; + +-- SELECT ALBUMS THAT CONTAIN `Super D` +SELECT * FROM album +WHERE title Like 'Super D%'; + +-- SELECT ALBUMS WITHOUT A RELEASE YEAR +SELECT * FROM album +WHERE release_year IS NULL; + +-- SELECT TRACKS FROM `Super Funky Album` +SELECT track.title FROM track +INNER JOIN album +ON album.id IS track.album_id +WHERE album.title IS 'Super Funky Album'; + +-- SAME QUERY BUT track.title NAMED Track_Title +SELECT track.title as Track_Title FROM track +INNER JOIN album +ON album.id IS track.album_id +WHERE album.title IS 'Super Funky Album'; + +-- SELECT ALL ALBUM TITLES BY `Han Solo` +SELECT album.title FROM album, artist, artist_album +WHERE artist.name IS 'Han Solo' +AND artist.id IS artist_album.artist_id +AND album.id IS artist_album.album_id; + +-- RETURN AVG YEAR ALL ALBUMS WERE RELEASED +SELECT AVG(release_year) from album +WHERE release_year IS NOT NULL; + +-- RETURN AVG ALL ALBUMS FROM `Leia and the Ewoks` WERE RELEASED +SELECT AVG(release_year) FROM album, artist, artist_album +WHERE artist.name IS 'Leia and the Ewoks' +AND artist.id IS artist_album.artist_id +AND album.id IS artist_album.album_id; + +-- RETURN NUMBER OF ARTISTS +SELECT COUNT(id) FROM artist; + +-- Select the number of tracks on `Super Dubstep Album` +SELECT COUNT(track.title) FROM track, album +WHERE album.id IS track.album_id +AND album.title IS 'Super Dubstep Album'; \ No newline at end of file diff --git a/mydatabase.db b/mydatabase.db new file mode 100644 index 0000000..d6ce8c1 Binary files /dev/null and b/mydatabase.db differ diff --git a/notes.db b/notes.db new file mode 100644 index 0000000..cfd281b Binary files /dev/null and b/notes.db differ diff --git a/notes.sql b/notes.sql new file mode 100644 index 0000000..c3e65d9 --- /dev/null +++ b/notes.sql @@ -0,0 +1,43 @@ +-- CREATE `notes` TABLE +create table notes( + id integer primary key autoincrement, + title varchar(255) not null, + content text, + creation_date datetime default current_timestamp, + author_id integer not null, + foreign key(author_id) references author(id) +); + +-- CREATE `author` TABLE +create table author( + id integer primary key autoincrement, + name varchar(255) not null, + creation_date datetime default current_timestamp +); + +-- INSERT AUTHORS INTO `author` TABLE +insert into author (name) values('Brandon'); + +-- INSERT NOTES IN `note` TABLE +insert into notes (title, content, author_id) values('Note 1', '', 1); + +-- SELECT ALL NOTES BY AUTHORS NAME +select title, content from notes, author +where author.name is 'Brandon' +and author.id is notes.author_id; + +-- SELECT AUTHOR FOR A PARTICULAR NOTE BY THE NOTE ID +select name from author, notes +where notes.id is 1 +and author.id is notes.author_id; + +-- LIST THE NAME OF EACH AUTHOR AND HOW MANY NOTES THEY HAVE +select author.name, count(notes.id) from author, notes +where author.id is notes.author_id +group by author.name; + +-- DELETE AUTHOR AND ALL ASSOCIATED NOTE +begin transaction; +delete from notes where author_id is 1; +delete from author where id is 1; +commit; \ No newline at end of file diff --git a/setup.sql b/setup.sql index 94bf2cf..f4c0c60 100644 --- a/setup.sql +++ b/setup.sql @@ -1,3 +1,33 @@ +-- CREATE ALBUMS TABLE +CREATE TABLE album ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + title VARCHAR(255) NOT NULL, + release_year INTEGER +); + +-- CREATE ARTIST TABLE +CREATE TABLE artist ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name VARCHAR(255) +); + +-- CREATE TRACK TABLE +CREATE TABLE track ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + title VARCHAR(255), + album_id INTEGER NOT NULL, + FOREIGN KEY(album_id) REFERENCES album(id) +); + +-- CREATE ARTIST_ALBUM TABLE +CREATE TABLE artist_album ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + artist_id INTEGER NOT NULL, + album_id INTEGER NOT NULL, + 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);