Git Product home page Git Product logo

little-sql's People

Contributors

robconery avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

nbarnabee

little-sql's Issues

Super little book - here's some corrections and observations

Hi Rob,

In your book you ask your readers to leave feedback here if we find any errors, spelling mistakes, etc.

First up, I enjoyed going through the book, I think this is a good primer for Devs and non-Devs.

Having read through the book and worked through the examples etc., here's some errata, observations and notes which I hope are useful.

Apologies in advance for the many entries here - I don't mean to offend, I merely want to help the community:

  • Page 6 - I needed to do sudo docker compose up (note there's no hyphen, docker-compose did not exist on my version of Linux - Rocky 8.6, the CentOS replacement)

  • Page 6 - When firing up the docker image, the instructions tell the user to go to http://0.0.0.0:8081 - the port number is incorrect, it should be port 8080. However, your book is correct and states port 8080, but the docker image instructions are wrong which may confuse people

  • Page 10 - there are 255 rows in the running_backs table (it's 124 rows in the quarterbacks table, but that isn't what was in the example)

  • Page 11 - the screenshot is for the quarterbacks table, again not the running_backs table that was in the example

  • Page 17 - wrong word used, than instead of then - "If a player, no matter the table, doesn’t have a stat than they’re useless to us." should say "If a player, no matter the table, doesn’t have a stat then they’re useless to us."

  • Page 19 - wrong word used, case instead of cast - "which means our cast won’t cause a problem as we’ll be trying to case the filtered results." should say "which means our cast won’t cause a problem as we’ll be trying to cast the filtered results."

  • Page 23 - the open and close brackets "(" and ")" do not seem to be required - is this just a best practice or more portable (i.e. having the brackets)?

  • Page 25/26 (and then pages 42 and 52), - you show that we can connect to the database with "psql ff", but if using the docker image then this doesn't work. First we need to enter the docker image, then tell psql how to connect to the database:

    • First, find the PostgreSQL docker image:
      docker ps
      or
      docker container ls
      (copy the Id of the docker-postgres image)

    • Next enter the docker image:
      docker exec -it 1234567890ab bash
      (where 1234567890ab is the container Id you copied)

    • To run psql, type:
      psql postgres://docker:docker@postgres:5432/ff?sslmode=disable

  • Page 27 - missing word "it" or "psql" - "I then typed run and TAB and completed the entire line of SQL for me" should be "I then typed run and TAB and it completed the entire line of SQL for me" or "I then typed run and TAB and psql completed the entire line of SQL for me"

  • Page 33 - missing word "I" - "and wow did get confused" should be "and wow did I get confused"

  • Page 45 there a semicolon where there shouldn't be - on the from line there's a ; which is followed by an order statement which has a ; - this will error on the order by line.

  • Page 50, every insert has the position_id set to 1, instead of 1 for qb, 2 for rb, 3 for wr, 4 for te and 5 for def - so every player would become a quarterback :)
    (this is corrected in the github code for 01_load.sql, but wrong in the book)

  • Page 54 - every other table has primary key not null, but seasons doesn't - an inconsistency, albeit psql makes the column not null anyway because it is an autoincrement column

  • Page 54 - interceptions column is specified twice in the points table, this should be intercepted and interceptions

  • Page 56 - if people are following the book (and not comparing to the code on github), the insert will fail because we haven't inserted a season yet (fk constraint), so we need to insert a season into the table first:

insert into seasons(year)
values(2019);
  • Page 65 - the results table isn't correct - the fantasy points don't include the deduction for interceptions so the results for people following the book will look different when they run the query

  • Page 72 - you've made the rob_factor column an int, but your weighting is float (numeric), so when you update your player entries it isn't working as expected (e.g. update points set rob_factor = 1.2 where player_id=1; - this is setting the rob_factor to 1 which isn't the desired effect). This also has a knock-on impact to the results on page 78 (projection column values are the same as as the fantasy_points values, instead of being different for Lamar Jackson and Christian McCaffrey).

  • Page 76 - the sql is correct, however in 02_queries.sql the sql query has a missing ;

  • Page 78 - results incorrect - see comments on page 72

  • Page 79 - missing word "I" - "Yes, I know that if really wanted to" should be "Yes, I know that if I really wanted to"

  • Page 79 - The quarterback Russel Wilson should have two "L"s in his first name - Russell Wilson

And finally, I'm sure I'm not the only non-Developer who has bought the Imposter Syndrome book, and subsequently who will also read The Little SQL Book (I'm a Systems Engineer who has, over the course of their long career, dabbled in programming, in multiple languages and technologies for various purposes). In fact, I'm not reviewing the book for me, but for some systems engineer colleagues who want to understand SQL as part of their role. With this in mind, it would be great if some of the explanations also catered for people in the wider Dev and Ops circles who may not know what some of the Developer jargon is about (e.g. the mention of domain models and OO on page 32).

And finally, finally, many thanks for the book - the use of real data makes it much more relateable (albeit many readers won't know much about the kind of Football you talk about here 😆 ).

Missing Word in Sentance

Page 33 paragraph right before Heading Creating the Initial Sql Script.

I remember when I tried my hand at normalizing data long, long ago and wow did get confused!

I would assume

... wow did I get confused!,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.