MariaDB Opplæring: Lær syntaks, kommandoer med eksempler
Hva er MariaDB?
MariaDB er en gaffel av MySQL databasestyringssystem. Den er laget av de opprinnelige utviklerne. Dette DBMS-verktøyet tilbyr databehandlingsmuligheter for både små og bedriftsoppgaver.
MariaDB er en forbedret versjon av MySQL. Den kommer med mange innebygde kraftige funksjoner og mange brukervennligheter, sikkerhets- og ytelsesforbedringer som du ikke finner i MySQL.
Her er funksjonene til MariaDB:
- Den opererer under GPL-, BSD- eller LGPL-lisenser.
- MariaDB støtter et populært og standard spørrespråk.
- Den kommer med mange lagringsmotorer, inkludert de høyytelsesmotorer som kan integreres med andre relasjonsdatabaseadministrasjonssystemer.
- Det gir Galera-klyngeteknologien.
- MariaDB støtter PHP, et populært språk for webutvikling.
- MariaDB kan kjøre på forskjellige operativsystemer, og den støtter en rekke programmeringsspråk.
- MariaDB kommer med tilleggskommandoer som ikke er tilgjengelige i MySQL. MySQL har funksjoner som har en negativ innvirkning på ytelsen til DBMS. Slike funksjoner har blitt erstattet i MariaDB.
MariaDB vs MySQL
Nedenfor er noen viktige forskjeller mellom MariaDB vs MySQL
Parameter | MariaDB | MySQL |
---|---|---|
Flere alternativer for lagringsmotorer | MariaDB har 12 nye lagringsmotorer som du ikke finner i MySQL. | Den har færre muligheter for oppbevaring sammenlignet med MariaDB. |
Hastighetsforbedringer | MariaDB viser en forbedret hastighet sammenlignet med MySQL. Den kommer med en rekke funksjoner for å optimalisere hastigheten. Slike funksjoner inkluderer avledede visninger/tabeller, underspørring, utførelseskontroll, disktilgang og optimaliseringskontroll. | MySQL viser en lavere hastighet sammenlignet med MariaDB. Den er avhengig av bare noen få funksjoner for hastighetsoptimalisering, for eksempel hash-indekser. |
Raskere cache/indekser | Med minnelagringsmotoren til MariaDB, en INSERT-setning kan fullføres 24 % enn i standarden MySQL. | Minnelagringsmotoren til MySQL er tregere sammenlignet med det MariaDB. |
Større og raskere tilkoblingsbasseng | MariaDB leveres med en avansert trådpool som kan kjøre raskere og støtte opptil 200,000 XNUMX+ tilkoblinger. | Trådbassenget levert av MySQL kan ikke støtte opptil 200,000 XNUMX tilkoblinger per gang. |
Forbedret replikering | In MariaDB, kan replikering gjøres tryggere og raskere. Oppdateringer kan også gjøres 2 ganger raskere sammenlignet med tradisjonelle MySQL. | MySQLCommunity-utgaven tillater at et statisk antall tråder kobles til. MySQLsin bedriftsplan kommer med trådfunksjoner. |
Nye funksjoner/utvidelser | MariaDB kommer med nye funksjoner og utvidelser, inkludert JSON-, WITH- og KILL-setningene. | Den nye MariaDB funksjoner er ikke gitt i MySQL. |
Manglende funksjoner | MariaDB mangler noen av funksjonene som tilbys av MySQL bedriftsutgave. For å løse dette tilbyr den alternative åpen kildekode-plugins. Derfor, MariaDB brukere kan nyte de samme funksjonene som MySQL Enterprise Edition-brukere. | Enterprise-utgaven av MySQL bruker en proprietær kode. Kun brukere av MySQL Enterprise Edition har tilgang til dette. |
Hvordan du installerer MariaDB
Installer som en frittstående applikasjon
For å kunne bruke MariaDB, må du installere den på datamaskinen din.
Installasjonen kan gjøres ved å følge trinnene nedenfor:
Trinn 1) Åpne under URL
Last ned installasjonsfilen fra lenken https://downloads.mariadb.org/
Trinn 2) Double klikk på filen for å starte installasjonen
Når nedlastingen er fullført, åpne fil
Trinn 3) Klikk på Neste-knappen
Klikk på Neste-knappen i vinduet som dukker opp:
Trinn 4) Godta lisensavtalen
Klikk deretter på Neste-knappen:
Trinn 5) Velg MariaDB Server
Velg funksjonene som skal installeres og klikk på Neste
Trinn 6) Skriv inn passordet
I neste vindu vil du bli bedt om å endre passordet for root-brukeren.
- Skriv inn passordet og bekreft det ved å skrive inn det samme passordet på nytt. Hvis du vil tillate tilgang fra eksterne maskiner, aktiverer du den nødvendige avmerkingsboksen.
- Når du er ferdig, klikker du på Neste-knappen.
Trinn 7) Skriv inn navn og velg portnummer
I det neste vinduet, skriv inn et navn for forekomsten, velg portnummeret og angi den nødvendige størrelsen. Klikk på Neste-knappen:
Trinn 8) Klikk på Neste
I det neste vinduet klikker du bare på Neste-knappen.
Trinn 9) Klikk på Installer
Start installasjonen ved å klikke på Installer-knappen.
Trinn 10) En fremdriftslinje vist
En fremdriftslinje som viser fremdriften til installasjonen vil bli vist:
Trinn 11) Klikk på Fullfør-knappen
Når installasjonen er fullført, vil du se Fullfør-knappen. Klikk på knappen for å lukke vinduet:
Trinn 12) Gratulerer!
Det har du nå MariaDB installert på datamaskinen din.
Arbeide med ledetekst
Nå som du har MariaDB installert på datamaskinen din, er det på tide for deg å starte den og begynne å bruke den. Dette kan gjøres via MariaDB ledeteksten.
Følg trinnene nedenfor:
Trinn 1) Klikk Start, velg Alle programmer og klikk deretter MariaDB...
Trinn 2) Velg en MariaDB Command Prompt.
Trinn 3) Ocuco MariaDB ledeteksten vil bli startet. Det er nå på tide å logge inn. Du bør logge inn som root-bruker og passordet som du satte under installasjonen av MariaDB. Skriv inn følgende kommando på ledeteksten:
MySQL -u root -p
Trinn 4) Skriv inn passordet og trykk på returtasten. Du bør være pålogget, som vist nedenfor:
Du er nå logget inn MariaDB.
Datatyper
MariaDB støtter følgende datatyper:
- Strengdatatyper
- Numeriske datatyper
- Datatyper for dato/klokkeslett
- Datatyper for store objekter
Strengdatatyper
Disse inkluderer følgende:
Datatype streng | Tekniske beskrivelser |
---|---|
røye (størrelse) | Størrelsen angir antall tegn som skal lagres. Den lagrer maksimalt 255 tegn. Fast lengde strenger. |
varchar (størrelse) | Størrelsen angir antall tegn som skal lagres. Den lagrer maksimalt 255 tegn. Strenger med variabel lengde. |
tekst(størrelse) | Størrelsen angir antall tegn som skal lagres. Den lagrer maksimalt 255 tegn. Fast lengde strenger. |
binær (størrelse) | Størrelsen angir antall tegn som skal lagres. Den lagrer maksimalt 255 tegn. Fast størrelse strenger. |
Numeriske datatyper
De inkluderer følgende:
Numeriske datatyper | Tekniske beskrivelser |
---|---|
bit | En veldig liten heltallsverdi som tilsvarer tinyint(1). Signerte verdier varierer mellom -128 og 127. Usignerte verdier varierer mellom 0 og 255. |
int(m) | En standard heltallsverdi. Signerte verdier varierer mellom -2147483648 og 2147483647. Usignerte verdier varierer mellom 0 og 4294967295. |
flyte(m, d) | Et flyttallnummer med enkel presisjon. |
dobbel(m,d) | Et flyttall med dobbel presisjon. |
flyte(p) | Et flyttallnummer. |
Dato/klokkeslett Datatyper
Disse inkluderer følgende:
Dato/klokkeslett Datatype | Tekniske beskrivelser |
---|---|
Dato | Vises i formen 'åååå-mm-dd.' Verdiene varierer mellom '1000-01-01' og '9999-12-31'. |
Dato tid | Vises i formen 'åååå-mm-dd tt:mm:ss'. Verdiene varierer mellom '1000-01-01 00:00:00' og '9999-12-31 23:59:59'. |
tidsstempel (m) | Vises i formen 'åååå-mm-dd tt:mm:ss'. Verdiene varierer mellom '1970-01-01 00:00:01' utc og '2038-01-19 03:14:07' utc. |
Tid | Vises i formen 'tt:mm:ss'. Verdiene varierer mellom '-838:59:59' og '838:59:59'. |
Datatyper for store objekter (LOB)
De inkluderer følgende:
Stort objekt Datatype | Tekniske beskrivelser |
---|---|
liten klatt | Dens maksimale størrelse er 255 byte. |
blob (størrelse) | Tar 65,535 XNUMX byte som maksimal størrelse. |
medium blob | Dens maksimale størrelse er 16,777,215 byte. |
lang tekst | Det tar 4 GB som maksimal størrelse. |
Lag en database og tabeller
For å opprette en ny database i MariaDB, bør du ha spesielle privilegier som bare gis til rotbrukeren og administratorene.
For å opprette en ny database, bør du bruke CREATE DATABASE-kommandoen som tar følgende syntaks:
CREATE DATABASE DatabaseName;
I dette tilfellet må du opprette en database og gi den navnet Demo.
Start MariaDB ledetekst og logg inn som rotbruker ved å skrive følgende kommando:
mysql -u root -p
Skriv inn root-passordet og trykk på returtasten. Du vil bli logget inn.
Kjør nå følgende kommando:
CREATE DATABASE Demo;
Du har da opprettet en database kalt Demo. Det vil være bra for deg å bekrefte om databasen ble opprettet eller ikke. Du trenger bare å vise listen over tilgjengelige databaser ved å kjøre følgende kommando:
SHOW DATABASES;
Utdataene ovenfor viser at Demo-databasen er en del av listen, og derfor ble databasen opprettet.
MariaDB Velg Database
For at du skal kunne bruke eller jobbe med en bestemt database, må du velge den fra listen over tilgjengelige databaser. Etter å ha valgt en database, kan du utføre oppgaver som å lage tabeller i databasen.
For å velge en database, bør du bruke kommandoen USE. Det tar syntaksen gitt nedenfor:
USE database_name;
Du må bruke demodatabasen. Du kan velge det ved å kjøre følgende kommando:
USE Demo;
Bildet ovenfor viser at MariaDB ledeteksten har endret seg fra ingen til navnet på databasen som er valgt.
Du kan nå gå videre og lage tabeller i Demo-databasen.
MariaDB – Lag tabell
For at du skal kunne lage en tabell må du ha valgt en database. Tabellen kan opprettes ved å bruke CREATE TABLE-setningen. Her er syntaksen for kommandoen:
CREATE TABLE tableName (columnName columnType);
Du kan angi at en av kolonnene skal være primærnøkkelen. Denne kolonnen skal ikke tillate nullverdier.
Vi vil lage to tabeller i Demo-databasen, bok- og pristabeller. Hver tabell vil ha to kolonner.
La oss begynne med å lage boktabellen med to kolonner, id og navn. Kjør følgende kommando:
CREATE TABLE Book( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, PRIMARY KEY (id));
PRIMARY KEY-begrensningen har blitt brukt til å angi id-kolonnen som primærnøkkel for tabellen. AUTO_INCREMENT-egenskapen vil øke verdiene til id-kolonnen med 1 automatisk for hver ny post som settes inn i tabellen. Alle kolonnene vil ikke tillate nullverdier.
Lag nå den andre tabellen, Pristabellen:
CREATE TABLE Price( id INT NOT NULL AUTO_INCREMENT, price float NOT NULL, PRIMARY KEY (id));
ID-kolonnen er satt som primærnøkkel for tabellen.
Viser tabeller
Nå som du har opprettet de to tabellene, vil det være bra for deg å samsvare med om tabellene ble opprettet vellykket eller ikke. Du kan vise listen over tabeller i en database ved å kjøre følgende kommando:
SHOW TABLES;
Skjermbildet ovenfor viser at de to tabellene ble opprettet i Demo-databasen.
Viser tabellstruktur
For å se strukturen til en bestemt tabell, kan du bruke DESCRIBE-kommandoen, vanligvis forkortet som DESC. Det tar følgende syntaks:
DESC TableName;
For å se strukturen til tabellen som heter Book, kan du for eksempel kjøre følgende kommando;
DESC Book;
Tabellen har to kolonner. For å se strukturen til pristabellen kan du kjøre følgende kommando:
DESC Price;
CRUD og klausuler
INSERT
For å sette inn data i en MariaDB tabellen, bør du bruke INSERT INTO-setningen. Denne kommandoen tar syntaksen gitt nedenfor:
INSERT INTO tableName (column_1, column_2, ... ) VALUES (value1, value2, ... ), (value1, value2, ... ), ...;
Syntaksen ovenfor viser at du må spesifisere tabellkolonnene du vil sette inn data i, samt dataene du må sette inn.
La oss sette inn en post i boktabellen:
INSERT INTO book (id, name) VALUES(1, 'MariaDB Book');
Du har satt inn en enkelt post i tabellen. Sett inn en post i pristabellen:
INSERT INTO price (id, price) VALUES(1, 200);
Posten er opprettet.
VELG
SELECT-setningen hjelper oss å se eller se innholdet i en databasetabell. For å se innholdet i boktabellen, for eksempel, må du kjøre følgende kommando:
SELECT * from book;
Se nå innholdet i pristabellen:
SELECT * from price;
Sette inn flere poster
Det er mulig for oss å sette inn flere poster i en MariaDB bord på en tur. For å demonstrere dette, kjør følgende eksempel:
INSERT INTO book (id, name) VALUES (2,'MariaDB Book2'), (3,'MariaDB Book3'), (4,'MariaDB Book4'), (5,'MariaDB Book5');
Du kan spørre tabellen for å sjekke om postene ble satt inn på riktig måte:
SELECT * FROM book;
Postene ble satt inn. Sett inn flere poster i pristabellen ved å kjøre dette eksemplet:
INSERT INTO price (id, price) VALUES (2, 250), (3, 220), (4, 190), (5, 300);
La oss bekrefte om postene ble opprettet:
SELECT * FROM price;
OPPDATERING
UPDATE-kommandoen hjelper oss å endre eller modifisere postene som allerede er satt inn i en tabell. Du kan kombinere den med WHERE-leddet for å spesifisere posten som skal oppdateres. 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 se dette snart:
Tenk på tabellen med navnet Pris med følgende poster:
La oss endre prisen på boken med en id på 1 fra 200 til 250:
UPDATE price SET price = 250 WHERE id = 1;
Kommandoen kjørte vellykket. Du kan nå spørre tabellen for å se om endringen fant sted:
Skjermbildet ovenfor viser at endringen er implementert. Tenk på tabellboken med følgende poster:
La oss endre navnet på boken som heter Boken til MariaDB Bok1. Legg merke til at boken har en id på 1. Her er kommandoen for dette:
UPDATE book SET name = “MariaDB Book1” WHERE id = 1;
Sjekk om endringen er implementert:
Skjermbildet ovenfor viser at endringen har blitt implementert vellykket.
I eksemplene ovenfor har vi bare endret én kolonne om gangen. Det er imidlertid mulig for oss å endre flere kolonner på en gang. La oss demonstrere dette ved å bruke et eksempel.
La oss bruke pristabellen med følgende data:
La oss endre både id og pris på boken med en id på 5. Vi vil endre id til 6 og pris til 6. Kjør følgende kommando:
UPDATE price SET id = 6, price = 280 WHERE id = 5;
Spør nå tabellen for å sjekke om endringen ble gjort vellykket:
Endringen ble gjort vellykket.
Delete
Vi bruker kommandoen DELETE når vi trenger å slette enten én eller flere poster fra en tabell. Her er syntaksen for kommandoen:
DELETE FROM tableName [WHERE condition(s)] [ORDER BY exp [ ASC | DESC ]] [LIMIT numberRows];
Vurder pristabellen med følgende poster:
Vi må slette den siste posten fra tabellen. Den har en id på 6 og en pris på 280. La oss slette posten:
DELETE FROM price WHERE id = 6;
Kommandoen kjørte vellykket. La oss spørre i tabellen for å bekrefte om slettingen var vellykket:
Utdataene viser at posten ble slettet.
Hvor
WHERE-klausulen hjelper oss med å spesifisere nøyaktig hvor vi må gjøre en endring. Den brukes sammen med setninger som INSERT, SELECT, UPDATE og DELETE. Vurder pristabellen med følgende data:
Anta at vi trenger å se postene der prisen er mindre enn 250. Vi kan kjøre følgende kommando:
SELECT * FROM price WHERE price < 250;
Alle postene der prisen er under 250,- er returnert.
WHERE-leddet kan kombineres med AND-setningen. Anta at vi må se alle poster i pristabellen der prisen er under 250 og id er over 3. Vi kan kjøre følgende kommando:
SELECT * FROM price WHERE id > 3 AND price < 250;
Kun én post er returnert. Årsaken er at den må oppfylle alle betingelsene som er spesifisert, det vil si id over 3 og pris under 250. Hvis noen av disse betingelsene brytes, vil posten ikke bli returnert.
Klausulen kan også kombineres med OR-kommandoen. La oss erstatte AND i vår forrige kommando med OR og se hva slags utdata vi mottar:
SELECT * FROM price WHERE id > 3 OR price < 250;
Vi får nå 2 rekorder i stedet for 1. Dette er fordi, for en kvalifiseringsrekord, må den bare oppfylle en av de spesifiserte betingelsene.
I likhet med
Denne klausulen brukes til å spesifisere datamønsteret når du får tilgang til tabelldata der et eksakt samsvar er nødvendig. Den kan kombineres med INSERT-, UPDATE-, SELECT- og DELETE-setningene.
Du bør overføre datamønsteret du leter etter til klausulen, og det vil returnere enten sant eller usant. Her er jokertegnene som kan brukes sammen med klausulen:
- %: for å matche enten 0 eller flere tegn.
- _: for å matche et enkelt tegn.
Her er syntaksen for LIKE-klausulen:
SELECT field_1, field_2,... FROM tableName1, tableName2,... WHERE fieldName LIKE condition;
La oss demonstrere hvordan du bruker klausulen med jokertegnet %. La oss bruke boktabellen med følgende poster:
Vi må se alle poster der navnet begynner med M. Vi kan kjøre følgende kommando:
SELECT name FROM book WHERE name LIKE 'M%';
Alle poster har blitt returnert fordi navnene deres begynner med bokstaven M. For å se alle navn som slutter på 4, kan du kjøre følgende kommando:
SELECT name FROM book WHERE name LIKE '%4';
Bare ett navn har blitt returnert fordi det er det eneste som oppfyller betingelsen.
Vi kan også omgi søkemønsteret med jokertegnet:
SELECT name FROM book WHERE name LIKE '%DB%';
Annet enn jokertegnet %, kan LIKE-leddet brukes sammen med jokertegnet _. Dette er jokertegnet for understrek, og det vil bare se etter et enkelt tegn.
La oss jobbe med pristabellen med følgende poster:
La oss se etter posten der prisen er som 1_0. Vi kjører følgende kommando:
SELECT * FROM price WHERE price LIKE '1_0';
Den har returnert rekorden der prisen er 190. Vi kan også prøve et annet mønster:
SELECT * FROM price WHERE price LIKE '_2_';
Det er mulig for oss å bruke LIKE-klausulen sammen med NOT-operatoren. Dette vil returnere alle postene som ikke oppfyller det angitte mønsteret. For eksempel:
La oss bruke pristabellen med følgende poster:
La oss finne alle postene der prisen ikke starter med 2:
SELECT * FROM price WHERE price NOT LIKE '2%';
Bare én post oppfyller ikke det angitte mønsteret.
Sorter med
Denne klausulen hjelper oss med å sortere postene våre i enten stigende eller synkende rekkefølge. Vi bruker den med SELECT-setningen, som vist nedenfor:
SELECT expression(s) FROM tables [WHERE condition(s)] ORDER BY exp [ ASC | DESC ];
Det er mulig for oss å bruke denne klausulen uten å legge til verken ASC- eller DESC-delen. For eksempel:
Vi vil bruke pristabellen med følgende poster:
Kjør følgende kommando mot tabellen:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price;
I kommandoen ovenfor har vi bestilt etter prisen. Postene er bestilt med prisene i stigende rekkefølge. Det betyr at når vi ikke spesifiserer rekkefølgen, blir sorteringen gjort i stigende rekkefølge som standard.
La oss kjøre klausulen med DESC-alternativet:
SELECT * FROM price WHERE price LIKE '2%' ORDER BY price DESC;
Postene er sortert med prisen i synkende rekkefølge slik vi har spesifisert.
La oss bruke ORDER BY-leddet sammen med ASC-attributtet:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price ASC;
Platene er bestilt, men med prisene i stigende rekkefølge. Dette ligner når vi bruker ORDER BY-klausulen uten verken ASC- eller DESC-attributter.
DISTINCT
Denne klausulen hjelper oss å gjøre unna duplikater når vi velger poster fra en tabell. Dette betyr at det hjelper oss å få unike poster. Syntaksen er gitt nedenfor:
SELECT DISTINCT expression(s) FROM tableName [WHERE condition(s)];
For å demonstrere dette vil vi bruke pristabellen med følgende data:
Når vi velger priskolonnen fra tabellen får vi følgende resultat:
SELECT price FROM Price;
Vi har to poster med en pris på 250,- og skaper et duplikat. Vi trenger bare å ha unike poster. Vi kan filtrere disse ved å bruke DISTINCT-klausulen som vist nedenfor:
SELECT DISTINCT price FROM Price;
Vi har nå ingen duplikater i utdataene ovenfor.
Fra
FROM-leddet som brukes for å hente data fra en databasetabell. Det kan også hjelpe når du skal slå sammen bord. Her er syntaksen for kommandoen:
SELECT columnNames FROM tableName;
For å se innholdet i boktabellen, kjør følgende kommando:
SELECT * FROM price;
Klausulen kan hjelpe deg med å hente bare en enkelt kolonne fra en databasetabell. For eksempel:
SELECT price FROM Price;
Avanserte oppgaver
Lagret prosedyre
En prosedyre er en MariaDB program som du kan sende parametere til. En prosedyre returnerer ikke verdier. For å lage en prosedyre bruker vi kommandoen CREATE PROCEDURE.
For å demonstrere hvordan du oppretter og kaller en prosedyre, vil vi lage en prosedyre kalt myProcedure() som hjelper oss å velge navnekolonnen fra boktabellen. Her er fremgangsmåten:
DELIMITER $ CREATE PROCEDURE myProcedure() BEGIN SELECT name FROM book; END; ;
Prosedyren er opprettet. Vi har ganske enkelt vedlagt SELECT-setningen i BEGIN- og END-klausulene i prosedyren.
Nå kan vi kalle prosedyren ved navn som vist nedenfor:
CALL myProcedure();
Prosedyren returnerer navnekolonnen til boktabellen når den kalles.
Vi kan lage en prosedyre som tar inn en parameter. For eksempel må vi velge navnet på boken og filtrere ved hjelp av bok-ID. Vi kan lage følgende prosedyre for dette:
DELIMITER $ CREATE PROCEDURE myProcedure2(book_id int) BEGIN SELECT name FROM book WHERE id = book_id; END; ;
Ovenfor har vi laget en prosedyre kalt myProcedure2(). Denne prosedyren tar en heltallsparameter kalt book_id som er IDen til boken hvis navn vi må se. For å se navnet på boken med en id på 3, kan vi kalle prosedyren som følger:
CALL myProcedure2(3);
Funksjon
I motsetning til prosedyrer, må vi sende parametere til funksjoner og en funksjon må returnere en verdi. For å lage en funksjon i MariaDB, bruker vi CREATE FUNCTION-setningen. Utsagnet tar 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;
Parametrene ovenfor er beskrevet nedenfor:
Parameter | Tekniske beskrivelser |
---|---|
DEFINER-klausul | Denne parameteren er valgfri. Hvis du ikke spesifiserer det, vil definereren bli brukeren som opprettet funksjonen. Hvis det er behov for å spesifisere en annen definerer, inkluderer DEFINER-klausulen der brukernavnet vil være definereren av funksjonen. |
funksjonsnavn | Navnet som skal tildeles denne funksjonen i MariaDB. |
parameter | Parameteren(e) sendt til funksjonen. Under opprettelsen av funksjonen behandles alle parametere som IN parametere (i stedet for OUT/INOUT parametere). |
return_datatype | Datatypen for returverdien til funksjonen. |
SPRÅK SQL | Det påvirker portabiliteten, men ikke funksjonen. |
DETERMINISTISK | Funksjonen returnerer bare ett resultat når det gis et antall parametere. |
IKKE DETERMINISTISK | Det er mulig for funksjonen å returnere et annet resultat når det gis en rekke parametere. |
INNEHOLDER SQL | informerer MariaDB at denne funksjonen inneholder SQL. Databasen vil ikke bekrefte om dette er sant. |
INGEN SQL | Denne klausulen brukes ikke, og den har ingen innvirkning på funksjonen din. |
LESER SQL DATA | Forteller MariaDB at denne funksjonen vil bruke SELECT-setninger for å lese data, men den vil ikke endre dataene. |
MODIFISER SQL-DATA | Forteller MariaDB at denne funksjonen vil bruke INSERT, DELETE, UPDATE og annet DDL setninger for å endre SQL-data. |
erklæring-seksjonen | Det er her lokale variabler skal deklareres. |
kjørbar-seksjon | Funksjonskoden skal legges til her. |
Her er et eksempel MariaDB funksjon:
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 ;
Vi kan da kalle funksjonen ovenfor som følger:
select sumFunc(1000);
Kommandoen vil returnere følgende:
Når du er ferdig med en funksjon, vil det være bra for deg å slette den. Dette er enkelt siden du bare trenger å kalle DROP FUNCTION-setningen som tar følgende syntaks:
DROP FUNCTION function_name;
For å slippe funksjonen som heter myFunc, kan vi for eksempel kjøre følgende kommando:
DROP FUNCTION myFunc;
BLI
Når du trenger å hente data fra mer enn én tabell på en gang, bruk MariaDB BLITER MED. Dette betyr at a BLI fungerer på to eller flere bord. Følgende tre typer JOINS støttes i MariaDB:
- INDRE/ENKEL SAMLING
- VENSTRE YTRE SKJØTTE/VENSTRE SKJØT
- HØYRE YTRE SKJØT/HØYRE SKJØT
La oss diskutere dem én etter én:
INNER JOIN
Den indre sammenføyningen returnerer alle rader fra tabellene der sammenføyningsbetingelsen er sann. Syntaksen er som følger:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
For eksempel:
Vi vil bruke våre to bord, bøker og bok.
Boktabellen har følgende data:
Pristabellen har følgende data:
Målet er å slå sammen navnekolonnen fra Bok-tabellen og priskolonnen fra Pristabellen til en enkelt tabell. Dette er mulig med en indre sammenføyning, som vist nedenfor:
SELECT book.name, price.price FROM book INNER JOIN price ON book.id = price.id;
Kommandoen returnerer følgende:
VENSTRE YTRE MEDLEM
Denne sammenføyningen returnerer alle radene fra den venstre tabellen og bare rader der sammenføyningsbetingelsen er sann fra den andre tabellen. Syntaksen er som følger:
SELECT columns FROM table-1 LEFT [OUTER] JOIN table-2 ON table-1.column = table-2.column;
Nøkkelordet OUTER er plassert innenfor hakeparenteser fordi det er valgfritt.
For eksempel:
SELECT book.name, price.price FROM book LEFT JOIN price ON book.id = price.id;
Kommandoen returnerer følgende:
Den siste posten i tabellen ovenfor har ingen samsvarende verdi til venstre. Derfor er den erstattet med NULL.
HØYRE YTRE BLI MED
Denne sammenføyningen returnerer alle radene fra tabellen til høyre og bare rader der sammenføyningsbetingelsen er sann fra den andre tabellen. Syntaksen er som følger:
SELECT columns FROM table-1 RIGHT [OUTER] JOIN table-2 ON table-1.column = table-2.column;
Nøkkelordet OUTER er plassert innenfor hakeparenteser fordi det er valgfritt.
For eksempel:
SELECT book.name, price.price FROM book RIGHT JOIN price ON book.id = price.id;
Kommandoen returnerer følgende:
Årsaken er at alle radene i den høyre tabellen ble matchet med de i den andre tabellen. Hvis noen av radene ikke stemte, ville vi ha NULL i den første kolonnen.