Prov på SQL 2020-09-18

  • Mail som ni når mig på: jf@oedu.se
  • Ni får använda vilka hjälpmedel ni vill utom att kommunicera med andra!!
  • Lämnas in senast 2020-09-20 kl 23:59. Ni ska spara alla SQL-frågor i en textfil, denna text fil ska ni bifoga i ett mail till mig med rubriken “Prov SQL”, OBS! Som avsändare eller i mailet ska ert riktiga namn stå.
    // ex. på struktur på hur textfilen bör se ut.
    1.
    SELECT * FROM Users;
    2.
    SELECT * FROM Users WHERE Name LIKE '%som';
    3.
    -
    4.
    SELECT * FROM Users WHERE Name LIKE '%gren';
    
    ...

Behöver ni fråga om något skicka ett mail till mig så återkopplar jag. Det kan hända att jag uppdatera denna sida om jag upptäcker att något är fel, ladda om denna sida innan ni skickar ett mail.

Logga in med er användare på student.oedu.se via ssh och port 3690 och logga in i mysql:

login: jf_select
passwd: jf_select
db: jf_select

mysql -u jf_select -p jf_select


Jobba med tabellen: logentries


1. Lista alla rader som har en e-postadress från apple.com och att det är kvinna. (1p)

2. Lista alla som har ett förnamn eller efternamn som innehåller ill. (1p)

3. Lista alla som har ett förnamn och efternamn som innehåller ill. (1p)

4. Lista alla kvinnor som har ett förnamn och efternamn som innehåller ill. (1p)

5. Lista alla som har ett förnamn eller efternamn som innehåller ill, dock får bara förnamn eller efternamn innehålla ill, inte båda. (1p)

6. Lista hur många kvinnor och män det finns i tabellen, du ska få detta svar på din fråga. (1p)

+--------+-------+
| gender | antal |
+--------+-------+
| Female |  5674 |
| Male   |  5695 |
+--------+-------+

Tips: På fråga 7, 8 och 9 kan man ha nyttat av String Functions and Operators


7. Byt ut alla punkter (.) i ip-adressen mot plus (+), dit svar ska se ut som nedan när det gäller layout. (1p)

+---------------+---------------+
| ip_address    | ip_plus       |
+---------------+---------------+
| 0.10.112.239  | 0+10+112+239  |
| 0.100.186.66  | 0+100+186+66  |
| 0.100.210.166 | 0+100+210+166 |
| 0.102.160.72  | 0+102+160+72  |
| 0.103.76.85   | 0+103+76+85   |
| 0.109.93.55   | 0+109+93+55   |
| 0.111.207.148 | 0+111+207+148 |
| 0.114.201.92  | 0+114+201+92  |
| 0.115.184.194 | 0+115+184+194 |
| 0.116.64.236  | 0+116+64+236  |
...

8. Lista alla unika domäner som finns i bland e-postadresserna, du får inte använda dig av GROUP BY. (500 st) (1p)

+------------------+
| domain_name      |
+------------------+
| disqus.com       |
| ox.ac.uk         |
| archive.org      |
| privacy.gov.au   |
| mac.com          |
| ucla.edu         |
| salon.com        |
| paypal.com       |
| cafepress.com    |
...

9. Lista alla domäner som det finns fler än 30 av bland e-postadresserna sorterat som nedan, ert resultat ska se ut som nedan. (2p)

+--------------------+-------+
| domain_name        | antal |
+--------------------+-------+
| guardian.co.uk     |    37 |
| hp.com             |    35 |
| toplist.cz         |    35 |
| goo.ne.jp          |    34 |
| shareasale.com     |    34 |
| yolasite.com       |    33 |
| chicagotribune.com |    33 |
| ocn.ne.jp          |    33 |
| altervista.org     |    33 |
| theguardian.com    |    33 |
| hugedomains.com    |    33 |
| purevolume.com     |    33 |
| irs.gov            |    33 |
| howstuffworks.com  |    32 |
| ameblo.jp          |    32 |
| cmu.edu            |    32 |
| alexa.com          |    32 |
| ow.ly              |    32 |
| samsung.com        |    32 |
| 123-reg.co.uk      |    32 |
| youku.com          |    31 |
| addtoany.com       |    31 |
| vimeo.com          |    31 |
| 163.com            |    31 |
| miitbeian.gov.cn   |    31 |
| photobucket.com    |    31 |
| mlb.com            |    31 |
+--------------------+-------+

Jobba med tabellen Users, Bookings och Objects (hur de hänger ihop får ni klura ut själva)


10. Visa alla användare som har ett Förnamn som slutar på e. (1p)

11. Visa alla användare som har ett Förnamn eller Efternamn som innehåller an. (1p)

12. Skriv en fråga som ger en rad till svar och det är hur många poster det finns i tabellen Bookings. (1p)

13. Skriv en fråga som ger en rad till svar och det är hur många bokningar finns det som börjar under år 2012? (1p)

14. Visa alla Bokningar som användaren med Login ”MARGARETA” har. Man vill endast se Login, Start, Stop, Object sorterat på Object. (1p)

15. Visa en lista där man ser hur många bokningar varje användare har totalt, den med flest vill man ha överst (alltså sorterat på antal med flest överst). (2p)

16. Visa en lista över de bokningsbara objektens bokningar, man vill bara se ett objekt en gång och det med flest bokningar överst. Man vill även så hur många bokningar varje objekt har. (2p)

17. Visa alla Bokningar som användaren med Login ”MARGARETA” har, man vill bara se ett objekt en gång men man vill se hur många gånger det är bokat, det objekt med flest bokningar vill man ha överst. Nedan ser ni rätt svar. (2p)

+-----------+---------------+-------+
| Login     | Object        | Antal |
+-----------+---------------+-------+
| MARGARETA | Konf rum exp  |     3 |
| MARGARETA | Grupprum F413 |     2 |
| MARGARETA | Aulan         |     1 |
| MARGARETA | Datavagn 2    |     1 |
| MARGARETA | Grupprum E211 |     1 |
| MARGARETA | Videokamera 1 |     1 |
+-----------+---------------+-------+

18. Visa en lista där man ser hur många bokningar varje användare har total, den med flest vill man ha överst (alltså sorterat på antal med flest överst). Man vill bara se de användare som har fler än 500 bokningar. (2p)


Jobba med tabellerna Birds, Observations, Users (hur de hänger ihop får ni klura ut själva)

Kryssa = en post i tabellen Observations. Plot = 1 om man har sett fågeln från sin hustomt annars är Plot = 0


19. Skriv en fråga som visar alla observationer användaren med Login=JF har kryssat. (1p)

20. Skriv en fråga som visar vilka som har kryssat Korp, varje person skall bara synas en gång. (1p)

21. Skriv en fråga som visar de fåglar som Login JF har kryssat under 2005 varje fågel skall bara visas en gång. (1p)

22. Skriv en fråga som visar hur många olika fåglar Login='JF' har sett under alla år. Svaret ska vara så likt detta som möjligt: (2p)

+-----------------+-------+------+ 
| Namn            | Antal | År   | 
+-----------------+-------+------+ 
| Joakim Forsgren |   141 | 2004 | 
| Joakim Forsgren |   156 | 2005 | 
| Joakim Forsgren |    17 | 2006 | 
+-----------------+-------+------+