Deze SQL-spiekbrief verzamelt de commando's die een professionele ontwikkelaar dagelijks gebruikt, gerangschikt per taak. Elke sectie combineert de exacte syntax met een eenvoudige beschrijving en behandelt onderwerpen zoals het aanmaken van databases, gegevenstypen, query's, filteren, joins en indexeren.
๏ธ Structuuropdrachten: Met CREATE DATABASE, CREATE TABLE, ALTER, RENAME en DROP kunnen het schema worden gedefinieerd en aangepast.
๐ข Gegevenstypen: Numerieke, tekst-, datum- en binaire gegevenstypen bepalen de opslaggrootte en het geldige bereik van elke kolom.
๐ Ophaalopdrachten: SELECT met WHERE, IN, LIKE en REGEXP beperkt de resultaten tot de rijen die ertoe doen.
โ๏ธ Wijzigingsopdrachten: INSERT, UPDATE en DELETE wijzigen opgeslagen rijen en accepteren elk een optionele voorwaarde.
๐ Aggregatieopdrachten: GROUP BY met COUNT, MIN, MAX, SUM en AVG vat de gegevens samen en HAVING filtert de groepen.
๐ Combinatiecommando's: JOIN voegt tabellen naast elkaar samen, terwijl UNION de resultaten van twee query's stapelt.
Elke SQL-sessie begint met een database en minstens รฉรฉn tabel om de rijen in op te slaan.
commando
Beschrijving
CREATE DATABASE database1;
Maak een database
CREATE DATABASE IF NOT EXISTS database1;
Met IF NOT EXISTS kunt u instructies geven MySQL De server controleert of er al een database met een vergelijkbare naam bestaat voordat de database wordt aangemaakt.
CREATE DATABASE IF NOT EXISTS database1 CHARACTER SET latin1 COLLATE latin1_swedish_ci;
De latin1-tekenset gebruikt de latin1_swedish_ci-sortering, wat de Zweedse sortering zonder rekening te houden met hoofdletters en kleine letters is.
SHOW DATABASES;
Je kunt een lijst met bestaande databases bekijken door dit SQL-commando uit te voeren.
Het gegevenstype van een kolom bepaalt wat erin kan worden opgeslagen en hoeveel ruimte elke rij in beslag neemt.
Numerieke gegevenstypen
commando
Beschrijving
TINYINT( )
-128 tot 127 normaal, 0 tot 255 ONGETEKEND.
SMALLINT( )
-32768 tot 32767 normaal
0 tot 65535 NIET ONDERTEKEND.
MEDIUMINT( )
-8388608 tot 8388607 normaal
0 tot 16777215 NIET ONDERTEKEND.
INT( )
-2147483648 tot 2147483647 normaal
0 tot 4294967295 NIET ONDERTEKEND.
BIGINT( )
-9223372036854775808 tot 9223372036854775807 normaal
0 tot 18446744073709551615 NIET ONDERTEKEND.
FLOAT
Een klein getal bij benadering met een zwevende komma.
DOUBLE( , )
Een groot, bij benadering getal met een zwevende komma.
DECIMAL( , )
Een exact vastkommagetal. De voorkeurmethode voor het opslaan van valutawaarden.
Typen tekstgegevens
commando
Beschrijving
CHAR( )
Een gedeelte met een vaste lengte van 0 tot 255 tekens.
VARCHAR( )
Een sectie met variabele lengte, van 0 tot 65535 tekens.
TINYTEXT
Een tekenreeks met een maximale lengte van 255 tekens.
TEXT
Een tekenreeks met een maximale lengte van 65535 tekens.
BLOB
Binaire gegevens met een maximale lengte van 65535 bytes.
MEDIUMTEXT
Een tekenreeks met een maximale lengte van 16777215 tekens.
MEDIUMBLOB
Binaire gegevens met een maximale lengte van 16777215 bytes.
LONGTEXT
Een tekenreeks met een maximale lengte van 4294967295 tekens.
LONGBLOB
Binaire gegevens met een maximale lengte van 4294967295 bytes.
Datum-/tijdgegevenstypen
commando
Beschrijving
DATE
YYYY-MM-DD
DATETIME
JJJJ-MM-DD UU:MM:SS
TIMESTAMP
YJJJ-MM-DD HH:MM:SS, opgeslagen in UTC en geconverteerd naar de tijdzone van de sessie.
TIME
HH: MM: SS
Andere gegevenstypen
commando
Beschrijving
ENUM
Om รฉรฉn tekstwaarde op te slaan, gekozen uit een lijst met vooraf gedefinieerde tekstwaarden.
SET
Dit wordt ook gebruikt voor het opslaan van tekstwaarden die zijn gekozen uit een lijst met vooraf gedefinieerde tekstwaarden. Het kan meerdere waarden bevatten.
BOOL
Synoniem voor TINYINT(1), gebruikt om Booleaanse waarden op te slaan.
BINARY
Vergelijkbaar met CHAR; het verschil is dat tekst in binaire vorm wordt opgeslagen.
VARBINARY
Vergelijkbaar met VARCHAR; het verschil is dat de tekst in binaire vorm wordt opgeslagen.
UPDATE table_name SET column_name = new_value [WHERE condition];
De syntaxis van de updateopdracht
ORDER BY in SQL: DESC & ASC-opdracht
commando
Beschrijving
SELECT statement... [WHERE condition | GROUP BY field_name(s) HAVING condition] ORDER BY field_name(s) [ASC | DESC];
Basissyntaxis van de ORDER BY-clausule
SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC | DESC [LIMIT N];
DESC- en ASC-syntaxis
SQL GROUP BY en HAVING-clausuleopdracht
GROEP DOOR Het voegt rijen samen tot groepen, en HAVING filtert die groepen nadat ze zijn gevormd.
Groeperen op
commando
Beschrijving
SELECT statements... GROUP BY column_name1[, column_name2, ...] [HAVING condition];
GROUP BY-syntaxis
Grouping en aggregatiefuncties
commando
Beschrijving
SELECT t2, COUNT(t1) FROM table1 GROUP BY t2;
Stel dat we het totale aantal t2-kolomwaarden in onze database willen hebben.
HAVING-clausule
commando
Beschrijving
SELECT * FROM table2 GROUP BY t1_id, t4 HAVING t1_id = x1;
Retourneert alle t4-waarden voor de rijen in tabel2 waarvan de t1_id gelijk is aan x1.
SQL-jokertekens voor Like, NOT Like, Escape, ( % ), ( _ )
Met jokertekens kunnen LIKE-tekens overeenkomen met gedeeltelijke tekenreeksen.
% het procentteken-jokerteken in MySQL
commando
Beschrijving
SELECT statements... WHERE fieldname LIKE 'xxx%';
Basissyntaxis voor het procentteken %, dat overeenkomt met een willekeurig aantal tekens.
_ onderstrepen jokertekenopdracht
commando
Beschrijving
SELECT * FROM table1 WHERE t3 LIKE 'x2_';
De underscore komt overeen met precies รฉรฉn teken.
NIET zoals een wildcard-opdracht
commando
Beschrijving
SELECT * FROM table1 WHERE t3 NOT LIKE 'x2_';
Stel dat we de rijen uit tabel1 willen waarvan de waarde van t3 niet overeenkomt met het patroon.
Escape-opdracht voor trefwoord-jokerteken
commando
Beschrijving
LIKE '67#%' ESCAPE '#';
Controleert op de letterlijke tekenreeks "67%", omdat # het jokerteken ontsnapt.
Reguliere SQL-expressies (REGEXP)
commando
Beschrijving
SELECT statements... WHERE fieldname REGEXP 'pattern';
Basissyntaxis van een reguliere expressie-match
Reguliere expressie-metatekens
commando
Beschrijving
*
Het metateken asterisk (*) komt overeen met nul of meer instanties van de tekenreeks die eraan voorafgaat.
+
Het plusteken (+) komt overeen met een of meer instanties van de tekenreeks die eraan voorafgaat.
?
Het metateken vraagteken (?) komt overeen met nul of รฉรฉn instantie van de tekenreeks die eraan voorafgaat.
.
Het metateken punt (.) komt overeen met elk afzonderlijk teken, behalve een nieuwe regel.
[abc]
De charlist [abc] komt overeen met elk van de ingesloten tekens.
[^abc]
De charlist [^abc] komt overeen met elk teken, behalve de tekens die tussen haakjes staan.
[A-Z]
Het [AZ]-bereik komt overeen met elke hoofdletter.
[a-z]
Het bereik [az] komt overeen met elke kleine letter.
[0-9]
Het bereik [0-9] komt overeen met elk cijfer van 0 tot en met 9.
^
Het dakje (^) verankert de wedstrijd aan het begin.
|
De verticale streep (|) isoleert alternatieven.
[[:<:]]
Het [[:<:]]-teken komt overeen met het begin van woorden.
[[:>:]]
De markering [[:>:]] komt overeen met het einde van woorden.
[:class:]
De markering [:class:] komt overeen met een tekenklasse, bijvoorbeeld [:alpha:] voor letters, [:space:] voor spaties, [:punct:] voor leestekens en [:upper:] voor hoofdletters.
SQL Functions-opdrachten
String-functies
commando
Beschrijving
SELECT t1_id, t2, UCASE(t2) FROM table1;
De UCASE-functie neemt een tekenreeks als parameter en zet alle letters om in hoofdletters.
Numerieke functies
commando
Beschrijving
Voorbeeld
DIV
Integer indeling
SELECT 23 DIV 6;
/
afdeling
SELECT 23 / 6;
-
Subtractie
SELECT 23 - 6;
+
Toevoeging
SELECT 23 + 6;
*
Vermenigvuldiging
SELECT 23 * 6 AS multiplication_result;
% or MOD
modulus
SELECT 23 % 6; or SELECT 23 MOD 6;
FLOOR
Verwijdert de decimalen uit een getal en rondt het af naar het dichtstbijzijnde hele getal.
SELECT FLOOR(23 / 6) AS floor_result;
ROUND
Rondt een getal met decimalen af โโnaar het dichtstbijzijnde hele getal.
SELECT ROUND(23 / 6) AS round_result;
Opgeslagen functies
commando
Beschrijving
CREATE FUNCTION sf_name ([parameter(s)])
Verplicht. Vertelt MySQL De server maakt een functie aan met de naam sf_name, waarbij de optionele parameters tussen haakjes zijn gedefinieerd.
RETURNS data type
Verplicht. Specificeert het gegevenstype dat de functie retourneert.
DETERMINISTIC
De functie retourneert dezelfde waarde wanneer dezelfde argumenten eraan worden doorgegeven.
STATEMENTS
De procedurecode die de functie uitvoert.
SQL Aggregate-functieopdrachten
commando
Beschrijving
SELECT COUNT(t1_id) FROM table1 WHERE t1_id = 2;
AANTAL functie
SELECT MIN(t3) FROM table2;
MIN-functie
SELECT MAX(t3) FROM table2;
MAX-functie
SELECT SUM(t4) FROM table3;
SOM-functie
SELECT AVG(t4) FROM table3;
AVG functie
SQL IS NULL & IS NOT NULL-opdrachten
A NULL is een ontbrekende waarde, dus moet deze worden getest met IS NULL in plaats van de gelijkheidsoperator.
commando
Beschrijving
SELECT COUNT(t3) FROM table1;
COUNT negeert NULL-waarden in de kolom.
CREATE TABLE table2(
t1_number int NOT NULL,
t2_names varchar(255),
t3 varchar(6)
);
Deze commando's wijzigen een tabel die al gegevens bevat.
commando
Beschrijving
ALTER TABLE table_name ADD COLUMN column_name data_type;
ALTER-syntaxis
DROP TABLE sample_table;
DROP TABLE-syntaxis
RENAME TABLE current_table_name TO new_table_name;
Syntaxis van het RENAME-commando
ALTER TABLE table1 CHANGE COLUMN t1_names t1name char(250) NOT NULL;
WIJZIG trefwoord
ALTER TABLE table1 MODIFY t1name char(50) NOT NULL;
MODIFY-trefwoord
ALTER TABLE table1 ADD t4 date NULL AFTER t3;
NA trefwoord
SQL-LIMIET & OFFSET
commando
Beschrijving
SELECT {fieldname(s) | *} FROM tableName(s) [WHERE condition] LIMIT N;
LIMIT-sleutelwoordsyntaxis
SELECT * FROM table1 LIMIT 1, 2;
Offset in de LIMIT-query: sla 1 rij over en retourneer vervolgens 2.
SQL SubQuery-opdrachten
commando
Beschrijving
SELECT t1_name FROM table1 WHERE category_id = (SELECT MIN(t1_id) FROM table2);
Subquery's
SQL JOINS-opdrachten
DOET MEE Combineer kolommen uit twee tabellen tot รฉรฉn resultaatset.
commando
Beschrijving
SELECT * FROM table1 CROSS JOIN table2;
Kruis JOIN
SELECT table1.t1, table1.t2, table2.t1
FROM table1, table2
WHERE table2.id = table1.table2_id;
INNER JOIN
SELECT A.t1, B.t2, B.t3
FROM table2 AS A
LEFT JOIN table1 AS B
ON B.table2_id = A.id;
Links aansluiten
SELECT A.t1, A.t2, B.t3
FROM table1 AS A
RIGHT JOIN table2 AS B
ON B.id = A.table2_id;
RECHTS AANMELDEN
SELECT A.t1, B.t2, B.t3
FROM table2 AS A
LEFT JOIN table1 AS B
USING (table2_id);
โONโ- en โUSINGโ-clausules
SQL UNION-opdrachten
Een UNION-bewerking stapelt de rijen van twee query's op elkaar, terwijl een JOIN-bewerking ze uitbreidt tot meer kolommen.
commando
Beschrijving
SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2;
UNION-syntaxis. Dubbele rijen worden verwijderd.
SELECT column1, column2 FROM table1
UNION ALL
SELECT column1, column2 FROM table2;
UNION ALL behoudt dubbele rijen.
SQL in Views-opdrachten
Weergaves Sla een query op onder een naam, zodat deze net als een tabel hergebruikt kan worden.
commando
Beschrijving
CREATE VIEW view_name AS SELECT statement;
Syntaxis van weergaven
DROP VIEW general_v_movie_rentals;
Valping .
SQL Index-opdrachten
Een index is een opzoekstructuur die zoekopdrachten in een kolom aanzienlijk versnelt.
commando
Beschrijving
CREATE INDEX id_index ON table_name(column_name);
Voeg de basissyntaxis van de index toe
DROP INDEX index_id ON table_name;
Basissyntaxis van de index verwijderen
Veelgestelde vragen
Nee. Trefwoorden zoals SELECT en WHERE werken in alle gevallen. Hoofdletters zijn een conventie om commando's van identificatoren te scheiden. Tabelnamen kunnen echter wel hoofdlettergevoelig zijn op Linux.
DELETE verwijdert geselecteerde rijen en kan ongedaan worden gemaakt. TRUNCATE maakt de hele tabel snel leeg en reset AUTO_INCREMENT. DROP verwijdert de tabeldefinitie zelf.
FROM en JOIN worden eerst uitgevoerd, daarna WHERE, GROUP BY, HAVING, SELECT, ORDER BY en tot slot LIMIT. Dit is de reden waarom een โโkolomalias die in SELECT is gedefinieerd, niet binnen WHERE kan worden gebruikt.
Ja. Tekst-naar-SQL-assistenten vertalen een vraag naar een query met behulp van het tabelschema. Lees altijd de gegenereerde WHERE- en JOIN-voorwaarden, want een plausibele query kan onjuiste rijen retourneren.
Ja. RevHet bekijken van AI-output, het optimaliseren van trage query's en het lezen van een uitvoeringsplan vereisen allemaal een vloeiende beheersing van de commando's. Een naslagwerk versnelt het ophalen van informatie; het vervangt echter niet het begrip ervan.
Vat dit bericht samen met:
Blijf op de hoogte van AIKrijgen Wekelijkse AI Vaardigheden, trends, bruikbaar advies.
Schrijf je in voor de nieuwsbrief
Je bent met succes geabboneerd. Controleer uw inbox.