SQL-snydeark: Hurtig vejledning til essentielle kommandoer

Som programmør eller dataanalytiker vil du ofte finde dig selv i at arbejde med store mængder data. Et af de mest kraftfulde værktøjer til din rådighed er SQL (Structured Query Language).

Dette SQL-snydeark giver dig de mest almindelige SQL-objekter og -kommandoer, inklusive datatyper, DML- og DDL-sætninger, aggregerede funktioner, streng- og datofunktioner og underforespørgsler.

Det er designet til at være en hurtig og praktisk reference, som du kan nå, når du interagerer med en relationsdatabase.

Hvis du er ligesom os og ønsker at downloade og printe eller gemme snydearket på din computer, kan du downloade det nedenfor.

Indholdsfortegnelse

SQL datatyper

SQL-snydeark: Hurtig vejledning til essentielle kommandoer

Datatyperne for specifikke databasestyringssystemer (DBMS) kan variere (f.eks. Microsoft SQL Server vs MySQL ). Der er dog flere, der findes på de fleste systemer. Du kan opdele disse i tre kategorier:

  1. Numerisk

  2. Dato og tid

  3. Snor

1. Numeriske typer

Disse er de mest almindelige numeriske typer:

  • HELTAL : Et helt tal uden et decimaltegn.

  • SMALLINT : En mindre række af hele tal

  • BIGINT : Et større udvalg af hele tal.

  • DECIMAL(p, s) eller NUMERISK(p, s) : For eksempel ville en decimal(5,2) passe til 123,45.

  • REAL : Et flydende decimaltal med en præcision på mindst 6 decimale cifre.

  • FLOAT(n) : Et flydende kommatal med en præcision på mindst n cifre.

2. Dato- og tidstyper

  • DATO : En datoværdi, typisk i formatet 'ÅÅÅÅ-MM-DD'.

  • TID : En tidsværdi, typisk i formatet 'TT:MM:SS'.

  • DATETIME eller TIMESTAMP : En kombination af dato- og tidsværdier.

3. Strengtyper

  • CHAR(n) : En streng med fast længde med n tegn.

  • VARCHAR(n) eller CHARACTER VARYING(n) : En streng med variabel længde.

  • TEKST : En streng med variabel længde med en maksimal længde bestemt af DBMS.

VÆLG erklæring

SQL-snydeark: Hurtig vejledning til essentielle kommandoer

SELECT-sætningen bruges til at hente data fra en eller flere tabeller. Du kan angive de kolonner, du vil hente, og fra hvilken tabel. En grundlæggende SELECT-sætning ser sådan ud:

SELECT column1, column2
FROM table;

For at hente alle poster fra kolonnerne 'navn' og 'country_id' fra 'by'-tabellen, ser din SQL-forespørgsel sådan ud:

SELECT name, country_id
FROM city;

HVOR klausul

SQL-snydeark: Hurtig vejledning til essentielle kommandoer

WHERE-sætningen giver dig mulighed for at filtrere resultaterne af en SELECT-sætning baseret på specifikke forhold.

SELECT column1, column2
FROM table
WHERE condition;

For at hente poster fra 'by'-tabellen, hvor 'befolkningen' er større end 1.000.000, ser din forespørgsel sådan ud:

SELECT name, population
FROM city
WHERE population > 1000000;

BESTIL EFTER Klausul

ORDER BY-sætningen giver dig mulighed for at sortere resultaterne af en SELECT-sætning efter en eller flere kolonner. Du kan sortere resultaterne i stigende (ASC) eller faldende (DESC) rækkefølge:

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

For at hente poster fra 'by'-tabellen sorteret efter 'befolkning' i faldende rækkefølge, ser din forespørgsel således ud:

SELECT name, population
FROM city
ORDER BY population DESC;

Sammenføjning af flere tabeller i SQL

SQL-snydeark: Hurtig vejledning til essentielle kommandoer

Der er fire almindeligt anvendte joins i SQL:

  1. INDRE JOIN

  2. VENSTRE JOIN

  3. HØJRE JOIN

  4. FULDT TILMELD

1. INDRE JOIN

En INNER JOIN henter poster, der har matchende værdier i begge tabeller.

Lad os tage et eksempel på en database med kunstnere og album, og du vil gerne finde alle kombinationer af kunstner og album. 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 rækkerne med matchende værdier i de angivne felter blive returneret i resultaterne.

2. VENSTRE JOIN

EN LEFT JOIN er også kendt som en LEFT OUTER JOIN. Det returnerer alle poster fra den venstre tabel og de matchede poster fra den højre tabel. Hvis der ikke er nogen match i den højre tabel, vil resultatet indeholde NULL-værdier.

For at få en liste over alle kunstnere og deres respektive album (hvis de har nogen), kan du f.eks. bruge en LEFT JOIN:

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

Denne forespørgsel returnerer alle kunstnere, selvom de ikke har nogen album knyttet til dem i albumtabellen.

3. RIGTIG JOIN

EN RIGHT OUTER JOIN er også kendt som en RIGHT OUTER JOIN. Det returnerer alle poster fra den højre tabel og de matchede poster fra den venstre tabel. Hvis der ikke er nogen match i den venstre tabel, vil resultatet indeholde NULL-værdier.

For at få oplysninger om alle albums og deres tilknyttede kunstnere (hvis de findes), vil du f.eks. bruge en RIGHT JOIN:

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

Denne forespørgsel returnerer alle album, selvom de ikke har tilknyttede kunstnere i kunstnertabellen.

4. FULDSTILLING

EN FULD JOIN er også kendt som en FULD YDRE JOIN. Den kombinerer resultaterne af både LEFT og RIGHT joins. Med andre ord returnerer den alle rækker fra venstre og højre tabel og udfylder de manglende værdier med NULL, når der ikke er nogen match.

Her er et eksempel ved hjælp af kunstner- og albumtabellerne:

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

Denne forespørgsel returnerer alle rækker fra begge tabeller og udfylder NULL, hvor der ikke er nogen match i nogen af ​​tabellerne.

SQL samlede funktioner

Aggregerede funktioner bruges til at beregne et enkelt resultat ud fra et sæt inputværdier. De kaldes "samlet", fordi de tager flere input og returnerer et enkelt output. De mest almindelige er:

  1. TÆLLE

  2. SUM

  3. AVG

  4. MAKS

  5. MIN

1. COUNT-funktion

Funktionen COUNT giver dig mulighed for at tælle antallet af rækker i et forespørgselsresultat. Du kan bruge denne aggregerede funktion til at bestemme det samlede antal poster i en tabel eller antallet af poster, der matcher specifikke kriterier.

Her er et eksempel:

SELECT COUNT(*) FROM employees;

Denne forespørgsel vil returnere det samlede antal medarbejdere i tabellen 'medarbejdere'. Husk, at tilføjelse af en WHERE-klausul kan forfine dine resultater:

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

2. SUM Funktion

SUM-funktionen beregner den samlede sum af en numerisk kolonne. Det er nyttigt, når du skal beregne den samlede værdi af et bestemt numerisk felt. For eksempel returnerer denne forespørgsel den samlede sum af alle ansattes lønninger:

SELECT SUM(salary) FROM employees;

3. AVG-funktion

AVG-funktionen beregner gennemsnitsværdien af ​​en numerisk kolonne. Denne funktion er nyttig, når du vil finde gennemsnittet af et bestemt numerisk felt. For eksempel returnerer denne forespørgsel gennemsnitslønnen for alle ansatte:

SELECT AVG(salary) FROM employees;

4. MAX Funktion

MAX-funktionen finder den maksimale værdi af en kolonne. Dette bruges ofte til at finde den højeste værdi i et numerisk felt eller den seneste dato i et datetime-felt. For eksempel returnerer denne forespørgsel den højeste løn:

SELECT MAX(salary) FROM employees;

5. MIN funktion

Endelig hjælper MIN-funktionen dig med at finde minimumsværdien af ​​en kolonne. For eksempel returnerer denne forespørgsel den laveste løn:

SELECT MIN(salary) FROM employees;

Husk, du kan bruge WHERE-sætninger i disse forespørgsler og JOIN med flere tabeller.

Almindelige strengfunktioner

SQL-snydeark: Hurtig vejledning til essentielle kommandoer

Her er de mest almindelige strengfunktioner, der findes i de fleste SQL-dialekter (den nøjagtige syntaks kan variere):

  1. LEN eller LENGTH(streng) : Returnerer længden af ​​en streng.

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

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

  4. SUBSTR eller SUBSTRING(streng, start, længde) : Udtrækker en del fra en streng.

  5. TRIM(streng) : Fjerner førende og efterfølgende mellemrum fra en streng.

  6. LTRIM(streng) : Fjerner indledende mellemrum fra en streng.

  7. RTRIM(streng) : Fjerner efterfølgende mellemrum fra en streng.

Almindelige numeriske funktioner

SQL-snydeark: Hurtig vejledning til essentielle kommandoer

Her er de mest almindelige numeriske funktioner, der findes i de fleste SQL-dialekter (den nøjagtige syntaks kan variere):

  1. ABS(tal) : Returnerer den absolutte værdi af et tal.

  2. ROUND(tal; decimalpladser) : Afrunder et tal til et bestemt antal decimaler.

  3. FLOOR(tal) : Runder tallet ned til nærmeste heltal.

  4. CEIL eller CEILING(tal) : Runder tallet op til nærmeste heltal.

  5. RAND() : Returnerer en tilfældig flydende værdi fra 0 til 1.

  6. MOD(n, m) : Returnerer resten af ​​n divideret med m.

  7. POWER(base, eksponent) : Hæver et tal til potensen af ​​et andet tal.

  8. LOG(tal) : Returnerer den naturlige logaritme af et tal.

Fælles datofunktioner

SQL-snydeark: Hurtig vejledning til essentielle kommandoer

Her er de mest almindelige datofunktioner, der findes i de fleste SQL-dialekter (den nøjagtige syntaks kan variere):

  1. NOW() : Returnerer den aktuelle dato og klokkeslæt.

  2. DATO(datotid) : Udtrækker datodelen af ​​et dato- eller datotidsudtryk.

  3. TIME(datetime) : Udtrækker tidsdelen af ​​et dato- eller datetime-udtryk.

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

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

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

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

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

  9. SEKUND(tid): Returnerer den anden del fra et tidspunkt.

GRUPPER VED OG HAVE

SQL-snydeark: Hurtig vejledning til essentielle kommandoer

When working with SQL queries, you may want to further summarize and filter your aggregated data. The GROUP BY and HAVING clauses provide this functionality.

1. Group By Clause

The GROUP BY clause allows you to group rows that share the same values in specified columns. It is commonly used with aggregate functions. This is the syntax:

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

For example, if you want to calculate the total sales amount for each product category, this is the query:

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

TIP: Combining GROUP BY and COUNT is a good way of finding duplicate values.

2. Having Clause

If you want to filter the aggregated results further, you can use the HAVING clause. The syntax is:

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

If you want to find product categories with total sales of more than $1,000,000, you would write:

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

Quick Tips

  • Always use the GROUP BY clause before the HAVING clause.

  • The SELECT statement can only contain specified column names, aggregate functions, constants, and expressions.

  • When using the HAVING clause, filter conditions should be applied to the aggregate functions rather than directly to the grouped columns.

By understanding and properly applying the GROUP BY and HAVING clauses, you can better organize and analyze your data using SQL.

Subqueries

SQL-snydeark: Hurtig vejledning til essentielle kommandoer

A subquery is also known as an inner or nested query. This is a query embedded within another SQL statement (such as a SELECT statement) or even inside another subquery.

Subqueries allow you to retrieve data based on the output of another query. The most common operators used with subqueries are:

  1. IN

  2. EXISTS

  3. ANY

  4. ALL

1. IN Operator

The IN operator tests if a value is within a set of values generated by the inner query. The syntax for using the IN operator with a subquery is as follows:

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

This returns rows from the outer query where the specified column value matches any of the values provided by the subquery.

Suppose you have an employee table and a departments table. You want to find employees who work in departments based at the head office. Here is a sample query

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

For a more in-depth look, check out our article on the syntax.

2. EXISTS Operator

The EXISTS operator checks if there is at least one row resulting from the subquery. You can use the EXISTS operator to filter rows based on the existence of related data in another table. This is the syntax:

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

When the subquery returns at least one row, the EXISTS operator returns true, and the relevant rows from the outer query are included in the result.

3. ANY Operator

The ANY operator is used to compare a value to any value in a set of values provided by a subquery. It’s commonly used with comparison operators like =, <, >, <=, or >=.

This is the syntax:

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

This will return rows from the outer query where the specified column value meets the condition against any value from the subquery.

4. ALL Operator

The ALL operator compares a value to all values within a set of values provided by a subquery. The conditions must be true for every value in the subquery’s result. This is the syntax:

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

This returns rows from the outer query only if the specified column value satisfies the condition against all values in the subquery’s output.

Data Manipulation (DML)

SQL-snydeark: Hurtig vejledning til essentielle 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;

Hvis du f.eks. vil slette en bruger med id'et '1' fra tabellen 'brugere', vil din forespørgsel se sådan ud:

DELETE FROM users
WHERE id = 1;

TIP : medtag altid en WHERE-sætning for at angive, hvilke rækker der skal slettes, og for at undgå at slette alle rækkerne i tabellen.

Databasestyring med DDL

SQL-snydeark: Hurtig vejledning til essentielle kommandoer

Data Definition Language (DDL) er SQL-undersproget, der bruges til at oprette og ændre tabeller og selve databasen. De mest almindelige DDL-udsagn er:

  1. SKAB

  2. ÆNDRE

  3. DRÅBE

1. OPRET erklæring

CREATE-sætningen giver dig mulighed for at oprette nye databaseobjekter, såsom nye tabeller, visninger eller indekser. Når du opretter en ny tabel, skal du definere kolonnerne, deres datatyper og eventuelle begrænsninger.

Her er et eksempel på oprettelse af en ordretabel:

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

TIP: Vælg passende datatyper og begrænsninger for at sikre dataintegritet i dine tabeller.

For et mere detaljeret kig, tjek vores artikel om.

2. ÆNDRING erklæring

ALTER-sætningen hjælper dig med at ændre eksisterende databaseobjekter. Almindelige anvendelser omfatter:

  • tilføje, ændre eller slette kolonner.

  • tilføje eller fjerne begrænsninger fra en eksisterende tabel.

  • tilføje primære og fremmede nøgler.

TILFØJ EN NY KOLONNE

ALTER TABLE users ADD COLUMN age INTEGER;

Rediger en kolonnes datatype

ALTER TABLE users ALTER COLUMN age TYPE FLOAT;

Slip en kolonne

ALTER TABLE users DROP COLUMN age;

Tilføj en unik begrænsning

ALTER TABLE users ADD CONSTRAINT users_email_unique UNIQUE(email);

Tilføj en fremmednøgle mellem tabeller

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

3. DROP-erklæring

DROP-sætningen giver dig mulighed for at fjerne databaseobjekter som tabeller, visninger eller indekser. Brug det med forsigtighed, da det vil permanent slette det angivne objekt og alle dets data.

Her er et eksempel:

DROP TABLE users;

TIP : Sørg for, at du har ordentlige sikkerhedskopier på plads, før du udfører en DROP-sætning.

Hvis du vil lære mere om datamodellering, så tjek denne video:

Transaktioner

Transaktioner spiller en afgørende rolle i at opretholde databaseintegriteten , især når flere relaterede operationer udføres samtidigt. Der er tre grundlæggende operationer i håndtering af transaktioner:

  1. BEGYNDE

  2. BEGÅ

  3. TILBAGE

1. BEGYND

BEGIN-sætningen angiver begyndelsen af ​​en transaktion. Når du udfører denne kommando, etablerer du et udgangspunkt for dit sæt SQL-sætninger.

BEGIN;

2. FORBINDE

For at færdiggøre dine ændringer og fastholde dem i databasen, skal du bruge COMMIT-erklæringen. Dette sikrer, at alle operationer i transaktionen udføres med succes og permanent.

COMMIT;

Her er et eksempel på en fuld transaktion ved hjælp af det klassiske eksempel på overførsel af penge mellem konti:

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

3. TILBAGE

SQL-snydeark: Hurtig vejledning til essentielle kommandoer

Når du arbejder med transaktioner, er det også vigtigt at vide, hvordan du fortryder ændringer, når der opstår en fejl. ROLLBACK-sætningen tilbagefører alle ændringer, der er foretaget siden starten af ​​transaktionen:

ROLLBACK;

Her er et eksempel på en transaktion med fejlhåndtering ved brug af 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;

Afsluttende tanker

Som du har set i dette SQL-snydeark, tilbyder SQL et væld af kommandoer og funktioner, der giver dig mulighed for at oprette, manipulere og forespørge data i en relationel database.

Fra de grundlæggende kommandoer som SELECT, INSERT, UPDATE og DELETE, til de mere komplekse konstruktioner som JOINs og underforespørgsler, til de samlede funktioner, vi har dækket, giver SQL fleksibiliteten til at håndtere en bred vifte af dataopgaver.

Bliv ved med at vende tilbage til dette snydeark for at fremskynde din !


Pipe In R: Tilslutningsfunktioner med Dplyr

Pipe In R: Tilslutningsfunktioner med Dplyr

I denne øvelse lærer du, hvordan du kæder funktioner sammen ved hjælp af dplyr-røroperatoren i programmeringssproget R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX fra LuckyTemplates giver dig mulighed for at returnere rangeringen af ​​et specifikt tal i hver tabelrække, der udgør en del af en liste over tal.

Udpakning af LuckyTemplates-temaer og -billeder fra PBIX

Udpakning af LuckyTemplates-temaer og -billeder fra PBIX

Lær, hvordan du adskiller en PBIX-fil for at udtrække LuckyTemplates-temaer og -billeder fra baggrunden og bruge den til at oprette din rapport!

Excel Formler Snydeark: Mellemvejledning

Excel Formler Snydeark: Mellemvejledning

Excel Formler Snydeark: Mellemvejledning

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

Python i LuckyTemplates: Sådan installeres og konfigureres

Python i LuckyTemplates: Sådan installeres og konfigureres

Lær, hvordan du installerer programmeringssproget Python i LuckyTemplates, og hvordan du bruger dets værktøjer til at skrive koder og vise billeder.

Beregning af dynamiske fortjenestemargener – nem analyse af LuckyTemplates med DAX

Beregning af dynamiske fortjenestemargener – nem analyse af LuckyTemplates med DAX

Lær, hvordan du beregner dynamiske fortjenstmargener ved siden af ​​LuckyTemplates, og hvordan du kan få mere indsigt ved at grave dybere ned i resultaterne.

Sortering af datotabelkolonner i LuckyTemplates

Sortering af datotabelkolonner i LuckyTemplates

Lær, hvordan du sorterer felterne fra kolonner med udvidet datotabel korrekt. Dette er en god strategi at gøre for vanskelige felter.

Find dine topprodukter for hver region i LuckyTemplates ved hjælp af DAX

Find dine topprodukter for hver region i LuckyTemplates ved hjælp af DAX

I denne artikel gennemgår jeg, hvordan du kan finde dine topprodukter pr. region ved hjælp af DAX-beregninger i LuckyTemplates, herunder funktionerne TOPN og CALCUATE.

Junk Dimension: Hvad er det, og hvorfor det er alt andet end junk

Junk Dimension: Hvad er det, og hvorfor det er alt andet end junk

Lær, hvordan du bruger en uønsket dimension til flag med lav kardinalitet, som du ønsker at inkorporere i din datamodel på en effektiv måde.