Skip to content
50 changes: 50 additions & 0 deletions day1.sql
Original file line number Diff line number Diff line change
@@ -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';
Binary file added mydatabase.db
Binary file not shown.
Binary file added notes.db
Binary file not shown.
43 changes: 43 additions & 0 deletions notes.sql
Original file line number Diff line number Diff line change
@@ -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;
30 changes: 30 additions & 0 deletions setup.sql
Original file line number Diff line number Diff line change
@@ -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);
Expand Down