From 8ccfada316e3f9fcecfe406fa38213e2f3d4f853 Mon Sep 17 00:00:00 2001 From: ckopecky Date: Fri, 7 Sep 2018 08:03:17 -0700 Subject: [PATCH 1/4] Initial commit --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index d7fbaa5..3e457c0 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ # Sprint Challenge: SQL +first commit comment + + Design a database for an online chat system. ## Deliverables From e4af56c40270249f53158c7533d60b9781f86a0a Mon Sep 17 00:00:00 2001 From: ckopecky Date: Fri, 7 Sep 2018 08:27:31 -0700 Subject: [PATCH 2/4] Create tables --- queries.sql | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 queries.sql diff --git a/queries.sql b/queries.sql new file mode 100644 index 0000000..a33f2c9 --- /dev/null +++ b/queries.sql @@ -0,0 +1,37 @@ +CREATE TABLE organization ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name VARCHAR(128) NOT NULL +); +CREATE TABLE channel ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name VARCHAR(128) NOT NULL, + org_id INT REFERENCES organization(id) +); +CREATE TABLE user ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name VARCHAR(128) NOT NULL, + org_id INT REFERENCES organization(id) +); +CREATE TABLE message ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + post_time DATETIME, + content VARCHAR(500), + channel_id INT REFERENCES channel(id), + user_id INT REFERENCES user(id) +); +CREATE TABLE user_messages ( + user_id INT REFERENCES user(id), + message_id INT REFERENCES message(id) +); +CREATE TABLE organization_channels ( + org_id INT REFERENCES organization(id), + channel_id INT REFERENCES channel(id) +); +CREATE TABLE organization_users ( + org_id INT REFERENCES organization(id), + user_id INT REFERENCES user(id) +); +CREATE TABLE channel_users ( + channel_id INT REFERENCES user(id), + user_id INT REFERENCES channel(id) +); \ No newline at end of file From a3343de334b6461cfbf63b34b062c310984eef16 Mon Sep 17 00:00:00 2001 From: ckopecky Date: Fri, 7 Sep 2018 09:04:37 -0700 Subject: [PATCH 3/4] INSERT INTO tables --- chat.db | Bin 0 -> 40960 bytes queries.sql | 38 +++++++++++++++++++++++++++++++++++++- 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 chat.db diff --git a/chat.db b/chat.db new file mode 100644 index 0000000000000000000000000000000000000000..b96eb0723516e8fcd804a7d995259a91f1ac91e1 GIT binary patch literal 40960 zcmeI)&2QUe90zbewv*K9+Go->>Zxi z@#VKSY~K>Q(ruf*$SFq^#+0){D2g&ipCozFcs)%y&&0@K@wO+g|g3)H|`s{qzF39a1 zY!r15+9hYZFOMWrnGEZCVOY{_n2!CS>D$uj#dfg77z*%UeH0~CJmKJj&Hpyi{&XnJ zTq2QLU1hgp2g8i!;|&hI(=Qx(da(T_|03R~>l5Y|)kL_*CP&t*{jCu21B6T*sWqOh*T5~+y^_R+BrGpdU=@u5(n!YGK|@r&n+WpSxo z+ANf}#aqQ~QMgjMSlXg~o5ih4@6x*|J%7iy+m?8PuH{N;v)C)INyoPwU%XQ&uU{yX zXO`3H=wf{)(!ac}`xbPyoYWJk6DQd1$#8-}MevCYO)V(-$MbSbno>XbOm=NnY+bB~ ztt%TFz0jWRqNfOFwD1(%o(?07CLe9|p*W+$|1H!@YCJVJ$F{>jy<06>Ebn;Mt&Zi? ztjDt2P~eYM&IESz)N{5w$`YxmDc0?cIr#r}a91yGra$= z@oyFWfd51rBnUtN0uX=z1Rwwb2tWV=5P$##4x7N3rYk3n^`>ikzU`O^`WoPvaZXkZ z`U)Ur6k2x83hw_W$39c|9sV(YpU;hdHU7!?wegj4MukWafB*y_009U<00Izz00bcL zTnW6Ej4PRojAhfAwS`Q2A)67Ie0D9LTe{k`98s5IUv|WvWxBzRE4+@=Xqld8d1q8L zXHe&Y@mS{->U=@&QD4gw(GSMAtPgy#C*2!ov{y#rN^WYP)3V4c<+DLA&+pXf9f!dS zu?i^6Bi=CcSUo_JrTGgfDN}wcs7}Va^GTQ+4H@Q#BiB z7UDESE;>{+#OdA;CDD++Xzz=Ez`AS$D35oGU{cl;ZEmw(AWr$QtMKmY;|fB*y_009U<00Izz z00f=`fml*wOijiN+Gs{>B*=~E3C&=MSUkwY^%!MhF+FHN`$3tet5l}yOk+m4{#W?} zg+HV}NDzPk1Rwwb2tWV=5P$##AOHafyf^~AF90<9%D@Qj|7-kSxc;XN5(FRs0SG_< z0uX=z1Rwwb2tWV=hhIR~=+=Mq0KlX5zs`S**8jAF1OW&@00Izz00bZa0SG_<0uX?} Yp%n;!0YH!b2kU>8?*B7`K6L;84_WS{S^xk5 literal 0 HcmV?d00001 diff --git a/queries.sql b/queries.sql index a33f2c9..45e4dd7 100644 --- a/queries.sql +++ b/queries.sql @@ -34,4 +34,40 @@ CREATE TABLE organization_users ( CREATE TABLE channel_users ( channel_id INT REFERENCES user(id), user_id INT REFERENCES channel(id) -); \ No newline at end of file +); + +INSERT INTO organization VALUES (1, 'Lambda School'); +INSERT INTO user VALUES (1, "Alice", 1); +INSERT INTO user VALUES (2, "Bob", 1); +INSERT INTO user VALUES (3, "Christina", 1); +INSERT INTO channel VALUES (1, "#general", 1); +INSERT INTO channel VALUES (2, "#random", 1); +INSERT INTO message VALUES (1, '2017-08-25 08:56:43', ':coffee: Good Morning, Lambda School!', 2, 3); +INSERT INTO message VALUES (2, '2017-08-25 08:57:43', ":joy: That'shilarious!", 2, 1); +INSERT INTO message VALUES (3, '2018-08-25 10:46:02', "Cats are awesome", 1, 2); +INSERT INTO message VALUES (4, '2018-09-05 23:46:02', "React is so much fun!", 2, 3); +INSERT INTO message VALUES (5, '2018-09-05 23:46:15', "I know I'm in the minority, but Game of Thrones...not my thing", 2, 1); +INSERT INTO message VALUES (6, '2018-09-25 19:46:02', "I got my dream job!", 1, 2); +INSERT INTO message VALUES (7, '2018-09-25 18:46:02', "What is the topic for the next brownbag?", 1, 1); +INSERT INTO message VALUES (8, '2018-10-25 14:26:34', "studentforms", 1, 2); +INSERT INTO message VALUES (9, '2018-10-21 1:26:34', "How does Lambda Next work?", 1, 3); +INSERT INTO message VALUES (10, '2018-10-21 1:28:34', "When do you wear your sunglasses?", 2, 2); +INSERT INTO channel_users VALUES (1, 1); +INSERT INTO channel_users VALUES (2, 1); +INSERT INTO channel_users VALUES (1, 2); +INSERT INTO channel_users VALUES (2, 3); +INSERT INTO organization_users VALUES (1, 1); +INSERT INTO organization_users VALUES (1, 2); +INSERT INTO organization_users VALUES (1, 3); +INSERT INTO organization_channels VALUES (1, 1); +INSERT INTO organization_channels VALUES (1, 2); +INSERT INTO user_messages VALUES (3,1); +INSERT INTO user_messages VALUES (1,2); +INSERT INTO user_messages VALUES (2,3); +INSERT INTO user_messages VALUES (3,4); +INSERT INTO user_messages VALUES (1,5); +INSERT INTO user_messages VALUES (2,6); +INSERT INTO user_messages VALUES (1,7); +INSERT INTO user_messages VALUES (2,8); +INSERT INTO user_messages VALUES (3,9); +INSERT INTO user_messages VALUES (2,10); \ No newline at end of file From 1b3b02d2f9ff9616ec6047d066e0e7aedb5f8a53 Mon Sep 17 00:00:00 2001 From: ckopecky Date: Fri, 7 Sep 2018 10:58:07 -0700 Subject: [PATCH 4/4] Queries done Stretch done Last question answered LAST SPRINT DONE! --- queries.sql | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 3 deletions(-) diff --git a/queries.sql b/queries.sql index 45e4dd7..7daac0e 100644 --- a/queries.sql +++ b/queries.sql @@ -32,8 +32,8 @@ CREATE TABLE organization_users ( user_id INT REFERENCES user(id) ); CREATE TABLE channel_users ( - channel_id INT REFERENCES user(id), - user_id INT REFERENCES channel(id) + channel_id INT REFERENCES channel(id), + user_id INT REFERENCES user(id) ); INSERT INTO organization VALUES (1, 'Lambda School'); @@ -70,4 +70,51 @@ INSERT INTO user_messages VALUES (2,6); INSERT INTO user_messages VALUES (1,7); INSERT INTO user_messages VALUES (2,8); INSERT INTO user_messages VALUES (3,9); -INSERT INTO user_messages VALUES (2,10); \ No newline at end of file +INSERT INTO user_messages VALUES (2,10); + +-- .mode column .width 20 20 +-- 1. +SELECT * from organization; + +SELECT * from user; +-- 2. +SELECT * from channel; +SELECT * from message; + +-- 3. +SELECT channel.id, channel.name, organization.id, organization.name +FROM channel, organization WHERE +organization.name = 'Lambda School'; + +-- 4. +SELECT channel.id, channel.name, message.post_time, message.content FROM channel, message WHERE message.channel_id = channel.id +ORDER BY message.post_time + +-- 5. +SELECT user.id, user.name, channel.name FROM user, channel WHERE user.name = 'Alice'; + +-- 6. +SELECT channel.id, channel.name, user.id, user.name from channel, user +WHERE channel.name = '#general' +ORDER BY user.name; + +-- 7. + +SELECT user.id, user.name, message.channel_id, message.content FROM user, message +WHERE message.user_id = user.id AND user.name = 'Alice'; + +-- 8. +SELECT content FROM message, channel, user WHERE user_id = user.id AND channel_id = channel.id AND channel.name = "#random" AND user.name = "Bob"; + +-- 9. +SELECT COUNT(message.content), user.name + FROM message, user + WHERE message.user_id = user.id + GROUP BY user.name; + +-- 9. +SELECT user.name as "User Name", COUNT(*) AS "Message Count" FROM user, message WHERE user_id = user.id GROUP BY user.id ORDER BY user.name DESC; + +SELECT user.name AS "User", channel.name AS "Channel", Count(*) AS "Message Count" FROM user, message, channel WHERE user_id = user.id AND channel_id = channel.id GROUP BY channel.name, user.name; + +-- ON DELETE CASCADE