SQL Programmering Videregående
Beskrivelse
Kurset fokuserer på praktisk anvendelse af SQL:
- Du får en times repetition af grundkurset for at få hjernecellerne i sving
- Du bliver trænet i den akrobatiske kunst at kombinere grundlæggende kommandoer
- Du lærer at skrive mere komplekse SQL-konstruktioner
- Du prøver kræfter med ”reverse engineering”, hvor du udleder rapportønsket på basis af eksisterende SQL-kode
- Du får udbygget dit arsenal af gode SQL-vaner
En hjørnesten i kurset er at lære at ”tænke” SQL. Det starter gerne med et rapportønske. Først skal du finde den rigtige strategi. Derefter skal strategien omsættes til kode, der kan levere den ønskede rapport.
Undervejs gennemgås og demonstreres syntaks i dialog med kursusdeltagerne. Indholdet af dette kursus tager udgangspunkt i SQL-standarden. Der gennemgås altså produkt-uafhængig syntaks, så din SQL-kode kan anvendes direkte i f.eks Microsoft SQL Server, IBM DB2, Oracle Databaser, PostgreSQL server, MySQL / Maria DB m.fl.
Kurset tager udgangspunkt i forskellige cases, og du opnår færdighed i velegnet SQL ved at løse opgaver til de enkelte cases. Løsningsforslag er inkluderet i materialet.
Certificeringspakker
Moduloversigt
- Modul 1FORENINGSMÆNGDEN ( UNION / UNION ALL )
Foreningsmængder optræder, når du ønsker at samle/forene rækker fra to datakilder, ved at sætte rækkerne ”ovenpå hinanden”. Dette optræder f.eks. hvis man har to forskellige datagrundlag, som man ønsker at behandle under ét -- eller inden for samme datagrundlag ønsker at håndtere brøkdele af rækkerne på forskellige måder, for til sidst at forene resultatsættene.
- Modul 2COMMON TABLE EXPRESSIONS ( CTE )
CTE findes i to varianter: De almindelige samt rekursive. SU-241 gennemgår de almindelige CTE’er, som i høj grad kan gøre din kode læsbar, når komplekse løsninger kan brydes ned i mere håndgribelige brøkdele. CTE kan være et godt valg, når du implementerer din kode-strategi, og bagefter til vedligeholdelse af koden. (Rekursive CTE’er gennemgås på kursus SU-245).
- Modul 3EKSOTISKE JOINS
Elegante løsninger ved at joine på andet end ’=’ (fx kategorisere dine data i intervaller)
- Modul 4OUTER JOIN
Få alle kunder med i Rapporten, også dem som ikke købte noget
- Modul 5CROSS JOIN
Danne et udgangspunkt for de ”manglende værdier” i dine rapporter (fx alle kombinationer af { Kunder , Årstal } i dine rapporter)
- Modul 6HAVING
Stort emne på kurset - mange demoer og øvelser
Håndterer grupperede betingelser (fx finde kunder som købte mere end 3 gange / for mere end 500.000 etc.)
Lige så vigtig som Where-klausulen …
- Modul 7CORRELATED SUBQUERIES
Correlated DELETE -- hvordan slettes rækker i én tabel, ud fra værdier i en anden tabel? -- f.eks. en fejlliste, som ønskes benyttet til at slette rækker i en hovedtabel.
Correlated UPDATE -- hvordan opdateres felter i rækker i én tabel, ud fra værdier i en anden tabel? -- f.eks. en liste med transaktioner, som ønskes benyttet til at opdatere den samlede Saldo i en hovedtabel -- eller en fejlliste, som benyttes til at opdatere forkerte værdier i en hovedtabel.
Snedig syntax -- kan løse problemstillinger, hvor behandlede data er afhængig af rækkens/gruppens indhold
Beregne relative summer til rapporter (fx %-fordelingen af kundens varekøb)
Maximere/minimere inden for gruppering (fx angive hver kundes mindste enkeltkøb)
- Modul 8EXISTS
Man kan opnå høj performance, hvis man kan nøjes med at få bekræftet tilstedeværelsen af data frem for at få returneret data
Slette/opdatere rækker i én tabel, afhængigt af værdier i en anden tabel (fx opdatere saldi/salgskatalog afhængigt af tidligere års køb)
- Modul 9CASE
Byg logik ind i dine SQL statements
Hvornår kan man med fordel benytte CASE i SELECT , WHERE , GROUP BY , HAVING , ORDER BY - mange eksempler og opgaver
Undgå ”Division by Zero”-errors, så dine rapporter ikke blokerer
Metoder til ”Data vask” (Data Cleansing)
- Modul 10COALESCE
Behandle NULL-værdier i dine rapporter
Erstat NULL med en valgt værdi i rapporten (fx 0)
Prioritér din søgerækkefølge gennem flere kolonner og/eller tabeller, hvis der optræder NULL-værdier (fx Hvis kundens mobiltlf. ikke er registreret, returnér da kundens fastnetnr.)
Er du i tvivl?
Det ligger os meget på sinde, at du finder det kursusforløb, der skaber størst værdi for dig og din arbejdsplads. Tag fat i vores kursusrådgivere, de sidder klar til at hjælpe dig!