MariaDB Selvstudium: Lær syntaks, kommandoer med eksempler

Hvad er MariaDB?

MariaDB er en gaffel af MySQL databasestyringssystem. Det er skabt af dets oprindelige udviklere. Dette DBMS-værktøj tilbyder databehandlingsfunktioner til både små og virksomhedsopgaver.

MariaDB er en forbedret version af MySQL. Den kommer med adskillige indbyggede kraftfulde funktioner og mange brugervenligheder, sikkerhed og ydeevneforbedringer, som du ikke kan finde i MySQL.

Her er funktionerne ved MariaDB:

  • Det fungerer under GPL-, BSD- eller LGPL-licenser.
  • MariaDB understøtter et populært og standard forespørgselssprog.
  • Den leveres med mange lagringsmotorer, inklusive de højtydende, der kan integreres med andre relationelle databasestyringssystemer.
  • Det giver Galera-klyngeteknologien.
  • MariaDB understøtter PHP, et populært sprog til webudvikling.
  • MariaDB kan køre på forskellige operativsystemer, og det understøtter adskillige programmeringssprog.
  • MariaDB leveres med yderligere kommandoer, som ikke er tilgængelige i MySQL. MySQL har funktioner, som har en negativ indvirkning på DBMS'ens ydeevne. Sådanne funktioner er blevet erstattet i MariaDB.

MariaDB vs MySQL

Nedenfor er nogle vigtige forskelle mellem MariaDB vs MySQL

Parameter MariaDB MySQL
Flere muligheder for lagermotorer MariaDB har 12 nye lagermotorer, som du ikke finder i MySQL. Den har færre muligheder for opbevaring i forhold til MariaDB.
Hastighedsforbedringer MariaDB viser en forbedret hastighed i forhold til MySQL. Den kommer med adskillige funktioner til at optimere hastigheden. Sådanne funktioner omfatter afledte visninger/tabeller, underforespørgsel, udførelseskontrol, diskadgang og optimeringskontrol. MySQL udviser en langsommere hastighed sammenlignet med MariaDB. Den er kun afhængig af nogle få funktioner til hastighedsoptimering, for eksempel hash-indekser.
Hurtigere cache/indekser Med Memory storage-motoren af MariaDB, kan en INSERT-sætning udfyldes 24 % end i standarden MySQL. Hukommelseslagringsmotoren til MySQL er langsommere i forhold til det MariaDB.
Større og hurtigere forbindelsespool MariaDB leveres med en avanceret trådpool, der er i stand til at køre hurtigere og understøtter op til 200,000+ forbindelser. Trådpuljen leveret af MySQL kan ikke understøtte op til 200,000 forbindelser pr. gang.
Forbedret replikering In MariaDB, kan replikering udføres sikrere og hurtigere. Opdateringer kan også gøres 2x hurtigere sammenlignet med den traditionelle MySQL. MySQL's community-udgave tillader et statisk antal tråde at blive forbundet. MySQL's virksomhedsplan kommer med trådfunktioner.
Nye funktioner/udvidelser MariaDB kommer med nye funktioner og udvidelser, herunder JSON-, WITH- og KILL-udsagn. Den nye MariaDB funktioner er ikke inkluderet i MySQL.
Manglende funktioner MariaDB mangler nogle af de funktioner, som leveres af MySQL enterprise udgave. For at løse dette tilbyder den alternative open source-plugins. Derfor, MariaDB brugere kan nyde de samme funktioner som MySQL Enterprise Edition-brugere. Enterprise-udgaven af MySQL bruger en proprietær kode. Kun brugere af MySQL Enterprise Edition har adgang til dette.

Sådan installeres MariaDB

Installer som en selvstændig applikation

For at kunne bruge MariaDB, skal du installere det på din computer.

Installationen kan udføres ved at følge nedenstående trin:

Trin 1) Åbn under URL
Download installationsfilen fra linket https://downloads.mariadb.org/

Trin 2) Double klik på filen for at starte installationen
Når overførslen er færdig, skal du åbne fil

Trin 3) Klik på knappen Næste
Klik på knappen Næste i vinduet, der dukker op:

Installation af MariaDB

Trin 4) Accepter licensaftalen
Klik derefter på knappen Næste:

Installation af MariaDB

Trin 5) Vælg MariaDB Server
Vælg de funktioner, der skal installeres, og klik på Næste

Installation af MariaDB

Trin 6) Indtast adgangskoden
I det næste vindue bliver du bedt om at ændre adgangskoden for root-brugeren.

  1. Indtast adgangskoden, og bekræft den ved at indtaste den samme adgangskode igen. Hvis du vil tillade adgang fra fjernmaskiner, skal du aktivere det nødvendige afkrydsningsfelt.
  2. Når du er færdig, skal du klikke på knappen Næste.

Installation af MariaDB

Trin 7) Indtast navn og vælg portnummer
I det næste vindue skal du skrive et navn til forekomsten, vælge portnummeret og angive den nødvendige størrelse. Klik på knappen Næste:

Installation af MariaDB

Trin 8) Klik på Næste
I det næste vindue skal du blot klikke på knappen Næste.

Trin 9) Klik på Installer
Start installationen ved at klikke på knappen Installer.

Installation af MariaDB

Trin 10) En statuslinje vises
En statuslinje, der viser installationens forløb, vises:

Installation af MariaDB

Trin 11) Klik på knappen Afslut
Når installationen er fuldført, vil du se knappen Udfør. Klik på knappen for at lukke vinduet:

Installation af MariaDB

Trin 12) Tillykke!
Det har du nu MariaDB installeret på din computer.

Arbejde med kommandoprompt

Nu har du det MariaDB installeret på din computer, er det tid for dig at starte den og begynde at bruge den. Dette kan gøres via MariaDB kommandoprompt.

Følg trinene nedenfor:

Trin 1) Klik på Start, vælg Alle programmer og klik derefter MariaDB...

Trin 2) Vælg et MariaDB Kommandoprompt.

MariaDB Kommandoprompt

Trin 3) MariaDB kommandoprompt vil blive startet. Det er nu tid til at logge ind. Du skal logge ind som root-bruger og den adgangskode, som du indstillede under installationen af MariaDB. Skriv følgende kommando på kommandoprompten:

MySQL -u root -p

Trin 4) Indtast adgangskoden og tryk på returtasten. Du skal være logget ind, som vist nedenfor:

MariaDB Kommandoprompt

Du er nu logget ind MariaDB.

Datatyper

MariaDB understøtter følgende datatyper:

  • Strengdatatyper
  • Numeriske datatyper
  • Dato/tid datatyper
  • Store objektdatatyper

Strengdatatyper

Disse inkluderer følgende:

Streng datatype Description
char (størrelse) Størrelsen angiver antallet af tegn, der skal gemmes. Den gemmer maksimalt 255 tegn. Fast længde strenge.
varchar (størrelse) Størrelsen angiver antallet af tegn, der skal gemmes. Den gemmer maksimalt 255 tegn. Variabel længde strenge.
tekst(størrelse) Størrelsen angiver antallet af tegn, der skal gemmes. Den gemmer maksimalt 255 tegn. Fast længde strenge.
binær (størrelse) Størrelsen angiver antallet af tegn, der skal gemmes. Den gemmer maksimalt 255 tegn. Snore i fast størrelse.

Numeriske datatyper

De omfatter følgende:

Numeriske datatyper Description
bit En meget lille heltalsværdi svarende til tinyint(1). Fortegnsværdier ligger mellem -128 og 127. Værdier uden fortegn varierer mellem 0 og 255.
int(m) En standard heltalsværdi. Signerede værdier ligger mellem -2147483648 og 2147483647. Ikke-signerede værdier ligger mellem 0 og 4294967295.
flyde(m, d) Et flydende kommatal med enkelt præcision.
dobbelt(m,d) Et flydende kommatal med dobbelt præcision.
flyde(p) Et flydende decimaltal.

Dato/klokkeslæt Datatyper

Disse inkluderer følgende:

Dato/klokkeslæt Datatype Description
Dato Vises i formen 'åååå-mm-dd.' Værdierne går mellem '1000-01-01' og '9999-12-31'.
Dato tid Vises i formen 'åååå-mm-dd tt:mm:ss'. Værdierne går mellem '1000-01-01 00:00:00' og '9999-12-31 23:59:59'.
tidsstempel (m) Vises i formen 'åååå-mm-dd tt:mm:ss'. Værdier varierer mellem '1970-01-01 00:00:01' utc og '2038-01-19 03:14:07' utc.
Tid Vises i formen 'tt:mm:ss'. Værdier varierer mellem '-838:59:59' og '838:59:59'.

Store objektdatatyper (LOB)

De omfatter følgende:

Stort objekt Datatype Description
lille klat Dens maksimale størrelse er 255 bytes.
klat (størrelse) Tager 65,535 bytes som maksimal størrelse.
mediumblob Dens maksimale størrelse er 16,777,215 bytes.
lang tekst Det tager 4 GB som den maksimale størrelse.

Opret en database og tabeller

For at oprette en ny database i MariaDB, bør du have særlige privilegier, som kun gives til root-brugeren og administratorerne.

For at oprette en ny database, skal du bruge kommandoen CREATE DATABASE, som tager følgende syntaks:

CREATE DATABASE DatabaseName;

I dette tilfælde skal du oprette en database og give den navnet Demo.

Start MariaDB kommandoprompt og log på som root-bruger ved at skrive følgende kommando:

mysql -u root -p

Indtast root-adgangskoden og tryk på returtasten. Du bliver logget ind.

Kør nu følgende kommando:

CREATE DATABASE Demo;

Opret en database og tabeller i MariaDB

Du har derefter oprettet en database ved navn Demo. Det vil være godt for dig at bekræfte, om databasen blev oprettet med succes eller ej. Du skal kun vise listen over de tilgængelige databaser ved at køre følgende kommando:

SHOW DATABASES;

Opret en database og tabeller i MariaDB

Ovenstående output viser, at Demo-databasen er en del af listen, hvorfor databasen blev oprettet med succes.

MariaDB Vælg Database

For at du kan bruge eller arbejde på en bestemt database, skal du vælge den fra listen over tilgængelige databaser. Når du har valgt en database, kan du udføre opgaver såsom oprettelse af tabeller i databasen.

For at vælge en database skal du bruge kommandoen USE. Det tager syntaksen nedenfor:

USE database_name;

Du skal bruge Demo-databasen. Du kan vælge det ved at køre følgende kommando:

USE Demo;

Opret en database og tabeller i MariaDB

Ovenstående billede viser, at MariaDB kommandoprompten er ændret fra ingen til navnet på den database, der er blevet valgt.

Du kan nu gå videre og oprette tabeller i Demo-databasen.

MariaDB – Opret tabel

For at du kan oprette en tabel, skal du have valgt en database. Tabellen kan oprettes ved hjælp af CREATE TABLE-sætningen. Her er syntaksen for kommandoen:

CREATE TABLE tableName (columnName columnType);

Du kan indstille en af ​​kolonnerne til at være den primære nøgle. Denne kolonne bør ikke tillade nulværdier.

Vi vil oprette to tabeller i demodatabasen, bog- og pristabellerne. Hver tabel vil have to kolonner.

Lad os begynde med at oprette bogtabellen med to kolonner, id og navn. Kør følgende kommando:

CREATE TABLE Book(  
id INT NOT NULL AUTO_INCREMENT,  
name VARCHAR(100) NOT NULL,  
PRIMARY KEY (id));  

Opret en database og tabeller i MariaDB

PRIMARY KEY-begrænsningen er blevet brugt til at indstille id-kolonnen som den primære nøgle for tabellen. Egenskaben AUTO_INCREMENT vil automatisk øge værdierne af id-kolonnen med 1 for hver ny post, der indsættes i tabellen. Alle kolonnerne tillader ikke null-værdier.

Opret nu den anden tabel, Pristabellen:

CREATE TABLE Price(  
id INT NOT NULL AUTO_INCREMENT,  
price float NOT NULL,  
PRIMARY KEY (id));  

Opret en database og tabeller i MariaDB

Id-kolonnen er indstillet som den primære nøgle til tabellen.

Viser tabeller

Nu hvor du har oprettet de to tabeller, vil det være godt for dig at tilpasse dig, om tabellerne blev oprettet med succes eller ej. Du kan vise listen over tabeller indeholdt i en database ved at køre følgende kommando:

SHOW TABLES;

Opret en database og tabeller i MariaDB

Ovenstående skærmbillede viser, at de to tabeller blev oprettet med succes i Demo-databasen.

Viser tabelstruktur

For at se strukturen af ​​en bestemt tabel, kan du bruge kommandoen DESCRIBE, almindeligvis forkortet som DESC. Det tager følgende syntaks:

DESC TableName;

For at se strukturen af ​​tabellen med navnet Bog kan du for eksempel køre følgende kommando;

DESC Book;

Opret en database og tabeller i MariaDB

Tabellen har to kolonner. For at se strukturen i pristabellen kan du køre følgende kommando:

DESC Price;

Opret en database og tabeller i MariaDB

CRUD og klausuler

INSERT

For at indsætte data i en MariaDB tabel, skal du bruge INSERT INTO-sætningen. Denne kommando tager syntaksen nedenfor:

INSERT INTO tableName
(column_1, column_2, ... )  
VALUES  
(value1, value2, ... ),  
(value1, value2, ... ),  
...;   

Ovenstående syntaks viser, at du skal angive de tabelkolonner, du vil indsætte data i, samt de data, du skal indsætte.

Lad os indsætte en post i bogtabellen:

INSERT INTO book  
(id, name)  
VALUES(1, 'MariaDB Book');  

CRUD og klausuler-INDSÆT

Du har indsat en enkelt post i tabellen. Indsæt en post i pristabellen:

INSERT INTO price
(id, price)  
VALUES(1, 200);  

CRUD og klausuler-INDSÆT

Posten er oprettet.

SELECT

SELECT-sætningen hjælper os med at se eller se indholdet af en databasetabel. For at se indholdet af bogtabellen skal du for eksempel køre følgende kommando:

SELECT * from book;

CRUD og klausuler-INDSÆT

Se nu indholdet af pristabellen:

SELECT * from price;

CRUD og klausuler-INDSÆT

Indsættelse af flere poster

Det er muligt for os at indsætte flere poster i en MariaDB bord på en tur. For at demonstrere dette, kør følgende eksempel:

INSERT INTO book
(id, name)  
VALUES  
(2,'MariaDB Book2'),  
(3,'MariaDB Book3'),  
(4,'MariaDB Book4'),  
(5,'MariaDB Book5');

Indsættelse af flere poster

Du kan forespørge i tabellen for at kontrollere, om posterne blev indsat korrekt:

SELECT * FROM book;

Indsættelse af flere poster

Posterne blev indsat. Indsæt flere poster i pristabellen ved at køre dette eksempel:

INSERT INTO price 
(id, price)  
VALUES  
(2, 250),  
(3, 220),  
(4, 190),  
(5, 300); 

Indsættelse af flere poster

Lad os bekræfte, om registreringerne blev oprettet med succes:

SELECT * FROM price;

Indsættelse af flere poster

OPDATER

UPDATE-kommandoen hjælper os med at ændre eller modificere de poster, der allerede er indsat i en tabel. Du kan kombinere det med WHERE-udtrykket for at angive den post, der skal opdateres. Her er syntaksen:

UPDATE tableName SET field=newValue, field2=newValue2,...  
[WHERE ...]  

UPDATE-kommandoen kan også kombineres med klausuler som SET, WHERE, LIMIT og ORDER BY. Du vil snart se dette:

Overvej tabellen med navnet Pris med følgende poster:

CRUD og klausuler-OPDATERING

Lad os ændre prisen på bogen med et id på 1 fra 200 til 250:

UPDATE price 
SET price = 250
WHERE id = 1;

CRUD og klausuler-OPDATERING

Kommandoen kørte med succes. Du kan nu forespørge i tabellen for at se, om ændringen fandt sted:

CRUD og klausuler-OPDATERING

Ovenstående skærmbillede viser, at ændringen er implementeret. Overvej tabelbogen med følgende optegnelser:

CRUD og klausuler-OPDATERING

Lad os ændre navnet på bogen med navnet Bog til MariaDB Bog 1. Bemærk, at bogen har et id på 1. Her er kommandoen til dette:

UPDATE book
SET name = “MariaDB Book1”
WHERE id = 1;

CRUD og klausuler-OPDATERING

Tjek om ændringen er implementeret:

CRUD og klausuler-OPDATERING

Ovenstående skærmbillede viser, at ændringen er blevet implementeret med succes.

I ovenstående eksempler har vi kun ændret én kolonne ad gangen. Det er dog muligt for os at ændre flere kolonner på en gang. Lad os demonstrere dette ved hjælp af et eksempel.

Lad os bruge pristabellen med følgende data:

CRUD og klausuler-OPDATERING

Lad os ændre både id'et og prisen på bogen med et id på 5. Vi ændrer dens id til 6 og pris til 6. Kør følgende kommando:

UPDATE price
SET id = 6,
price = 280
WHERE id = 5;

CRUD og klausuler-OPDATERING

Forespørg nu i tabellen for at kontrollere, om ændringen blev foretaget med succes:

CRUD og klausuler-OPDATERING

Ændringen blev gennemført.

Slette

Vi bruger kommandoen DELETE, når vi skal slette enten en eller mange poster fra en tabel. Her er syntaksen for kommandoen:

DELETE FROM tableName  
[WHERE condition(s)]  
[ORDER BY exp [ ASC | DESC ]]  
[LIMIT numberRows];   

Overvej pristabellen med følgende poster:

CRUD og klausuler-SLET

Vi skal slette den sidste post fra tabellen. Den har et id på 6 og en pris på 280. Lad os slette posten:

DELETE FROM price
WHERE id = 6;   

CRUD og klausuler-SLET

Kommandoen kørte med succes. Lad os forespørge i tabellen for at bekræfte, om sletningen lykkedes:

CRUD og klausuler-SLET

Outputtet viser, at posten blev slettet.

Hvor

WHERE-sætningen hjælper os med at angive den nøjagtige placering, hvor vi skal foretage en ændring. Det bruges sammen med sætninger som INSERT, SELECT, UPDATE og DELETE. Overvej pristabellen med følgende data:

CRUD og klausuler-hvor

Antag, at vi skal se de poster, hvor prisen er mindre end 250. Vi kan køre følgende kommando:

SELECT *   
FROM price 
WHERE price < 250;  

CRUD og klausuler-hvor

Alle de plader, hvor prisen er under 250,- er returneret.

WHERE-sætningen kan kombineres med AND-sætningen. Antag, at vi skal se alle poster i pristabellen, hvor prisen er under 250 og id er over 3. Vi kan køre følgende kommando:

SELECT *  
FROM price  
WHERE id > 3  
AND price < 250;   

CRUD og klausuler-hvor

Kun én post er blevet returneret. Årsagen er, at den skal opfylde alle de betingelser, der er angivet, det vil sige id over 3 og pris under 250. Hvis nogen af ​​disse betingelser overtrædes, vil posten ikke blive returneret.

Udtrykket kan også kombineres med OR-kommandoen. Lad os erstatte AND i vores forrige kommando med OR og se, hvilken type output vi modtager:

SELECT *  
FROM price 
WHERE id > 3  
OR price < 250;   

CRUD og klausuler-hvor

Vi får nu 2 rekorder i stedet for 1. Dette skyldes, at det kun skal opfylde en af ​​de angivne betingelser for at kunne kvalificere sig.

lignende

Denne klausul bruges til at specificere datamønsteret ved adgang til tabeldata, hvor et nøjagtigt match er nødvendigt. Det kan kombineres med INSERT, UPDATE, SELECT og DELETE sætningerne.

Du skal videregive det datamønster, du leder efter, til klausulen, og det vil returnere enten sandt eller falsk. Her er jokertegnene, der kan bruges sammen med klausulen:

  • %: for at matche enten 0 eller flere tegn.
  • _: for at matche et enkelt tegn.

Her er syntaksen for LIKE-sætningen:

SELECT field_1, field_2,... FROM tableName1, tableName2,...  
WHERE fieldName LIKE condition;

Lad os demonstrere, hvordan man bruger klausulen med % jokertegn. Lad os bruge bogtabellen med følgende optegnelser:

CRUD og klausuler-hvor

Vi skal se alle poster, hvor navnet begynder med M. Vi kan køre følgende kommando:

SELECT name  
FROM book  
WHERE name LIKE 'M%';  

CRUD og klausuler-hvor

Alle poster er blevet returneret, fordi deres navne begynder med bogstavet M. For at se alle navne, der slutter med 4, kan du køre følgende kommando:

SELECT name  
FROM book  
WHERE name LIKE '%4';  

CRUD og klausuler-hvor

Kun ét navn er blevet returneret, fordi det er det eneste, der opfylder betingelsen.

Vi kan også omgive søgemønsteret med jokertegnet:

SELECT name  
FROM book  
WHERE name LIKE '%DB%';  

CRUD og klausuler-hvor

Ud over jokertegnet % kan LIKE-sætningen bruges sammen med jokertegnet _. Dette er understregnings-jokertegnet, og det vil kun lede efter et enkelt tegn.

Lad os arbejde med pristabellen med følgende poster:

CRUD og klausuler-hvor

Lad os se efter posten, hvor prisen er som 1_0. Vi kører følgende kommando:

SELECT *  
FROM price
WHERE price LIKE '1_0';  

CRUD og klausuler-hvor

Det har returneret rekorden, hvor prisen er 190. Vi kan også prøve et andet mønster:

SELECT *  
FROM price 
WHERE price LIKE '_2_';  

CRUD og klausuler-hvor

Det er muligt for os at bruge LIKE-klausulen sammen med NOT-operatoren. Dette vil returnere alle de poster, der ikke opfylder det angivne mønster. For eksempel:

Lad os bruge pristabellen med følgende poster:

CRUD og klausuler-hvor

Lad os finde alle de poster, hvor prisen ikke starter med 2:

SELECT *  
FROM price  
WHERE price NOT LIKE '2%';  

CRUD og klausuler-hvor

Kun én post opfylder ikke det angivne mønster.

Order By

Denne klausul hjælper os med at sortere vores optegnelser i enten stigende eller faldende rækkefølge. Vi bruger det med SELECT-sætningen, som vist nedenfor:

SELECT expression(s)  
FROM tables  
[WHERE condition(s)]  
ORDER BY exp [ ASC | DESC ];   

Det er muligt for os at bruge denne klausul uden at tilføje hverken ASC- eller DESC-delen. For eksempel:

Vi vil bruge pristabellen med følgende poster:

CRUD og klausuler-hvor

Kør følgende kommando mod tabellen:

SELECT * FROM price 
WHERE price LIKE '2%.'
ORDER BY price;   

CRUD og klausuler-hvor

I ovenstående kommando har vi bestilt efter prisen. Posterne er bestilt med priserne i stigende rækkefølge. Det betyder, at når vi ikke angiver rækkefølgen, sker sorteringen som standard i stigende rækkefølge.

Lad os køre klausulen med DESC-indstillingen:

SELECT * FROM price
WHERE price LIKE '2%'  
ORDER BY price DESC;   

CRUD og klausuler-hvor

Posterne er sorteret med prisen i faldende rækkefølge, som vi har angivet.

Lad os bruge ORDER BY-sætningen sammen med ASC-attributten:

SELECT * FROM price 
WHERE price LIKE '2%.'  
ORDER BY price ASC;   

CRUD og klausuler-hvor

Pladerne er bestilt men med priserne i stigende rækkefølge. Dette svarer til, når vi bruger ORDER BY-sætningen uden hverken ASC- eller DESC-attributter.

DISTINCT

Denne klausul hjælper os med at slippe af med dubletter, når vi vælger poster fra en tabel. Det betyder, at det hjælper os med at få unikke optegnelser. Dens syntaks er angivet nedenfor:

SELECT DISTINCT expression(s)  
FROM tableName  
[WHERE condition(s)];   

For at demonstrere dette vil vi bruge pristabellen med følgende data:

CRUD og Clauses-DISTINCT

Når vi vælger priskolonnen fra tabellen, får vi følgende resultat:

SELECT price FROM Price;

CRUD og Clauses-DISTINCT

Vi har to plader med en pris på 250, hvilket skaber en dublet. Vi skal kun have unikke optegnelser. Vi kan filtrere disse ved at bruge DISTINCT-sætningen som vist nedenfor:

SELECT DISTINCT price FROM Price;

CRUD og Clauses-DISTINCT

Vi har nu ingen dubletter i ovenstående output.

Fra

FROM-sætningen, der bruges til at hente data fra en databasetabel. Det kan også hjælpe, når du samler borde. Her er syntaksen for kommandoen:

SELECT columnNames FROM tableName; 

For at se indholdet af bogtabellen skal du køre følgende kommando:

SELECT * FROM price;

CRUD og klausuler-fra

Klausulen kan hjælpe dig med kun at hente en enkelt kolonne fra en databasetabel. For eksempel:

SELECT price FROM Price;

CRUD og klausuler-fra

Avancerede opgaver

Lagret procedure

En procedure er en MariaDB program, som du kan sende parametre til. En procedure returnerer ikke værdier. For at oprette en procedure bruger vi kommandoen CREATE PROCEDURE.

For at demonstrere, hvordan man opretter og kalder en procedure, vil vi oprette en procedure ved navn myProcedure(), som hjælper os med at vælge navnekolonnen fra bogtabellen. Her er proceduren:

DELIMITER $
    CREATE PROCEDURE myProcedure()
        BEGIN
            SELECT name FROM book;
        END;
;

Avanceret opgaver-lagret procedure

Proceduren er oprettet. Vi har simpelthen vedlagt SELECT-sætningen i BEGIN- og END-sætningerne i proceduren.

Nu kan vi kalde proceduren ved dens navn som vist nedenfor:

CALL myProcedure();

Avanceret opgaver-lagret procedure

Proceduren returnerer navnekolonnen i bogtabellen, når den kaldes.

Vi kan lave en procedure, der tager en parameter ind. For eksempel skal vi vælge navnet på bogen og filtrere ved hjælp af bog-id'et. Vi kan oprette følgende procedure til dette:

DELIMITER $
    CREATE PROCEDURE myProcedure2(book_id int)
        BEGIN
            SELECT name FROM book WHERE id = book_id;
        END;
;

Avanceret opgaver-lagret procedure

Ovenfor har vi lavet en procedure ved navn myProcedure2(). Denne procedure tager en heltalsparameter ved navn book_id, som er id'et for den bog, hvis navn vi skal se. For at se navnet på bogen med et id på 3, kan vi kalde proceduren som følger:

CALL myProcedure2(3);

Avanceret opgaver-lagret procedure

Funktion

I modsætning til procedurer skal vi videregive parametre til funktioner, og en funktion skal returnere en værdi. For at oprette en funktion i MariaDB, bruger vi CREATE FUNCTION-sætningen. Udsagnet tager følgende syntaks:

CREATE 
[ DEFINER = { CURRENT-USER | username } ] 
FUNCTION function-name [(parameter datatype [, parameter datatype]) ]
RETURNS datatype [LANGUAGE SQL
                        | DETERMINISTIC
                        | NOT DETERMINISTIC
                        | {CONTAINS SQL 
                          | NO SQL
                          | READS SQL DATA
                          | MODIFIES SQL DATA}
                        | SQL SECURITY {DEFINER | INVOKER}
                        | COMMENT 'comment'

BEGIN

   declaration-section

   executable-section

END;

Ovenstående parametre er beskrevet nedenfor:

Parameter Description
DEFINER klausul Denne parameter er valgfri. Hvis du ikke angiver det, bliver definereren den bruger, der har oprettet funktionen. Hvis der er behov for at angive en anden definerer, skal du inkludere DEFINER-sætningen, hvor brugernavnet vil være definereren af ​​funktionen.
funktionsnavn Det navn, der skal tildeles denne funktion i MariaDB.
parameter Parameteren/parametrene, der er overført til funktionen. Under oprettelsen af ​​funktionen behandles alle parametre som IN-parametre (i stedet for OUT/INOUT parametre).
return_datatype Datatypen for funktionens returværdi.
SPROG SQL Det påvirker portabiliteten, men ikke funktionen.
DETERMINISTISK Funktionen returnerer kun ét resultat, når der gives et antal parametre.
IKKE DETERMINISTISK Det er muligt for funktionen at returnere et andet resultat, når der gives en række parametre.
INDEHOLDER SQL informerer MariaDB at denne funktion indeholder SQL. Databasen vil ikke bekræfte, om dette er sandt.
INGEN SQL Denne klausul bruges ikke, og den har ingen indflydelse på din funktion.
LÆSER SQL DATA fortæller MariaDB at denne funktion vil bruge SELECT-sætninger til at læse data, men den vil ikke ændre dataene.
ÆNDRINGER SQL DATA fortæller MariaDB at denne funktion vil bruge INSERT, DELETE, UPDATE og andet DDL sætninger til at ændre SQL-data.
erklæring-afsnit Det er her lokale variabler skal deklareres.
eksekverbar-sektion Funktionskoden skal tilføjes her.

Her er et eksempel MariaDB fungere:

DELIMITER //

CREATE FUNCTION sumFunc (x INT )
RETURNS INT DETERMINISTIC

BEGIN

   DECLARE sum INT;
   SET sum = 0;
   label1: WHILE sum <= 3000 DO
   SET sum = sum + x;
   END WHILE label1;
   RETURN sum;
END; //
DELIMITER ;

Funktion i MariaDB

Vi kan så kalde ovenstående funktion som følger:

select sumFunc(1000);

Kommandoen returnerer følgende:

Funktion i MariaDB

Når du er færdig med en funktion, vil det være godt for dig at slette den. Dette er nemt, da du kun skal kalde DROP FUNCTION-sætningen, der tager følgende syntaks:

DROP FUNCTION function_name;

For at droppe funktionen ved navn myFunc kan vi for eksempel køre følgende kommando:

DROP FUNCTION myFunc;

JOIN

Når du har brug for at hente data fra mere end én tabel ad gangen, skal du bruge MariaDB TILSLUTTER. Det betyder, at en JOIN fungerer på to eller flere borde. Følgende tre typer JOINS understøttes i MariaDB:

  • INDRE/ENKEL TILSLUTNING
  • VENSTRE YDRE JOIN/LEFT JOIN
  • HØJRE YDRE SAMLING/HØJRE JOIN

Lad os diskutere dem en for en:

INNER JOIN

Den indre sammenkædning returnerer alle rækker fra tabellerne, hvor sammenkædningsbetingelsen er sand. Dens syntaks er som følger:

SELECT columns  
FROM table-1   
INNER JOIN table-2  
ON table-1.column = table-2.column;  

For eksempel:

Vi vil bruge vores to borde, bøger og bog.

Bogtabellen har følgende data:

INNER JOIN

Pristabellen har følgende data:

INNER JOIN

Målet er at samle navnekolonnen fra bogtabellen og priskolonnen fra pristabellen til en enkelt tabel. Dette er muligt med en indre sammenføjning, som vist nedenfor:

SELECT book.name, price.price 
FROM book   
INNER JOIN price 
ON book.id = price.id;   

Kommandoen returnerer følgende:

INNER JOIN

VENSTRE YDRE JOIN

Denne join returnerer alle rækkerne fra den venstre tabel og kun rækker, hvor joinbetingelsen er sand fra den anden tabel. Dens syntaks er som følger:

SELECT columns  
FROM table-1  
LEFT [OUTER] JOIN table-2  
ON table-1.column = table-2.column;  

Nøgleordet OUTER er blevet placeret i firkantede parenteser, fordi det er valgfrit.

For eksempel:

SELECT book.name, price.price 
FROM book   
LEFT JOIN price 
ON book.id = price.id;   

Kommandoen returnerer følgende:

VENSTRE YDRE JOIN

Den sidste post i ovenstående tabel har ingen matchende værdi til venstre. Derfor er den blevet erstattet med NULL.

HØJRE YDRE JOIN

Denne join returnerer alle rækkerne fra den højre tabel og kun rækker, hvor join-betingelsen er sand fra den anden tabel. Dens syntaks er som følger:

SELECT columns  
FROM table-1  
RIGHT [OUTER] JOIN table-2  
ON table-1.column = table-2.column;  

Nøgleordet OUTER er blevet placeret i firkantede parenteser, fordi det er valgfrit.

For eksempel:

SELECT book.name, price.price 
FROM book   
RIGHT JOIN price
ON book.id = price.id;   

Kommandoen returnerer følgende:

HØJRE YDRE JOIN

Årsagen er, at alle rækker i den højre tabel blev matchet med dem i den anden tabel. Hvis nogle af rækkerne ikke matchede, ville vi have NULL i den første kolonne.