SQL Academy · Lektion

Aritmetik och operatorer

Addera, subtrahera, multiplicera och dividera i SQL.

Lektion 1 av 413 steg

Aritmetik och operatorer är en gratis lektion i SQL Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för SQL Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i SQL Academy innehåller totalt 4 lektioner.

Beräkningar i SELECT

SQL används inte bara för att hämta rader. Du kan beräkna värden direkt i en fråga med hjälp av aritmetiska operatorer.

I den här lektionen kommer du att addera, subtrahera, multiplicera och dividera med hjälp av kolumner och litteraler, ge resultaten namn och förstå hur PostgreSQL avgör typen för varje resultat.

Föreställ dig en tabell med namnet order_items som innehåller quantity och unit_price. Vi kan beräkna totalsumman för en orderrad utan att röra applikationskoden.

SELECT quantity, unit_price, quantity * unit_price AS line_total
FROM order_items;

De fem aritmetiska operatorerna

PostgreSQL stöder de vanliga operatorerna:

  • + addition
  • - subtraktion
  • * multiplikation
  • / division
  • % modulo (rest)

De fungerar på numeriska kolumner och litteraler precis som i vilket programmeringsspråk som helst. Frågan nedan visar dem i praktiken.

SELECT
  10 + 3  AS sum,
  10 - 3  AS difference,
  10 * 3  AS product,
  10 / 3  AS quotient,
  10 % 3  AS remainder;

Operatorprioritet

SQL följer standardiserad matematisk prioritet: *, / och % binder hårdare än + och -.

Använd parenteser för att tydliggöra avsikten och åsidosätta standardordningen. De två uttrycken nedan ger mycket olika resultat.

SELECT
  2 + 3 * 4        AS without_parens,  -- 14
  (2 + 3) * 4      AS with_parens;     -- 20

Beräkna ett rabatterat pris

En vanlig uppgift i verkligheten är att tillämpa en procentuell rabatt. Multiplicera priset med (1 - discount_rate).

Här lagras discount_rate som en andel (0.15 = 15 %). Parenteserna garanterar att subtraktionen utförs före multiplikationen.

SELECT
  product_id,
  price,
  discount_rate,
  price * (1 - discount_rate) AS final_price
FROM products;

Aritmetik över flera kolumner

Operander behöver inte vara litteraler. Du kan kombinera flera kolumner i samma uttryck.

Nedan beräknar vi nettovinsten per försäljning: intäkt minus kostnad, multiplicerat med den sålda kvantiteten.

SELECT
  sale_id,
  (sale_price - cost) * quantity AS profit
FROM sales;

Namnge resultat med AS

Beräknade kolumner får automatiskt genererade namn som ?column? om du inte ger dem alias. Använd alltid AS för att ge dem läsbara namn.

Ett alias gör det också tydligare att referera till kolumnen i dina verktyg och rapporter.

SELECT
  base_salary,
  base_salary * 0.10 AS bonus,
  base_salary + base_salary * 0.10 AS total_pay
FROM employees;

Aritmetik i WHERE

Du kan använda aritmetik även i WHERE-satsen, inte bara i SELECT.

Detta filtrerar fram beställningar där den beräknade totalsumman överstiger 100. Observera att aritmetik på en kolumn kan förhindra indexanvändning, så föredra oförändrade kolumner i filter när prestandan är viktig.

SELECT order_id, quantity, unit_price
FROM order_items
WHERE quantity * unit_price > 100;

Resultattyper följer indata

PostgreSQL härleder resultattypen från operanderna. Heltal + heltal ger ett heltal; om någon sida är numeric eller float blir resultatet det också.

Detta är viktigast vid division, som vi tar upp senare. Lägg tills vidare märke till hur blandade typer gör resultattypen mer generell.

SELECT
  pg_typeof(4 + 2)        AS int_type,      -- integer
  pg_typeof(4 + 2.0)      AS numeric_type,  -- numeric
  pg_typeof(4 * 1.5);                        -- numeric

Modulooperatorn

% returnerar resten vid heltalsdivision. Den är användbar för cyklisk logik, till exempel ”var N:te rad”, eller för att kontrollera om värden är jämna eller udda.

Nedan hittar vi jämna produkt-ID:n med hjälp av % 2 = 0.

SELECT product_id, name
FROM products
WHERE product_id % 2 = 0;

Uppdatera värden med aritmetik

Aritmetik är inte begränsad till SELECT. Du kan använda den i UPDATE för att justera lagrade värden.

Detta höjer varje pris i en kategori med 5 %. Uttrycket till höger beräknas för varje rad.

UPDATE products
SET price = price * 1.05
WHERE category = 'electronics';

Se upp med NULL

All aritmetik som involverar NULL ger NULL, eftersom resultatet är okänt.

Om en kolumn kan saknas kan du omsluta den med COALESCE för att ange ett standardvärde innan du utför beräkningen.

SELECT
  base + NULL                     AS is_null,      -- NULL
  base + COALESCE(bonus, 0)       AS safe_total
FROM payroll;

Snabbkontroll

Vad blir resultatet av uttrycket 2 + 6 / 2 i PostgreSQL?

Sammanfattning

Du kan beräkna värden direkt i SQL:

  • + - * / % är de grundläggande operatorerna
  • *, / och % binder hårdare än + och -; använd parenteser för att vara tydlig
  • Ge beräknade kolumner alias med AS
  • Aritmetik fungerar i SELECT, WHERE och UPDATE
  • Resultattypen följer operanderna, och varje NULL-operand gör resultatet till NULL

Nästa steg är att hantera avrundning och trunkering av dessa numeriska resultat.

Gratis att börja

Lär dig SQL med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
46
Lektioner
183

Vanliga frågor

Är lektionen ”Aritmetik och operatorer” gratis?

Ja – hela texten till ”Aritmetik och operatorer” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i SQL Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i SQL Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Aritmetik och operatorer”?

Addera, subtrahera, multiplicera och dividera i SQL. Ni övar på SQL Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig SQL Academy?

Du behöver inga förkunskaper. Utbildningen i SQL Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Aritmetik och operatorer”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här SQL Academy-lektionen?

Ja. Varje SQL Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Aritmetik och operatorer
  2. Avrundning och trunkering
  3. Heltals- kontra decimaldivision
  4. Användbara matematiska funktioner
← Tillbaka till SQL Academy