Kmom04: MySQL

By . Latest revision .

Då går vi vidare till databasen MySQL och dess olika klienter samt prövar att använda SQL tillsammans med MySQL. Du får jobba igenom en övning i SQL som tar dig från de enklare konstruktionerna till mer utmanande saker som subqueries och RIGHT/LEFT OUTER JOIN. När övningen är slut så har du både kommit in i MySQL och bekantat dig med ytterligare varianter av SQL.

Du får pröva att använda tre olika klienter till MySQL, alla tre har sin plats och som webbprogrammerare behöver du kunna använda alla klienterna, vid olika tillfällen.

SQL i en textbaserad klient.

SQL i en textbaserad klient.

SQL i en webbaserad klient.

SQL i en webbaserad klient.

SQL som det ser ut i desktop-klienten MySQL WorkBench.

SQL som det ser ut i desktop-klienten MySQL WorkBench.

Du kommer även jobba vidare med JavaScript, Node.js och se hur du kan koppla dig till en MySQL databas.

(Detta är instruktionen för kursmomentet och omfattar det som skall göras inom ramen för kursmomentet. Momentet omfattar cirka 20 studietimmar inklusive läsning, arbete med övningar och uppgifter, felsökning, problemlösning, redovisning och eftertanke. Läs igenom hela kursmomentet innan du börjar jobba. Om möjligt – planera och prioritera var du vill lägga tiden.)

#Läsanvisningar

(ca: 4-10 studietimmar)

#Kurslitteratur

Läs följande:

  1. Databasteknik om MySQL.

    • Kap 28: Introduktion till MySQL

    Viss information finns i bokens webbkurs, del 3.

  2. Databasteknik om mer SQL.

    • Kap 8: Mer om SQL: Aggregatfunktioner, null-värden, yttre join

    Vissa av kapitlen finns i bokens webbkurs, del 2.

#Artiklar

Kika igenom följande artiklar.

  1. Kika igenom manualen för MySQL, bara kort och översiktligt, men se till att du kan hitta till den delen som visar hur SQL skall skrivas i MySQL.

#Video

Det finns inga videoförslag.

#Lästips

Kika på följande lästips om du finner dem intressanta.

  1. Databasteknik

    • Kap 24: Hur transaktioner hanteras inuti databashanteraren
  2. Exploring ES6 om Promise.

    • Ch 24: Asynchronous programming (background)
    • Ch 25: Promises for asynchronous programming

#Övningar & Uppgifter

(ca: 6-10 studietimmar)

#Övningar

Genomför följande övningar.

MySQL

  1. Jobba igenom guiden “Kom igång med databasen MySQL och dess klienter”. Som webbutvecklare behöver du ha koll på olika varianter av klienter, testa allihop och se till att din lokala utvecklingsmiljö fungerar.

  2. Bekanta dig med “BTH’s labbmiljö för databasen MySQL”. Se till att du kan använda BTH’s databasserver för MySQL. Använd de olika klienterna för att koppla upp dig. Spara dina eventuella testfiler i me/kmom04/mysql.

MySQL och Node.js

  1. Jobba igenom övningen “Gör en kommandoradsklient i Node.js”. Spara dina eventuella exempelprogram under me/kmom04/client.

  2. Jobba igenom övningen “MySQL och Node.js”. Spara dina eventuella exempelprogram under me/kmom04/npm-mysql.

  3. I artikeln “Node.js, MySQL och Promise” kan du få hjälp att lösa ett problem med asykron/sekventiell programmering som du troligen kommer att upptäcka senare i uppgiften terminal.

#Uppgifter

Dessa uppgifter skall utföras och redovisas.

  1. Jobba igenom uppgiften “Kom igång med SQL” genom att utföra den i MySQL Workbench. Spara all SQL-kod i me/kmom04/skolan/skolan.sql och utför minst 2/3 av uppgifterna. Dokumentera vilka uppgifter du hoppar över. Jobba gärna i grupp och hjälp varandra, men se alltid till att skriva dina egna SQL-satser. Se till att du förstår begreppen HAVING, subqueries och OUTER JOIN.

  2. Gör laborationen “Node.js och inbyggda moduler (node2)” för att träna på inbyggda moduler i Node.js. Spara koden i me/kmom04/node2.

  3. Gör uppgiften “Node.js terminalprogram mot MySQL”. Spara koden i me/kmom04/terminal.

#Extra

Lös följande extrauppgifter om du så väljer.

  1. Skapa en ER-modell för din databas Skolan via reverse engineering med MySQL Workbench.

#Resultat & Redovisning

(ca: 1-2 studietimmar)

Läs instruktionen om hur du skall redovisa.

Se till att följande frågor besvaras i redovisningstexten.

  • Hur känns det att komma igång med MySQL och dess klienter?
  • Har du jobbat med liknande tidigare?
  • Du har nu repeterat SQL ett par gånger, börjar det sätta sig?
  • Hur känns det med Node.js, har du till exempel känt av den asynkrona programmeringsmodellen?
  • Förstod du hur Promise fungerar?

#Revision history

  • 2017-02-27: (A, mos) Första utgåva.

Document source.