Guide: Kom igång med SQL i MySQL

  • Författare
  • Meddelande
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11198
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Guide: Kom igång med SQL i MySQL

Inlägg11 jan 2018, 21:03

En befintlig artikel/övning har omarbetats till en guide. Den allra första Guiden på dbwebb. Denna guide handlar om att komma igång med SQL i databasen MySQL.
https://dbwebb.se/guide/kom-igang-med-sql-i-mysql

Ställ frågor om guiden, eller bidra med tips och trix.

Om du har specifika frågor om en viss del i guiden kan det vara lämpligt att skapa en hel ny tråd. Men det löser sig.

Guiden är "nästan" klar, artikeln om subquerys och om export till Excel, skall skrivas. Men i sammanhanget är de en liten del som kvarstår.
...
..:
.... /mos
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11198
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Guide: Kom igång med SQL i MySQL

Inlägg15 jan 2018, 14:28

Då ligger subqueries och export till SQL på plats i guiden. Vi kallar guiden "färdig", i sin första utgåva.
...
..:
.... /mos

anbp17

html-guru

  • Inlägg: 64
  • Blev medlem: 26 aug 2017, 12:10

Re: Guide: Kom igång med SQL i MySQL

Inlägg22 jan 2018, 00:09

Det står på guide/kom-igang-med-sql-i-mysql/introduktion:
Nu är trixet att du inte kan återskapa databasen när du är inloggad som användaren “user”, den användaren har inte rättigheter att skapa en databas. För att köra hela skriptet på en gång måste du alltså vara inloggad som en användare (root) som har behörighet att skapa en databas.


Men det fungerar att skapa databas inloggad som användare user. Dock fungerar det inte att köra SQL-filen med kommandoradsklienten för användare user.

anbp17

html-guru

  • Inlägg: 64
  • Blev medlem: 26 aug 2017, 12:10

Re: Guide: Kom igång med SQL i MySQL

Inlägg22 jan 2018, 23:21

Kan man i terminalfönstret ange endast en sql-rad liknande denna?
Kod: Markera allt
mysql --table -uroot -p select * from teacher;

Så här fungerar det inte.

anbp17

html-guru

  • Inlägg: 64
  • Blev medlem: 26 aug 2017, 12:10

Re: Guide: Kom igång med SQL i MySQL

Inlägg22 jan 2018, 23:45

https://dbwebb.se/guide/kom-igang-med-s ... s-struktur
visar inget defaultvärde för akronym med
Kod: Markera allt
SHOW COLUMNS FROM larare;
. Jag har samma tabelldefinition och samma sql visar den kolumnen med default-värde NULL.
Kod: Markera allt
CREATE TABLE teacher (
    acronym CHAR(3),
    department CHAR(4),
    fname VARCHAR(20),
    lname VARCHAR(20),
    sex CHAR(1),
    salary INT,
    born DATETIME,
    PRIMARY KEY (acronym)
);

Kolumn Null för mig visar samma värden som på https://dbwebb.se/guide/kom-igang-med-s ... s-struktur .
Hur kommer det sig att default-värdet blir olika?
Användarvisningsbild

litemerafrukt

troubleshooter

  • Inlägg: 262
  • Blev medlem: 01 sep 2015, 09:27
  • Ort: Lund

Re: Guide: Kom igång med SQL i MySQL

Inlägg23 jan 2018, 11:38

anbp17 skrev:Kan man i terminalfönstret ange endast en sql-rad liknande denna?
Kod: Markera allt
mysql --table -uroot -p select * from teacher;

Så här fungerar det inte.


testa -e <query>

ex:
Kod: Markera allt
$ mysql -h 127.0.0.1 -P 3306 -uroot -proot -e"select * from larare" skolan
+---------+-----------+---------+-----------+------+-------+---------------------+
| akronym | avdelning | fornamn | efternamn | kon  | lon   | fodd                |
+---------+-----------+---------+-----------+------+-------+---------------------+
| fil     | ADM       | Argus   | Filch     | M    | 25000 | 1946-04-06 00:00:00 |
| hag     | ADM       | Hagrid  | Rubeus    | M    | 25000 | 1956-05-06 00:00:00 |
| hoc     | DIDD      | Madam   | Hooch     | K    | 35000 | 1948-04-08 00:00:00 |
+---------+-----------+---------+-----------+------+-------+---------------------+


Frågan varför det visas NULL som default för pimary key när du visar tabelldefinitionen har jag inget bra svar på. Har inte reflekterat över det tidigare. Kanske detta SO-svar kan vara till hjälp: https://stackoverflow.com/questions/158 ... ed-as-such.

anbp17

html-guru

  • Inlägg: 64
  • Blev medlem: 26 aug 2017, 12:10

Re: Guide: Kom igång med SQL i MySQL

Inlägg23 jan 2018, 19:38

Bara lite tips: Bilden på sidan https://dbwebb.se/guide/kom-igang-med-s ... en-i-rader under texten "Låt oss även kolla vilka löner lärarna har för tillfället. Det är bra inför nästa övning." stämmer inte med texten strax ovanför den: "Oavsett vad så har nu alla lärare en lön. ". Bilden visar två lärare utan lön (som om man inte gjort det finns ovanför detta avsnitt på samma sida).

anbp17

html-guru

  • Inlägg: 64
  • Blev medlem: 26 aug 2017, 12:10

Re: Guide: Kom igång med SQL i MySQL

Inlägg24 jan 2018, 22:21

litemerafrukt skrev:testa -e <query>

ex:
[code]
$ mysql -h 127.0.0.1 -P 3306 -uroot -proot -e"select * from larare" skolan

Kanske detta SO-svar kan vara till hjälp: https://stackoverflow.com/questions/158 ... ed-as-such.


Bra, tack! Det första fungerade och andra tipset gav ett svar på den frågan.

israel

på gång

  • Inlägg: 3
  • Blev medlem: 21 jan 2018, 12:53

Re: Guide: Kom igång med SQL i MySQL

Inlägg25 jan 2018, 23:47

Hej,

Jag har skapat en tabell i mysql som har en kolumn som är primary key. Nu vill jag inte längre att den ska vara det (p.k). Har försökt att ändra den med kommandot alter table ... not primary key o.s.v, men det gick inte. Har ni något tips på hur jag kan göra det?
Användarvisningsbild

Allinrep

dbwebb

  • Inlägg: 1124
  • Blev medlem: 03 sep 2012, 09:19
  • Ort: Portugal (tillfälligt)

Re: Guide: Kom igång med SQL i MySQL

israel

på gång

  • Inlägg: 3
  • Blev medlem: 21 jan 2018, 12:53

Re: Guide: Kom igång med SQL i MySQL

Inlägg26 jan 2018, 14:18

tack det funkade!

anbp17

html-guru

  • Inlägg: 64
  • Blev medlem: 26 aug 2017, 12:10

Re: Guide: Kom igång med SQL i MySQL

Inlägg28 jan 2018, 12:03

Tips
Jag behöver ange host och port för att kunna köra mysql i Cygwin (porten behövs för jag har en annan än default):
Kod: Markera allt
mysql -uuser -ppass -h127.0.0.1 -P3307 skolan -e "SELECT * FROM larare;";

anbp17

html-guru

  • Inlägg: 64
  • Blev medlem: 26 aug 2017, 12:10

Re: Guide: Kom igång med SQL i MySQL

Inlägg28 jan 2018, 12:38

Kopiera tabell stor det under avsnittet "Utför lönerevisionen" att larare_pre ska innehålla 245000. Men om man kört sql:en ovanför:
UPDATE larare_pre SET lon = 30000 WHERE lon IS NULL;

så innehåller larare_pre 305000. Har jag missat/missförstått något eller kan det vara fel i texten på sidan?
Användarvisningsbild

litemerafrukt

troubleshooter

  • Inlägg: 262
  • Blev medlem: 01 sep 2015, 09:27
  • Ort: Lund

Re: Guide: Kom igång med SQL i MySQL

Inlägg29 jan 2018, 10:30

Det ser ut att vara en miss i artikeltexten.

anbp17

html-guru

  • Inlägg: 64
  • Blev medlem: 26 aug 2017, 12:10

Re: Guide: Kom igång med SQL i MySQL

Inlägg31 jan 2018, 22:36

På sidan "Återställ databasen med Bash" står det att man ska få Lönesumma=330242 och Tot Kompetens=19. Detta får jag efter att ha kört: ddl dml_insert ddl_migrate ddl_copy. Efter dml_update dml_view blir värdena 355742 resp. 22. Efter genomgången kmom02 har jag de värden som man kan jämföra med. Kan värdet vara fel på övningssidan "Återställ databasen med Bash" eller ska man inte köra dml_update eller har jag fel någonstans?
---
Har hittat det. Jag hade lagt in SOURCE för alla filerna i ddl_copy i kmom02 för att nollställa db. De behövde jag kommentera bort nu med bash filen.

anbp17

html-guru

  • Inlägg: 64
  • Blev medlem: 26 aug 2017, 12:10

Re: Guide: Kom igång med SQL i MySQL

Inlägg01 feb 2018, 21:48

På "skapa-fler-tabeller" står att man både ska ha
Kod: Markera allt
id INT AUTO_INCREMENT PRIMARY KEY NOT NULL

samt
Kod: Markera allt
PRIMARY KEY (id)

När jag kör det får jag felmeddelande: Multiple primary key defined. Jag hittar inte i referensmanualen att man ska kunna ange primary key flera ggr. Är det någon av dem som är att föredra? Ser om man vill ha flera kolumner som tillsammans blir primary key behöver man använda den senare.
Användarvisningsbild

litemerafrukt

troubleshooter

  • Inlägg: 262
  • Blev medlem: 01 sep 2015, 09:27
  • Ort: Lund

Re: Guide: Kom igång med SQL i MySQL

Inlägg02 feb 2018, 11:07

"Skapa fler tabeller" artikeln är lite lösare och vill mer ge hintar än kod att kopiera.

Jättebra att du hittat i referensmanualen att man inte anger primary-key flera gånger. Vilket sätt man anger primary-key är upp till utvecklaren. Personligen kan jag tycka att det känns tydligare när primary key deklareras som i ditt andra exempel.
Användarvisningsbild

KimmoK

javascriptare

  • Inlägg: 37
  • Blev medlem: 16 aug 2016, 07:39
  • Ort: Södertälje

Re: Guide: Kom igång med SQL i MySQL

Inlägg02 feb 2018, 17:18

Ett litet fel i "kom igång med SQL, ta bort rader"
https://dbwebb.se/guide/kom-igang-med-s ... bort-rader
--------------------
I princip ser det ut så här.

--
-- Delete rows from table
--
DELETE FROM larare WHERE efternamn = 'Hagrid';
Skriv SQL-kod för att utföra följande:

Radera Hagrid (1 rad).
Radera alla som jobbar på avdelningen DIPT (3 rader).
Radera alla som har en lön, men begränsa antalet rader som får raderas till 2 (LIMIT) (2 rader påverkas).
Radera samtliga återstående lärare.
Det sista kommandot bör ha raderat 2 lärare (2 rader i tabellen).

--------------------

Det finns ingen med efternamn Hagrid, däremot med förnamn Hagrid. Så ingen rad påverkas.
Kimmo Kiviranta

"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
- Martin Golding

anbp17

html-guru

  • Inlägg: 64
  • Blev medlem: 26 aug 2017, 12:10

Re: Guide: Kom igång med SQL i MySQL

Inlägg02 feb 2018, 22:31

Tips
För att köra in data mha csv-fil (beskrivet på importera-fran-excel-till-tabell) behöver jag lägga till --local-infile (jag har Windows 10 och använder Cygwin):
Kod: Markera allt
mysql -uuser -ppass --table -h127.0.0.1 -P3307 --local-infile < dml_insert_csv.sql

I annat fall fick jag ERROR 1148.
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11198
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Guide: Kom igång med SQL i MySQL

Inlägg20 feb 2018, 16:24

Guiden har fått en ny sektion "Programmera i databasen". Sektionen används i kursen databas kmom06 för att träna på lagrade procedurer, triggers, funktioner och index.
...
..:
.... /mos
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11198
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Guide: Kom igång med SQL i MySQL

Inlägg21 jan 2019, 12:04

Jag håller nu på och jobbar igenom guiden och uppdaterar till MySQL 8.0. De två första sektionerna är uppdaterade.
...
..:
.... /mos
Användarvisningsbild

fraa18

javascriptare

  • Inlägg: 32
  • Blev medlem: 31 aug 2018, 13:31

Re: Guide: Kom igång med SQL i MySQL

Inlägg31 jan 2020, 17:55

När jag kom till delen om Views https://dbwebb.se/guide/kom-igang-med-sql-i-mysql/vyer så kan jag tipsa om att man kan skriva
Kod: Markera allt
CREATE OR REPLACE VIEW v_view_namn


Kolla: https://dev.mysql.com/doc/refman/8.0/en/create-view.html

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 4 gäster