DATABASHANTERING för programmerare Lektion 4 Mahmud Al Hakim
Repetition 1. Med vilket kommando skapar man en databas, ge exempel? 2. Med vilket kommando skapar man en tabell, ge exempel? 3. Hur infogar man data i en tabell, ge exempel? 4. Vad gör följande sats: delete from avdelning; 5. Hur kan man ändra befintliga tabellstruktur? 6. Hur fungerar REPLACE-satsen, ge exempel? 7. Skapa en enkel adressregister i MySQL? 8. Infoga några rader i databasen ”adressregister”? 9. Skapa en enkel telefonlista i MySQL? 10. Infoga några rader i databasen ”telefonlista”? 2
Idag Frågor i MySQL SELECT – satsen Enkla frågor Hämta specifika kolumner Ange tabeller absolut Alias Hämta specifika kolumner med WHERE – instruktionen Ta bort dubbletter med DISTINCT GROUP BY och HAVING Sortera sökresultat med ORDER BY Begränsa sökresultat med LIMIT Övningar 3
SELECT – satsen Viktigaste sats i SQL. Används för att hämta rader från en eller flera tabeller. SELECT columns FROM tables; 4
Enkla frågor SELECT * FROM avdelning; 5
Hämta specifika kolumner SELECT namn FROM avdelning; 6
Ange tabeller absolut SELECT personal.namn FROM personal; 7
Alias 1) Kolumnalias SELECT namn as PersonalNamn FROM personal; SELECT namn as ’Personal Namn’ FROM personal; 8
Alias 2) Tabellalias SELECT p.namn FROM personal AS p; 9
Hämta specifika kolumner WHERE – instruktionen Ta fram namnen alla programmerare? SELECT namn FROM personal WHERE befattning = ’programmerare’; 10
Hämta specifika kolumner WHERE – instruktionen Vilket resultat ger denna sats? SELECT namn FROM personal WHERE befattning <> ’programmerare’; 11
Ta bort dubbletter med DISTINCT SELECT DISTINCT befattning FROM personal; 12
Funktionen COUNT() SELECT COUNT(befattning) FROM personal; Har vi 4 olika befattningar? … Lösning? SELECT COUNT(DISTINCT befattning) FROM personal; 13
Gruppera hämtade rader med GROUP BY Visa antal anställda för varje typ av arbete? SELECT COUNT(*), befattning FROM personal SELECT COUNT(*), befattning FROM personal GROUP BY befattning; GROUP BY befattning; 14
Hämta specifika grupper med HAVING Hämta de arbeten inom företaget till vilka det endast hör en anställd? SELECT COUNT(*), befattning FROM personal SELECT COUNT(*), befattning FROM personal GROUP BY befattning GROUP BY befattning HAVING COUNT(*) = 1; HAVING COUNT(*) = 1; 15
Sortera sökresultat med ORDER BY SELECT namn FROM personal ORDER BY namn; ORDER BY namn; 16
Sortera sökresultat med ORDER BY (fallande) SELECT namn FROM personal ORDER BY namn DESC; ORDER BY namn DESC; 17
Begränsa sökresultat med LIMIT SELECT namn FROM personal LIMIT 2; LIMIT 2; 18
VTC - Getting Started Gå till adressen: Lyssna på SQL Basics - Retrieving Data With Search Criteria - Changing Existing Data -Altering A Table -Keys And Indexes -Basics Syntax Recap (VIKTIG) 19
Övningar Hämta alla data från tabellen personal? Visa en lista på klienternas adresser? Ta fram alla personal som arbetar på FoU? Svara på frågorna på sid Gå till adressen: Läs ”SQL Basic” kapitlet. Läs ”SQL Basic” kapitlet. 20