Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
birds_databaser [2014-04-14 20:47]
Joakim Forsgren
birds_databaser [2019-09-18 10:16]
Joakim Forsgren
Line 1: Line 1:
-====== SELECT frågor repetition ======+====== SELECT frågor med join ======
 Nu skall nu använda min databas **jf_select**. (login: jf_select, passwd: jf_select) Nu skall nu använda min databas **jf_select**. (login: jf_select, passwd: jf_select)
 När det står tips så är det något nytt, det räcker inte enbart med det som står som tips. Ni kommer behöva läsa i manualen för att lyckas skulle jag tro :-)\\ När det står tips så är det något nytt, det räcker inte enbart med det som står som tips. Ni kommer behöva läsa i manualen för att lyckas skulle jag tro :-)\\
-**OBS!** Ni får bara ställa en fråga för att ta fram ert svar, spara de SQL-frågor ni ställer i en textfil.\\+**OBS!** Ni får bara ställa en fråga för att ta fram ert svar, spara de SQL-frågor ni ställer i en textfil (mysql4.txt). När ni är klar “commitar” och “pushar” ni filen.\\
 Följande tabeller finns i databasen jf_select (i princip lika i varje fall…) \\ Följande tabeller finns i databasen jf_select (i princip lika i varje fall…) \\
 {{:selectuppgifter_html_m3687461c.png|}} {{:selectuppgifter_html_m3687461c.png|}}
Line 9: Line 9:
  
   - Visa alla fåglar   - Visa alla fåglar
-  - Skriv en fråga som ger en rad till svar och det är antalet fåglar.<code>+  - Skriv en fråga som ger en rad till svar och det är antalet fåglar, typ som nedan.<code>
 +-----+ +-----+
 | N   | | N   |
Line 16: Line 16:
 +-----+ +-----+
 </code> </code>
 +  - Visa alla fåglar, sorterat på namn.
 +  - Visa alla fåglar, sorterat på artlistan (alltså efter Sort).
 +  - Visa de 10 första fåglarna, sorterat på artlistan (alltså efter Sort).
   - Visa alla fåglar som har **trast** i sitt namn (18 st).   - Visa alla fåglar som har **trast** i sitt namn (18 st).
-  - Visa alla fåglar som börjar på  **stor** (8 st).+  - Visa alla fåglar som börjar på **stor** (8 st). 
 +  - Visa alla fåglar som slutar på **ett** (6 st).
   - Visa alla kryss som användaren med UserID 3 har, jag vill se fågelnamnen. (Tips INNER JOIN)   - Visa alla kryss som användaren med UserID 3 har, jag vill se fågelnamnen. (Tips INNER JOIN)
-  - Visa alla fåglar som användaren med login = JF har kryssat Tips: INNER JOIN+  - Visa alla fåglar som användaren med login = JF har kryssat Tips: INNER JOIN x 2
   - Skriv en fråga som tar fram hur många kryss användaren med UserID=1 har av varje fågel och man får dem sorterade efter antal. **Tips:** COUNT, GROUP BY.Exempel på svar:<code>   - Skriv en fråga som tar fram hur många kryss användaren med UserID=1 har av varje fågel och man får dem sorterade efter antal. **Tips:** COUNT, GROUP BY.Exempel på svar:<code>
 +-----------------------+-------+ +-----------------------+-------+
Line 38: Line 42:
 osv... osv...
 </code> </code>
 +  - Gör om frågan så att man bara ser de fåglar som JF har fler än 4 observationer av.
 +  - Gör om frågan så att man bara ser de fåglar som JF har 1 observation av.<code>
 +Nu börjar det bli svårt...</code>
   - Skriv en fråga som tar fram hur många olika fågelarter varje användare har. Tips: COUNT (DISTINCT… Ex på lämpligt svar:<code>   - Skriv en fråga som tar fram hur många olika fågelarter varje användare har. Tips: COUNT (DISTINCT… Ex på lämpligt svar:<code>
 +-----------+-----------------+-------+ +-----------+-----------------+-------+
Line 101: Line 108:
 SELECT * FROM Birds; SELECT * FROM Birds;
  
-2.+9.
 SELECT * FROM Observations  SELECT * FROM Observations 
 WHERE UserID=3; WHERE UserID=3;
  
-3.+10.
 SELECT * FROM Users INNER JOIN Observations USING(UserID) SELECT * FROM Users INNER JOIN Observations USING(UserID)
 WHERE Login='JF'; WHERE Login='JF';
  
-4.+11.
 SELECT Name,COUNT(UserID) as Antal  SELECT Name,COUNT(UserID) as Antal 
 FROM Birds INNER JOIN Observations USING(BirdID)  FROM Birds INNER JOIN Observations USING(BirdID) 
Line 116: Line 123:
 ORDER BY Antal DESC; ORDER BY Antal DESC;
  
-5.+12. 
 +SELECT Name,COUNT(UserID) as Antal  FROM Birds INNER JOIN Observations USING(BirdID)  WHERE UserID=3  GROUP BY BirdID  having Antal>4 ORDER BY Antal DESC; 
 + 
 +14.
 SELECT CONCAT(FirstName,' ',LastName) as Name,COUNT(DISTINCT BirdID) as Antal  SELECT CONCAT(FirstName,' ',LastName) as Name,COUNT(DISTINCT BirdID) as Antal 
 FROM Users INNER JOIN Observations USING(UserID)  FROM Users INNER JOIN Observations USING(UserID) 
Line 122: Line 132:
 ORDER BY Antal DESC; ORDER BY Antal DESC;
  
-6.+15.
 SELECT Name,COUNT(DISTINCT UserID) as Antal  SELECT Name,COUNT(DISTINCT UserID) as Antal 
 FROM Birds INNER JOIN Observations USING(BirdID)  FROM Birds INNER JOIN Observations USING(BirdID) 
Line 128: Line 138:
 GROUP BY BirdID ORDER BY Antal DESC; GROUP BY BirdID ORDER BY Antal DESC;
  
-7.+16.
 SELECT CONCAT(FirstName,' ',LastName) as Name,COUNT(DISTINCT BirdID) as Antal  SELECT CONCAT(FirstName,' ',LastName) as Name,COUNT(DISTINCT BirdID) as Antal 
 FROM Users INNER JOIN Observations USING(UserID)  FROM Users INNER JOIN Observations USING(UserID)