SQL Cheat Sheet: Hurtigguide til viktige kommandoer

Som programmerer eller dataanalytiker vil du ofte finne deg selv å jobbe med store mengder data. Et av de kraftigste verktøyene du har til rådighet er SQL (Structured Query Language).

Dette SQL-juksearket gir deg de vanligste SQL-objektene og -kommandoene, inkludert datatyper, DML- og DDL-setninger, aggregerte funksjoner, streng- og datofunksjoner og underspørringer.

Den er designet for å være en rask og hendig referanse som du kan nå når du samhandler med en relasjonsdatabase.

Hvis du er som oss og ønsker å laste ned og skrive ut eller lagre juksearket på datamaskinen din, kan du laste det ned nedenfor.

Innholdsfortegnelse

SQL-datatyper

SQL Cheat Sheet: Hurtigguide til viktige kommandoer

Datatypene for spesifikke databasestyringssystemer (DBMS) kan variere (f.eks. Microsoft SQL Server vs MySQL ). Det er imidlertid flere som finnes på de fleste systemer. Du kan dele disse inn i tre kategorier:

  1. Numerisk

  2. Dato og tid

  3. String

1. Numeriske typer

Dette er de vanligste numeriske typene:

  • HELTAL : Et helt tall uten et desimaltegn.

  • SMALLINT : Et mindre område av hele tall

  • BIGINT : Et større utvalg av hele tall.

  • DESIMAL(p, s) eller NUMERISK(p, s) : For eksempel vil en desimal(5,2) passe til 123,45.

  • REAL : Et flyttallstall, med en presisjon på minst 6 desimaler.

  • FLOAT(n) : Et flyttallstall, med en presisjon på minst n sifre.

2. Dato- og tidstyper

  • DATO : En datoverdi, vanligvis i formatet 'ÅÅÅÅ-MM-DD'.

  • TID : En tidsverdi, vanligvis i formatet 'TT:MM:SS'.

  • DATETIME eller TIME STAMP : En kombinasjon av dato- og klokkeslettverdier.

3. Strengetyper

  • CHAR(n) : En streng med fast lengde med n tegn.

  • VARCHAR(n) eller CHARACTER VARYING(n) : En streng med variabel lengde.

  • TEKST : En streng med variabel lengde med en maksimal lengde bestemt av DBMS.

VELG erklæring

SQL Cheat Sheet: Hurtigguide til viktige kommandoer

SELECT-setningen brukes til å hente data fra en eller flere tabeller. Du kan spesifisere hvilke kolonner du ønsker å hente og fra hvilken tabell. En grunnleggende SELECT-setning ser slik ut:

SELECT column1, column2
FROM table;

For å hente alle poster fra kolonnene 'navn' og 'country_id' fra 'by'-tabellen, ser SQL-spørringen din slik ut:

SELECT name, country_id
FROM city;

HVOR klausul

SQL Cheat Sheet: Hurtigguide til viktige kommandoer

WHERE-leddet lar deg filtrere resultatene av en SELECT-setning basert på spesifikke forhold.

SELECT column1, column2
FROM table
WHERE condition;

For å hente poster fra "by"-tabellen der "befolkningen" er større enn 1 000 000, ser søket ditt slik ut:

SELECT name, population
FROM city
WHERE population > 1000000;

BESTILL ETTER Klausul

ORDER BY-leddet lar deg sortere resultatene av en SELECT-setning etter én eller flere kolonner. Du kan sortere resultatene i stigende (ASC) eller synkende (DESC) rekkefølge:

SELECT column1, column2
FROM table
ORDER BY column1 ASC, column2 DESC;

For eksempel, for å hente poster fra 'by'-tabellen sortert etter 'befolkning' i synkende rekkefølge, ser spørringen din slik ut:

SELECT name, population
FROM city
ORDER BY population DESC;

Slå sammen flere tabeller i SQL

SQL Cheat Sheet: Hurtigguide til viktige kommandoer

Det er fire vanlig brukte sammenføyninger i SQL:

  1. INDRE BLI MED

  2. VENSTRE BLI MED

  3. HØYRE BLI MED

  4. FULL MED

1. INDRE SAMLING

En INNER JOIN henter poster som har samsvarende verdier i begge tabellene.

La oss ta et eksempel på en database med artister og album, og du vil finne alle artist- og albumkombinasjoner. Dette er den INDRE JOIN:

SELECT *
FROM artists AS a
INNER JOIN albums AS b
ON a.artist_id = b.artist_id;

Med en INNER JOIN vil kun radene med samsvarende verdier i de angitte feltene bli returnert i resultatene.

2. VENSTRE BLI MED

EN LEFT JOIN er også kjent som en LEFT OUTER JOIN. Den returnerer alle poster fra den venstre tabellen og de samsvarende postene fra den høyre tabellen. Hvis det ikke er samsvar i den høyre tabellen, vil resultatet inneholde NULL-verdier.

For eksempel, for å få en liste over alle artister og deres respektive album (hvis de har noen), kan du bruke en LEFT JOIN:

SELECT *
FROM artists AS a
LEFT JOIN albums AS b
ON a.artist_id = b.artist_id;

Denne spørringen vil returnere alle artister, selv om de ikke har noen album knyttet til seg i albumtabellen.

3. HØYRE BLI MED

EN RIGHT OUTER JOIN er også kjent som en RIGHT OUTER JOIN. Den returnerer alle poster fra den høyre tabellen og de samsvarende postene fra den venstre tabellen. Hvis det ikke er samsvar i den venstre tabellen, vil resultatet inneholde NULL-verdier.

For eksempel, for å få informasjon om alle album og deres tilknyttede artister (hvis de finnes), vil du bruke en HØYRE JOIN:

SELECT *
FROM artists AS a
RIGHT JOIN albums AS b
ON a.artist_id = b.artist_id;

Denne spørringen vil returnere alle album, selv om de ikke har tilknyttede artister i artisttabellen.

4. FULLT MEDLEM

EN FULL JOIN er også kjent som en FULL YTRE JOIN. Den kombinerer resultatene av både VENSTRE og HØYRE sammenføyninger. Med andre ord returnerer den alle rader fra venstre og høyre tabell og fyller ut de manglende verdiene med NULLer når det ikke er samsvar.

Her er et eksempel med artist- og albumtabeller:

SELECT *
FROM artists AS a
FULL JOIN albums AS b
ON a.artist_id = b.artist_id;

Denne spørringen returnerer alle rader fra begge tabellene, og fyller ut NULL-er der det ikke er samsvar i noen av tabellene.

SQL-aggregatfunksjoner

Aggregerte funksjoner brukes til å beregne et enkelt resultat fra et sett med inngangsverdier. De kalles "samlet" fordi de tar flere inndata og returnerer en enkelt utgang. De vanligste er:

  1. TELLE

  2. SUM

  3. AVG

  4. MAKS

  5. MIN

1. COUNT-funksjon

COUNT-funksjonen lar deg telle antall rader i et spørringsresultat. Du kan bruke denne aggregerte funksjonen til å bestemme det totale antallet poster i en tabell eller antall poster som samsvarer med bestemte kriterier.

Her er et eksempel:

SELECT COUNT(*) FROM employees;

Denne spørringen vil returnere det totale antallet ansatte i 'ansatte'-tabellen. Husk at å legge til en WHERE-klausul kan avgrense resultatene dine:

SELECT COUNT(*) FROM employees WHERE department = 'HR';

2. SUM-funksjon

SUM-funksjonen beregner den totale summen av en numerisk kolonne. Det er nyttig når du trenger å beregne den totale verdien av et bestemt numerisk felt. For eksempel returnerer denne spørringen den totale summen av alle ansattes lønn:

SELECT SUM(salary) FROM employees;

3. AVG-funksjon

AVG-funksjonen beregner gjennomsnittsverdien av en numerisk kolonne. Denne funksjonen er nyttig når du vil finne gjennomsnittet av et bestemt numerisk felt. For eksempel returnerer denne spørringen gjennomsnittslønnen til alle ansatte:

SELECT AVG(salary) FROM employees;

4. MAX-funksjon

MAX-funksjonen finner maksimumsverdien til en kolonne. Dette brukes ofte til å finne den høyeste verdien i et numerisk felt eller den nyeste datoen i et datetime-felt. For eksempel returnerer denne spørringen den høyeste lønnen:

SELECT MAX(salary) FROM employees;

5. MIN funksjon

Til slutt hjelper MIN-funksjonen deg med å finne minimumsverdien til en kolonne. For eksempel returnerer denne spørringen den laveste lønnen:

SELECT MIN(salary) FROM employees;

Husk at du kan bruke WHERE-klausuler i disse spørringene og JOIN med flere tabeller.

Vanlige strengfunksjoner

SQL Cheat Sheet: Hurtigguide til viktige kommandoer

Her er de vanligste strengfunksjonene som finnes i de fleste SQL-dialekter (den eksakte syntaksen kan variere):

  1. LEN eller LENGDE(streng) : Returnerer lengden på en streng.

  2. UPPER(streng) : Konverterer en streng til store bokstaver.

  3. LOWER(string) : Konverterer en streng til små bokstaver.

  4. SUBSTR eller SUBSTRING(streng, start, lengde) : Trekker ut en del fra en streng.

  5. TRIM(streng) : Fjerner innledende og etterfølgende mellomrom fra en streng.

  6. LTRIM(streng) : Fjerner innledende mellomrom fra en streng.

  7. RTRIM(streng) : Fjerner etterfølgende mellomrom fra en streng.

Vanlige numeriske funksjoner

SQL Cheat Sheet: Hurtigguide til viktige kommandoer

Her er de vanligste numeriske funksjonene som finnes i de fleste SQL-dialekter (den eksakte syntaksen kan variere):

  1. ABS(tall) : Returnerer den absolutte verdien av et tall.

  2. RUNDE(tall; desimalplasser) : Avrunder et tall til et visst antall desimaler.

  3. FLOOR(tall) : Runder ned tallet til nærmeste heltall.

  4. CEIL eller CEILING(tall) : Runder opp tallet til nærmeste heltall.

  5. RAND() : Returnerer en tilfeldig flytende verdi fra 0 til 1.

  6. MOD(n, m) : Returnerer resten av n delt på m.

  7. POWER(base, eksponent) : Hever et tall til potensen av et annet tall.

  8. LOG(tall) : Returnerer den naturlige logaritmen til et tall.

Vanlige datofunksjoner

SQL Cheat Sheet: Hurtigguide til viktige kommandoer

Her er de vanligste datofunksjonene som finnes i de fleste SQL-dialekter (den eksakte syntaksen kan variere):

  1. NOW() : Returnerer gjeldende dato og klokkeslett.

  2. DATO(datoklokkeslett) : Trekker ut datodelen av et dato- eller datotidsuttrykk.

  3. TIME(datetime) : Trekker ut tidsdelen av et dato- eller datetime-uttrykk.

  4. ÅR(dato) : Returnerer årsdelen.

  5. MONTH(dato) : Returnerer månedsdelen.

  6. DAY(dato): Returnerer dagen i måneden.

  7. HOUR(tid) : Returnerer timedelen fra et tidspunkt.

  8. MINUTE(tid) : Returnerer minuttdelen fra et tidspunkt.

  9. SEKUND(tid): Returnerer den andre delen fra et tidspunkt.

GRUPPER ETTER OG HA

SQL Cheat Sheet: Hurtigguide til viktige kommandoer

Når du arbeider med SQL-spørringer, kan det være lurt å oppsummere og filtrere de aggregerte dataene dine ytterligere. GROUP BY- og HAVING-klausulene gir denne funksjonaliteten.

1. Grupper etter klausul

GROUP BY-leddet lar deg gruppere rader som deler de samme verdiene i spesifiserte kolonner. Det brukes ofte med aggregerte funksjoner. Dette er syntaksen:

SELECT column1, column2, aggregate_function(column3)
FROM table_name
WHERE condition
GROUP BY column1, column2;

Hvis du for eksempel vil beregne det totale salgsbeløpet for hver produktkategori, er dette spørringen:

SELECT product_category, SUM(sales_amount)
FROM sales_data
GROUP BY product_category;

TIPS : Å kombinere GROUP BY og COUNT er en god måte å finne dupliserte verdier på.

2. Å ha klausul

Hvis du ønsker å filtrere de aggregerte resultatene videre, kan du bruke HAVING-klausulen. Syntaksen er:

SELECT column1, column2, aggregate_function(column3)
FROM table_name
WHERE condition
GROUP BY column1, column2
HAVING condition;

Hvis du vil finne produktkategorier med totalt salg på mer enn 1 000 000 USD, skriver du:

SELECT product_category, SUM(sales_amount)
FROM sales_data
GROUP BY product_category
HAVING SUM(sales_amount) > 1000000;

Raske tips

  • Bruk alltid GROUP BY-klausulen før HAVING-klausulen.

  • SELECT-setningen kan bare inneholde spesifiserte kolonnenavn, aggregerte funksjoner, konstanter og uttrykk.

  • Når du bruker HAVING-leddet, bør filterbetingelsene brukes på aggregerte funksjoner i stedet for direkte på de grupperte kolonnene.

Ved å forstå og bruke GROUP BY- og HAVING-klausulene på riktig måte, kan du bedre organisere og analysere dataene dine ved hjelp av SQL.

Undersøk

SQL Cheat Sheet: Hurtigguide til viktige kommandoer

En underspørring er også kjent som en indre eller nestet spørring. Dette er en spørring innebygd i en annen SQL-setning (som en SELECT-setning) eller til og med i en annen underspørring.

Underspørringer lar deg hente data basert på utdata fra en annen spørring. De vanligste operatorene som brukes med underspørringer er:

  1. I

  2. FINNES

  3. NOEN

  4. ALLE

1. IN-operatør

IN-operatøren tester om en verdi er innenfor et sett med verdier generert av den indre spørringen. Syntaksen for bruk av IN-operatoren med en underspørring er som følger:

SELECT column_name(s)
FROM table_name
WHERE column_name IN (SELECT column_name FROM other_table);

Dette returnerer rader fra den ytre spørringen der den spesifiserte kolonneverdien samsvarer med noen av verdiene gitt av underspørringen.

Anta at du har en ansatttabell og en avdelingstabell. Du ønsker å finne ansatte som jobber i avdelinger med base på hovedkontoret. Her er et eksempelspørsmål

SELECT first_name, last_name
FROM employee
WHERE department IN (SELECT department FROM departments
                     WHERE location = "HQ");

For en mer dyptgående titt, sjekk ut artikkelen vår om syntaksen.

2. FINNES Operatør

EXISTS-operatoren sjekker om det er minst én rad som kommer fra underspørringen. Du kan bruke EXISTS-operatoren til å filtrere rader basert på eksistensen av relaterte data i en annen tabell. Dette er syntaksen:

SELECT column_name(s)
FROM table_name
WHERE EXISTS (SELECT column_name FROM other_table WHERE condition);

Når underspørringen returnerer minst én rad, returnerer EXISTS-operatoren sann, og de relevante radene fra den ytre spørringen inkluderes i resultatet.

3. ENHVER operatør

ANY-operatoren brukes til å sammenligne en verdi med en hvilken som helst verdi i et sett med verdier levert av en underspørring. Det brukes ofte med sammenligningsoperatorer som =, <, >, <= eller >=.

Dette er syntaksen:

SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY (SELECT column_name FROM other_table WHERE condition);

Dette vil returnere rader fra den ytre spørringen der den angitte kolonneverdien oppfyller betingelsen mot en hvilken som helst verdi fra underspørringen.

4. ALLE Operatør

ALL-operatoren sammenligner en verdi med alle verdier innenfor et sett med verdier gitt av en underspørring. Betingelsene må være sanne for hver verdi i underspørringens resultat. Dette er syntaksen:

SELECT column_name(s)
FROM table_name
WHERE column_name operator ALL (SELECT column_name FROM other_table WHERE condition);

Dette returnerer rader fra den ytre spørringen bare hvis den angitte kolonneverdien tilfredsstiller betingelsen mot alle verdier i underspørringens utdata.

Datamanipulasjon (DML)

SQL Cheat Sheet: Hurtigguide til viktige kommandoer

Data Manipulation Language (DML) is a sub-language within SQL for managing and updating data. The most common statements are:

  1. INSERT

  2. UPDATE

  3. DELETE

1. INSERT Statement

The INSERT statement allows you to insert rows into a table. Here’s the basic syntax:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

For example, if you want to insert a new row into a ‘users’ table with columns ‘id’, ‘name’, and ’email’, you would use the following query:

INSERT INTO users (id, name, email)
VALUES (1, 'John Doe', '[email protected]');

2. UPDATE Statement

The UPDATE statement allows you to modify existing row data in a table. This is the syntax:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

For example, if you want to update the email address of a user with the id ‘1’ in the ‘users’ table, your query would look like this:

UPDATE users
SET email = '[email protected]'
WHERE id = 1;

TIP: remember to include a WHERE clause to avoid updating all rows in the table by mistake.

3. DELETE Statement

The DELETE statement allows you to remove rows from a table. Here’s the syntax:

DELETE FROM table_name
WHERE condition;

For example, if you want to delete a user with the id ‘1’ from the ‘users’ table, your query would look like this:

DELETE FROM users
WHERE id = 1;

TIP: always include a WHERE clause to specify which rows to delete and to avoid deleting all the rows in the table.

Database Management With DDL

SQL Cheat Sheet: Hurtigguide til viktige kommandoer

Data Definition Language (DDL) is the SQL sub-language used for creating and altering tables and the database itself. The most common DDL statements are:

  1. CREATE

  2. ALTER

  3. DROP

1. CREATE Statement

The CREATE statement allows you to create new database objects, such as new tables, views, or indexes. When creating a new table, you need to define the columns, their data types, and any constraints.

Here’s an example of creating an orders table:

CREATE TABLE orders (
    id INTEGER PRIMARY KEY,
    product VARCHAR(255) NOT NULL,
    customer_id INT NOT NULL
);

TIP: choose appropriate data types and constraints to ensure data integrity in your tables.

For a more detailed look, check out our article on .

2. ALTER Statement

The ALTER statement helps you modify existing database objects. Common uses include:

  • adding, modifying, or dropping columns.

  • adding or removing constraints from an existing table.

  • adding primary and foreign keys.

ADD A NEW COLUMN

ALTER TABLE users ADD COLUMN age INTEGER;

Modify a Column’s Data Type

ALTER TABLE users ALTER COLUMN age TYPE FLOAT;

Drop A Column

ALTER TABLE users DROP COLUMN age;

Add A Unique Constraint

ALTER TABLE users ADD CONSTRAINT users_email_unique UNIQUE(email);

Add a foreign key between tables

ALTER TABLE users ADD FOREIGN KEY (country_id) REFERENCES Country(country_id);

3. DROP Statement

The DROP statement allows you to remove database objects like tables, views, or indexes. Use it with caution, as it will permanently delete the specified object and all its data.

Here’s an example:

DROP TABLE users;

TIP: Ensure you have proper backups in place before executing a DROP statement.

If you want to learn more about data modeling, check out this video:

Transactions

Transactions play a crucial role in maintaining database integrity, especially when multiple related operations are executed concurrently. There are three fundamental operations in handling transactions:

  1. BEGIN

  2. COMMIT

  3. ROLLBACK

1. BEGIN

The BEGIN statement signifies the beginning of a transaction. Upon executing this command, you’re establishing a starting point for your set of SQL statements.

BEGIN;

2. COMMIT

To finalize your changes and persist them in the database, use the COMMIT statement. This ensures that all the operations within the transaction are executed successfully and permanently.

COMMIT;

Here’s an example of a full transaction using the classic example of transferring funds between accounts:

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;

3. ROLLBACK

SQL Cheat Sheet: Hurtigguide til viktige kommandoer

When working with transactions, it’s also essential to know how to undo changes when an error occurs. The ROLLBACK statement reverses all the changes made since the start of the transaction:

ROLLBACK;

Here’s an example of a transaction with error handling using ROLLBACK:

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
IF @@ERROR <> 0
    ROLLBACK;
ELSE
    COMMIT;

Final Thoughts

As you’ve seen in this SQL cheat sheet, SQL offers a multitude of commands and functions that allow you to create, manipulate, and query data in a relational database.

From the foundational commands like SELECT, INSERT, UPDATE, and DELETE, to the more complex constructs like JOINs and subqueries, to the aggregate functions we’ve covered, SQL provides the flexibility to handle a wide range of data tasks.

Keep coming back to this cheat sheet to speed up your !


Pipe In R: Koblingsfunksjoner med Dplyr

Pipe In R: Koblingsfunksjoner med Dplyr

I denne opplæringen lærer du hvordan du kobler funksjoner sammen ved å bruke dplyr-røroperatøren i programmeringsspråket R.

RANKX Deep Dive: A LuckyTemplates DAX-funksjon

RANKX Deep Dive: A LuckyTemplates DAX-funksjon

RANKX fra LuckyTemplates lar deg returnere rangeringen til et spesifikt tall i hver tabellrad som utgjør en del av en liste med tall.

Trekker ut LuckyTemplates-temaer og bilder fra PBIX

Trekker ut LuckyTemplates-temaer og bilder fra PBIX

Lær hvordan du demonterer en PBIX-fil for å trekke ut LuckyTemplates-temaer og bilder fra bakgrunnen og bruke den til å lage rapporten din!

Excel Formulas Cheat Sheet: Mellomveiledning

Excel Formulas Cheat Sheet: Mellomveiledning

Excel Formulas Cheat Sheet: Mellomveiledning

LuckyTemplates-kalendertabell: Hva er det og hvordan du bruker det

LuckyTemplates-kalendertabell: Hva er det og hvordan du bruker det

LuckyTemplates-kalendertabell: Hva er det og hvordan du bruker det

Python i LuckyTemplates: Hvordan installere og sette opp

Python i LuckyTemplates: Hvordan installere og sette opp

Lær hvordan du installerer programmeringsspråket Python i LuckyTemplates og hvordan du bruker verktøyene til å skrive koder og vise visuelle elementer.

Beregning av dynamiske fortjenestemarginer – enkel analyse av LuckyTemplates med DAX

Beregning av dynamiske fortjenestemarginer – enkel analyse av LuckyTemplates med DAX

Lær hvordan du beregner dynamiske fortjenestemarginer ved siden av LuckyTemplates og hvordan du kan få mer innsikt ved å grave dypere inn i resultatene.

Sortering av datotabellkolonner i LuckyTemplates

Sortering av datotabellkolonner i LuckyTemplates

Lær hvordan du sorterer feltene fra kolonner med utvidet datotabell på riktig måte. Dette er en god strategi å gjøre for vanskelige felt.

Finn dine beste produkter for hver region i LuckyTemplates ved å bruke DAX

Finn dine beste produkter for hver region i LuckyTemplates ved å bruke DAX

I denne artikkelen går jeg gjennom hvordan du kan finne de beste produktene dine per region ved å bruke DAX-beregninger i LuckyTemplates, inkludert TOPN- og CALCUATE-funksjonene.

Søppeldimensjon: Hva er det og hvorfor det er alt annet enn søppel

Søppeldimensjon: Hva er det og hvorfor det er alt annet enn søppel

Lær hvordan du bruker en søppeldimensjon for flagg med lav kardinalitet som du ønsker å inkludere i datamodellen din på en effektiv måte.