Aritmetikk og operatorer
Legg sammen, trekk fra, multipliser og divider i SQL.
Aritmetikk og operatorer er en gratis leksjon i SQL Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i SQL Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i SQL Academy inneholder totalt 4 leksjoner.
Regning i SELECT
SQL brukes ikke bare til å hente rader. Du kan beregne verdier direkte i en spørring ved hjelp av aritmetiske operatorer.
I denne leksjonen skal du legge sammen, trekke fra, multiplisere og dividere ved hjelp av kolonner og literaler, gi resultatene navn og forstå hvordan PostgreSQL avgjør typen til hvert resultat.
Se for deg en order_items-tabell med quantity og unit_price. Vi kan beregne en linjesum uten å berøre applikasjonskoden.
SELECT quantity, unit_price, quantity * unit_price AS line_total
FROM order_items;De fem aritmetiske operatorene
PostgreSQL støtter de vanlige operatorene:
+addisjon-subtraksjon*multiplikasjon/divisjon%modulo (rest)
De fungerer på numeriske kolonner og literaler akkurat som i ethvert programmeringsspråk. Spørringen nedenfor viser hver av dem i bruk.
SELECT
10 + 3 AS sum,
10 - 3 AS difference,
10 * 3 AS product,
10 / 3 AS quotient,
10 % 3 AS remainder;Operatorprioritet
SQL følger standard matematisk operatorprioritet: *, / og % binder sterkere enn + og -.
Bruk parenteser for å gjøre hensikten tydelig og overstyre standardrekkefølgen. De to uttrykkene nedenfor gir svært forskjellige resultater.
SELECT
2 + 3 * 4 AS without_parens, -- 14
(2 + 3) * 4 AS with_parens; -- 20Beregning av rabattert pris
En vanlig oppgave fra virkeligheten er å bruke en prosentvis rabatt. Multipliser prisen med (1 - discount_rate).
Her lagres discount_rate som en brøk (0.15 = 15 %). Parentesene sikrer at subtraksjonen utføres før multiplikasjonen.
SELECT
product_id,
price,
discount_rate,
price * (1 - discount_rate) AS final_price
FROM products;Aritmetikk på tvers av kolonner
Operander trenger ikke å være literaler. Du kan kombinere flere kolonner i ett uttrykk.
Nedenfor beregner vi nettofortjeneste per salg: inntekt minus kostnad, skalert med antallet solgte enheter.
SELECT
sale_id,
(sale_price - cost) * quantity AS profit
FROM sales;Gi resultater navn med AS
Beregnede kolonner får automatisk genererte navn som ?column? med mindre du gir dem et alias. Bruk alltid AS for å gi dem lesbare navn.
Et alias gjør det også enklere å referere til kolonnen i verktøyene og rapportene dine.
SELECT
base_salary,
base_salary * 0.10 AS bonus,
base_salary + base_salary * 0.10 AS total_pay
FROM employees;Aritmetikk i WHERE
Du kan også bruke aritmetikk i WHERE-setningen, ikke bare i SELECT.
Dette filtrerer til ordrer der den beregnede totalen overstiger 100. Merk: Hvis du pakker en kolonne inn i et matematisk uttrykk, kan det hindre bruk av indekser. Foretrekk derfor kolonner uten beregninger i filtre når ytelsen er viktig.
SELECT order_id, quantity, unit_price
FROM order_items
WHERE quantity * unit_price > 100;Resultattyper følger operandene
PostgreSQL utleder resultattypen fra operandene. Heltall + heltall gir et heltall; hvis én av sidene er numeric eller float, blir resultatet det også.
Dette er viktigst ved divisjon, som vi går gjennom senere. Foreløpig bør du legge merke til hvordan blanding av typer løfter resultatet til en bredere type.
SELECT
pg_typeof(4 + 2) AS int_type, -- integer
pg_typeof(4 + 2.0) AS numeric_type, -- numeric
pg_typeof(4 * 1.5); -- numericModulooperatoren
% returnerer resten ved heltallsdivisjon. Den er nyttig for syklisk logikk, for eksempel «hver N-te rad», eller for å kontrollere om verdier er partall eller oddetall.
Nedenfor finner vi partall av produkt-ID-er ved hjelp av % 2 = 0.
SELECT product_id, name
FROM products
WHERE product_id % 2 = 0;Oppdater verdier med aritmetikk
Aritmetikk er ikke begrenset til SELECT. Du kan bruke det i UPDATE for å justere lagrede verdier.
Dette øker alle priser i en kategori med 5 %. Uttrykket til høyre evalueres for hver rad.
UPDATE products
SET price = price * 1.05
WHERE category = 'electronics';Pass på NULL
All aritmetikk som involverer NULL, gir NULL, fordi resultatet er ukjent.
Hvis en kolonne kan mangle en verdi, pakker du den inn i COALESCE for å angi en standardverdi før du utfører beregninger.
SELECT
base + NULL AS is_null, -- NULL
base + COALESCE(bonus, 0) AS safe_total
FROM payroll;Hurtigsjekk
Hva blir resultatet av uttrykket 2 + 6 / 2 i PostgreSQL?
Oppsummering
Du kan beregne verdier direkte i SQL:
+ - * / %er kjerneoperatorene*,/og%binder sterkere enn+og-; bruk parenteser for å gjøre rekkefølgen tydelig- Gi beregnede kolonner aliaser med
AS - Aritmetikk fungerer i
SELECT,WHEREogUPDATE - Resultattypen følger operandene, og enhver
NULL-operand gjør resultatet tilNULL
Deretter skal vi ta for oss avrunding og avkorting av disse numeriske resultatene.
Lær deg SQL med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 46
- Leksjoner
- 183
Ofte stilte spørsmål
Er leksjonen «Aritmetikk og operatorer» gratis?
Ja – hele teksten i «Aritmetikk og operatorer» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av SQL Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i SQL Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Aritmetikk og operatorer»?
Legg sammen, trekk fra, multipliser og divider i SQL. Du øver på SQL Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med SQL Academy?
Ingen tidligere erfaring er nødvendig. SQL Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Aritmetikk og operatorer»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne SQL Academy-leksjonen?
Ja. Alle SQL Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Aritmetikk og operatorer
- Avrunding og avkorting
- Heltallsdivisjon kontra desimaldivisjon
- Nyttige matematiske funksjoner