Hvordan skriver man god SQL kode
Reklame:

Structured Query Language (SQL) er en absolut nødvendig færdighed i datavidenskabsindustrien. SQL handler ikke kun om at skrive queries, du skal også sørge for, at dine queries er effektive, hurtige og læsbare. Så det er også nødvendigt, at du ved, hvordan du skriver SQL-queries effektivt.

Denne artikel viser dig de bedste fremgangsmåder til strukturering af SQL-queries. Selv når din SQL-kode fungerer korrekt, kan den stadig forbedres, især når det kommer til ydeevne og læsbarhed.

1. Nøgleord og funktioner med store bogstaver

Lad os starte med en grundlæggende: Brug STORE bogstaver til SQL-nøgleord og små bogstaver til dine tabeller og kolonner. Det er også en god praksis at bruge STORE bogstaver til SQL-funktionerne (FIRST_VALUE(), DATE_TRUNC() osv.).

I stedet for:

select firstname,lastname from employee

Prøv:

SELECT first_name,last_name FROM employee

2. Anvend en konsistent case-type for skemaer, tabeller og kolonner

Inden for programmering er der flere typer af case-typer, for at nævne nogle få:

  • camelCase
  • PascalCase
  • snake_case

Uanset hvad du foretrækker, er det vigtigt at sikre dig, at du er konsistent i hele din kode.

I stedet for:

SELECT 
   firstName,
   LastName,
   countrycode
FROM 
   employee

Prøv:

SELECT 
   first_name,
   last_name,
   country_code
FROM 
   employee

3. Undgå SELECT*

Det er værd at minde om denne gode praksis. Du bør være eksplicit om, hvad du vil vælge, derfor undgå at bruge SELECT*.

SELECT* gør din anmodning uklar, da den skjuler intentionerne bag forespørgslen. Husk også, at dine tabeller kan udvikle sig og påvirke SELECT*.

I stedet for:

SELECT 
   *
FROM 
   employee;

Prøv:

SELECT 
   first_name,
   last_name,
   location,
   salary
FROM 
   employee;

4. Formatering: Brug forsigtigt indrykning og mellemrum

Selvom det er et grundlæggende princip, er det en hurtig gevinst at gøre din kode mere læsbar. Som du ville gøre med python, bør du indrykke din SQL-kode.

Ident/indryk efter et nøgleord, og når du bruger en subquery eller en afledt tabel.

I stedet for:

SELECT employee.id, employee.name, employee.age, employee.gender, employee.salary, first_purchase.date
FROM company.employee
LEFT JOIN ( SELECT employee_id, MIN(date) as date FROM company.purchases GROUP BY employee_id ) AS first_purchase 
ON first_purchase.employee_id = employee.id 
WHERE employee.age<=30

Prøv:

SELECT employee.id, 
       employee.name, 
       employee.age, 
       employee.gender, 
       employee.salary,
       first_purchase.date
FROM company.employee
LEFT JOIN (
              SELECT employee_id,
                     MIN(date) as date 
              FROM company.purchases
              GROUP BY employee_id
          ) AS first_purchase 
            ON first_purchase.employee_id = employee.id
WHERE employee.age <= 30

Bemærk også, hvordan vi brugte mellemrum i where-sætningen.

I stedet for:

SELECT id WHERE employee.age<=30

Prøv:

SELECT id WHERE employee.age <= 30

5. Skriv meningsfulde kommentarer.

Her er den vigtigste regel, når du skriver kommentarer: Skriv kun kommentarer, når du har brug for det.

Når det er sagt, er kommentarer nyttige og måske nødvendige, når selve koden ikke kan forklare, hvad du forsøger at opnå.

# Getting names of people in Toronto, Canada
with table1 as (
   SELECT DISTINCT name
   FROM population
   WHERE country = "Canada"
         AND city = "Toronto"
)# Getting the average salary of females
, table2 as (
   SELECT AVG(salary) as var1
   FROM salaries
   WHERE gender = "Female"
)

Dette er dårlige kommentarer, fordi det fortæller os, hvad vi allerede ville vide ved at læse selve koden. Husk, at kommentarer typisk svarer “hvorfor” du gør noget i stedet for “hvad” du gør.



Resumé

SQL er et meget fleksibelt sprog, der giver adskillige måder at udføre ønskede opgaver på en database. For at gøre dine applikationer mere effektive og produktive og undgå langsigtede databaseproblemer, skal du anvende moderne SQL-queryoptimeringsmetoder til at skrive dine queries. Disse metoder hjælper dig med at fremskynde justering af ydeevne i SQL, eliminere unødvendige rutiner og gøre alt dit arbejde mere kortfattet og gennemsigtigt.

God fornøjelse!

Reklame:
0 replies

Skriv en kommentar

Want to join the discussion?
Feel free to contribute!

Leave a Reply