MariaDB konzultace
Co je to MariaDB?
MariaDB je vidlička MySQL Systém pro správu databází. Je vytvořen jeho původními vývojáři. Tento nástroj DBMS nabízí možnosti zpracování dat pro malé i podnikové úlohy.
MariaDB je vylepšená verze MySQL. Dodává se s mnoha vestavěnými výkonnými funkcemi a mnoha vylepšeními použitelnosti, zabezpečení a výkonu, které nenajdete MySQL.
Zde jsou vlastnosti MariaDB:
- Funguje pod licencemi GPL, BSD nebo LGPL.
- MariaDB podporuje populární a standardní dotazovací jazyk.
- Dodává se s mnoha úložnými moduly, včetně těch vysoce výkonných, které lze integrovat s jinými systémy správy relačních databází.
- Poskytuje clusterovou technologii Galera.
- MariaDB podporuje PHP, oblíbený jazyk pro vývoj webových aplikací.
- MariaDB může běžet na různých operačních systémech a podporuje mnoho programovacích jazyků.
- MariaDB přichází s dalšími příkazy, které nejsou dostupné v MySQL. MySQL má vlastnosti, které mají negativní dopad na výkon DBMS. Tyto funkce byly nahrazeny v MariaDB.
MariaDB vs MySQL
Níže jsou uvedeny některé klíčové rozdíly mezi nimi MariaDB vs MySQL
Parametr | MariaDB | MySQL |
---|---|---|
Další možnosti pro Storage Engines | MariaDB má 12 nových úložišť, které nenajdete MySQL. | Má méně možností pro skladování ve srovnání s MariaDB. |
Vylepšení rychlosti | MariaDB vykazuje zlepšenou rychlost ve srovnání s MySQL. Dodává se s řadou funkcí pro optimalizaci rychlosti. Mezi takové funkce patří odvozené pohledy/tabulky, poddotaz, řízení provádění, přístup k disku a řízení optimalizátoru. | MySQL vykazuje nižší rychlost ve srovnání s MariaDB. Spoléhá se pouze na několik funkcí pro optimalizaci rychlosti, například hash indexy. |
Rychlejší cache/indexy | S modulem Memory Storage Engine of MariaDB, příkaz INSERT lze vyplnit o 24 % než ve standardu MySQL. | Motor úložiště paměti MySQL je ve srovnání s tím pomalejší MariaDB. |
Větší a rychlejší fond připojení | MariaDB přichází s pokročilým fondem vláken, který je schopen běžet rychleji a podporuje až 200,000 XNUMX+ připojení. | Fond vláken, který poskytuje MySQL nemůže podporovat až 200,000 XNUMX připojení za čas. |
Vylepšená replikace | In MariaDB, replikaci lze provádět bezpečněji a rychleji. Aktualizace lze také provést 2x rychleji ve srovnání s tradičními MySQL. | MySQLKomunitní vydání umožňuje připojit statický počet vláken. MySQLPodnikový plán společnosti přichází s funkcemi vláken. |
Nové funkce/rozšíření | MariaDB přichází s novými funkcemi a rozšířeními včetně příkazů JSON, WITH a KILL. | Nový MariaDB funkce nejsou poskytovány v MySQL. |
Chybějící funkce | MariaDB postrádá některé funkce, které poskytuje MySQL podnikové vydání. K vyřešení tohoto problému nabízí alternativní pluginy s otevřeným zdrojovým kódem. Proto, MariaDB uživatelé mohou využívat stejné funkce jako MySQL Uživatelé Enterprise Edition. | Enterprise Edition of MySQL používá proprietární kód. Pouze uživatelé MySQL Enterprise Edition k tomu mají přístup. |
Jak nainstalovat MariaDB
Nainstalujte jako samostatnou aplikaci
Aby bylo možné používat MariaDB, musíte si jej nainstalovat do počítače.
Instalaci lze provést podle následujících kroků:
Krok 1) Otevřít adresu URL níže
Stáhněte si instalační soubor z odkazu https://downloads.mariadb.org/
Krok 2) Double kliknutím na soubor spusťte instalaci
Po dokončení stahování otevřete soubor
Krok 3) Klikněte na tlačítko Další
V okně, které se otevře, klikněte na tlačítko Další:
Krok 4) Přijměte licenční smlouvu
Poté klikněte na tlačítko Další:
Krok 5) Vybrat MariaDB Server
Vyberte funkce, které chcete nainstalovat, a klepněte na tlačítko Další
Krok 6) Zadejte heslo
V dalším okně budete požádáni o změnu hesla pro uživatele root.
- Zadejte heslo a potvrďte jej opětovným zadáním stejného hesla. Pokud chcete povolit přístup ze vzdálených počítačů, aktivujte potřebné zaškrtávací políčko.
- Po dokončení klikněte na tlačítko Další.
Krok 7) Zadejte název a vyberte číslo portu
V dalším okně zadejte název instance, zvolte číslo portu a nastavte potřebnou velikost. Klikněte na tlačítko Další:
Krok 8) Klepněte na tlačítko Další
V dalším okně stačí kliknout na tlačítko Další.
Krok 9) Klepněte na Instalovat
Spusťte instalaci kliknutím na tlačítko Instalovat.
Krok 10) A Je zobrazen ukazatel průběhu
Zobrazí se indikátor průběhu instalace:
Krok 11) Klikněte na tlačítko Dokončit
Po dokončení instalace se zobrazí tlačítko Dokončit. Kliknutím na tlačítko zavřete okno:
Krok 12) Gratulace!
Nyní máte MariaDB v počítači.
Práce s příkazovým řádkem
Teď to máte MariaDB nainstalovaný na vašem počítači, je čas, abyste jej spustili a začali používat. To lze provést prostřednictvím MariaDB příkazový řádek.
Postupujte podle níže uvedených kroků:
Krok 1) Klikněte na Start, vyberte Všechny programy a poté klikněte MariaDB...
Krok 2) Vyberte si MariaDB Příkazový řádek.
Krok 3) Jedno MariaDB bude spuštěn příkazový řádek. Nyní je čas se přihlásit. Měli byste se přihlásit jako uživatel root a heslo, které jste nastavili během instalace MariaDB. Na příkazovém řádku zadejte následující příkaz:
MySQL -u root -p
Krok 4) Zadejte heslo a stiskněte klávesu Return. Měli byste být přihlášeni, jak je uvedeno níže:
Nyní jste přihlášeni MariaDB.
Typy dat
MariaDB podporuje následující datové typy:
- Řetězcové datové typy
- Číselné datové typy
- Typy dat datum/čas
- Datové typy velkých objektů
Datové typy řetězců
Mezi ně patří následující:
Typ dat řetězce | Description |
---|---|
znak (velikost) | Velikost udává počet znaků, které se mají uložit. Ukládá maximálně 255 znaků. Struny s pevnou délkou. |
varchar (velikost) | Velikost udává počet znaků, které se mají uložit. Ukládá maximálně 255 znaků. Řetězce s proměnnou délkou. |
velikost textu) | Velikost udává počet znaků, které se mají uložit. Ukládá maximálně 255 znaků. Struny s pevnou délkou. |
binární (velikost) | Velikost udává počet znaků, které se mají uložit. Ukládá maximálně 255 znaků. Struny s pevnou velikostí. |
Číselné datové typy
Zahrnují následující:
Číselné datové typy | Description |
---|---|
bit | Velmi malá celočíselná hodnota ekvivalentní tinyint(1). Hodnoty se znaménkem se pohybují mezi -128 a 127. Hodnoty bez znaménka se pohybují mezi 0 a 255. |
int(m) | Standardní celočíselná hodnota. Hodnoty se znaménkem se pohybují mezi -2147483648 a 2147483647. Hodnoty bez znaménka se pohybují mezi 0 a 4294967295. |
plovoucí (m, d) | Číslo s plovoucí desetinnou čárkou s jednoduchou přesností. |
dvojité (m, d) | Číslo s plovoucí desetinnou čárkou s dvojnásobnou přesností. |
plovoucí (p) | Číslo s plovoucí desetinnou čárkou. |
Typy dat data/času
Mezi ně patří následující:
Datum/čas Typ dat | Description |
---|---|
Datum | Zobrazí se ve tvaru 'rrrr-mm-dd.' Hodnoty se pohybují mezi '1000-01-01' a '9999-12-31'. |
Čas schůzky | Zobrazuje se ve tvaru 'yyyy-mm-dd hh:mm:ss'. Hodnoty se pohybují mezi '1000-01-01 00:00:00' a '9999-12-31 23:59:59'. |
časové razítko (m) | Zobrazuje se ve tvaru 'yyyy-mm-dd hh:mm:ss'. Hodnoty se pohybují mezi '1970-01-01 00:00:01' utc a '2038-01-19 03:14:07' utc. |
Čas | Zobrazuje se ve tvaru 'hh:mm:ss'. Hodnoty se pohybují mezi '-838:59:59' a '838:59:59'. |
Datové typy velkých objektů (LOB)
Zahrnují následující:
Datový typ velkého objektu | Description |
---|---|
tinyblob | Jeho maximální velikost je 255 bajtů. |
blob (velikost) | Zabere 65,535 XNUMX bajtů jako maximální velikost. |
střední blob | Jeho maximální velikost je 16,777,215 bajtů. |
dlouhý text | Jako maximální velikost bere 4 GB. |
Vytvořte databázi a tabulky
Chcete-li vytvořit novou databázi v MariaDB, měli byste mít speciální oprávnění, která jsou udělena pouze uživateli root a správcům.
Chcete-li vytvořit novou databázi, měli byste použít příkaz CREATE DATABASE, který má následující syntaxi:
CREATE DATABASE DatabaseName;
V tomto případě musíte vytvořit databázi a dát jí název Demo.
Spusťte MariaDB příkazového řádku a přihlaste se jako uživatel root zadáním následujícího příkazu:
mysql -u root -p
Zadejte heslo uživatele root a stiskněte klávesu Return. Budete přihlášeni.
Nyní spusťte následující příkaz:
CREATE DATABASE Demo;
Poté jste vytvořili databázi s názvem Demo. Bude dobré, abyste si potvrdili, zda byla databáze vytvořena úspěšně nebo ne. Stačí pouze zobrazit seznam dostupných databází spuštěním následujícího příkazu:
SHOW DATABASES;
Výše uvedený výstup ukazuje, že Demo databáze je součástí seznamu, takže databáze byla úspěšně vytvořena.
MariaDB Vyberte databázi
Abyste mohli používat konkrétní databázi nebo na ní pracovat, musíte ji vybrat ze seznamu dostupných databází. Po výběru databáze můžete provádět úkoly, jako je vytváření tabulek v rámci databáze.
Chcete-li vybrat databázi, měli byste použít příkaz USE. Využívá níže uvedenou syntaxi:
USE database_name;
Musíte použít Demo databázi. Můžete jej vybrat spuštěním následujícího příkazu:
USE Demo;
Výše uvedený obrázek ukazuje, že MariaDB příkazového řádku se změnil z žádné na název databáze, která byla vybrána.
Nyní můžete pokračovat a vytvářet tabulky v demo databázi.
MariaDB – Vytvořit tabulku
Abyste mohli vytvořit tabulku, musíte mít vybranou databázi. Tabulku lze vytvořit pomocí příkazu CREATE TABLE. Zde je syntaxe příkazu:
CREATE TABLE tableName (columnName columnType);
Jeden ze sloupců můžete nastavit jako primární klíč. Tento sloupec by neměl umožňovat hodnoty null.
V rámci Demo databáze vytvoříme dvě tabulky, Book a Price. Každá tabulka bude mít dva sloupce.
Začněme vytvořením tabulky Kniha se dvěma sloupci, id a name. Spusťte následující příkaz:
CREATE TABLE Book( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, PRIMARY KEY (id));
K nastavení sloupce id jako primárního klíče pro tabulku bylo použito omezení PRIMARY KEY. Vlastnost AUTO_INCREMENT automaticky zvýší hodnoty sloupce id o 1 pro každý nový záznam vložený do tabulky. Všechny sloupce neumožňují hodnoty null.
Nyní vytvořte druhou tabulku, tabulku cen:
CREATE TABLE Price( id INT NOT NULL AUTO_INCREMENT, price float NOT NULL, PRIMARY KEY (id));
Sloupec id byl nastaven jako primární klíč pro tabulku.
Zobrazení tabulek
Nyní, když jste vytvořili dvě tabulky, bude pro vás dobré ověřit, zda byly tabulky vytvořeny úspěšně nebo ne. Seznam tabulek obsažených v databázi můžete zobrazit spuštěním následujícího příkazu:
SHOW TABLES;
Výše uvedený snímek obrazovky ukazuje, že tyto dvě tabulky byly úspěšně vytvořeny v demo databázi.
Zobrazení struktury tabulky
Chcete-li zobrazit strukturu jakékoli konkrétní tabulky, můžete použít příkaz DESCRIBE, běžně označovaný jako DESC. Vyžaduje následující syntaxi:
DESC TableName;
Chcete-li například zobrazit strukturu tabulky s názvem Kniha, můžete spustit následující příkaz;
DESC Book;
Tabulka má dva sloupce. Chcete-li zobrazit strukturu cenové tabulky, můžete spustit následující příkaz:
DESC Price;
CRUD a klauzule
INSERT
Chcete-li vložit data do a MariaDB tabulky, měli byste použít příkaz INSERT INTO. Tento příkaz má níže uvedenou syntaxi:
INSERT INTO tableName (column_1, column_2, ... ) VALUES (value1, value2, ... ), (value1, value2, ... ), ...;
Výše uvedená syntaxe ukazuje, že musíte určit sloupce tabulky, do kterých chcete vložit data, a také data, která potřebujete vložit.
Vložíme záznam do tabulky Kniha:
INSERT INTO book (id, name) VALUES(1, 'MariaDB Book');
Do tabulky jste vložili jeden záznam. Vložte záznam do cenové tabulky:
INSERT INTO price (id, price) VALUES(1, 200);
Záznam byl vytvořen.
SELECT
Příkaz SELECT nám pomáhá zobrazit nebo zobrazit obsah databázové tabulky. Chcete-li například zobrazit obsah tabulky Kniha, musíte spustit následující příkaz:
SELECT * from book;
Nyní si prohlédněte obsah cenové tabulky:
SELECT * from price;
Vkládání více záznamů
Je možné, abychom do a MariaDB stůl za pochodem. Chcete-li to demonstrovat, spusťte následující příklad:
INSERT INTO book (id, name) VALUES (2,'MariaDB Book2'), (3,'MariaDB Book3'), (4,'MariaDB Book4'), (5,'MariaDB Book5');
V tabulce můžete zkontrolovat, zda byly záznamy úspěšně vloženy:
SELECT * FROM book;
Záznamy byly úspěšně vloženy. Spuštěním tohoto příkladu vložte více záznamů do tabulky ceny:
INSERT INTO price (id, price) VALUES (2, 250), (3, 220), (4, 190), (5, 300);
Ověřte, zda byly záznamy úspěšně vytvořeny:
SELECT * FROM price;
UPDATE
Příkaz UPDATE nám pomáhá změnit nebo upravit záznamy, které již byly do tabulky vloženy. Můžete jej zkombinovat s klauzulí WHERE a určit záznam, který má být aktualizován. Zde je syntaxe:
UPDATE tableName SET field=newValue, field2=newValue2,... [WHERE ...]
Příkaz UPDATE lze také kombinovat s klauzulemi, jako jsou SET, WHERE, LIMIT a ORDER BY. Za chvíli uvidíte toto:
Zvažte tabulku s názvem Cena s následujícími záznamy:
Změňme cenu knihy s ID 1 z 200 na 250:
UPDATE price SET price = 250 WHERE id = 1;
Příkaz proběhl úspěšně. Nyní se můžete dotázat na tabulku a zjistit, zda ke změně došlo:
Výše uvedený snímek obrazovky ukazuje, že změna byla implementována. Zvažte tabulku Book s následujícími záznamy:
Změňme název knihy s názvem Kniha na MariaDB Kniha1. Všimněte si, že kniha má id 1. Zde je příkaz:
UPDATE book SET name = “MariaDB Book1” WHERE id = 1;
Zkontrolujte, zda byla změna implementována:
Výše uvedený snímek obrazovky ukazuje, že změna byla úspěšně implementována.
Ve výše uvedených příkladech jsme změnili pouze jeden sloupec najednou. Je však možné změnit více sloupců najednou. Ukažme si to na příkladu.
Použijme cenovou tabulku s následujícími údaji:
Změňme id i cenu knihy s id 5. Změníme její id na 6 a cenu na 6. Spusťte následující příkaz:
UPDATE price SET id = 6, price = 280 WHERE id = 5;
Nyní zadejte dotaz do tabulky a zkontrolujte, zda byla změna provedena úspěšně:
Změna byla úspěšně provedena.
Vymazat
Příkaz DELETE používáme, když potřebujeme odstranit jeden nebo více záznamů z tabulky. Zde je syntaxe příkazu:
DELETE FROM tableName [WHERE condition(s)] [ORDER BY exp [ ASC | DESC ]] [LIMIT numberRows];
Zvažte cenovou tabulku s následujícími záznamy:
Musíme smazat poslední záznam z tabulky. Má id 6 a cenu 280. Smažeme záznam:
DELETE FROM price WHERE id = 6;
Příkaz proběhl úspěšně. Zkusme se dotázat na tabulku, abychom potvrdili, zda bylo smazání úspěšné:
Výstup ukazuje, že záznam byl úspěšně smazán.
Kde
Klauzule WHERE nám pomáhá určit přesné místo, kde potřebujeme provést změnu. Používá se společně s příkazy jako INSERT, SELECT, UPDATE a DELETE. Zvažte cenovou tabulku s následujícími údaji:
Předpokládejme, že potřebujeme vidět záznamy, ve kterých je cena nižší než 250. Můžeme spustit následující příkaz:
SELECT * FROM price WHERE price < 250;
Všechny záznamy, ve kterých je cena nižší než 250, byly vráceny.
Klauzuli WHERE lze kombinovat s příkazem AND. Předpokládejme, že potřebujeme vidět všechny záznamy v tabulce Price, kde je cena nižší než 250 a ID je vyšší než 3. Můžeme spustit následující příkaz:
SELECT * FROM price WHERE id > 3 AND price < 250;
Byl vrácen pouze jeden záznam. Důvodem je, že musí splňovat všechny stanovené podmínky, tedy id nad 3 a cenu pod 250. Při porušení některé z těchto podmínek se záznam nevrací.
Klauzuli lze také kombinovat s příkazem OR. Nahraďte AND v našem předchozím příkazu za NEBO a podívejme se na druh výstupu, který dostáváme:
SELECT * FROM price WHERE id > 3 OR price < 250;
Nyní dostáváme 2 záznamy místo 1. Je to proto, že pro záznam kvalifikace musí splňovat pouze jednu ze specifikovaných podmínek.
Like
Tato klauzule se používá k určení vzoru dat při přístupu k datům tabulky, ve kterých je nutná přesná shoda. Lze jej kombinovat s příkazy INSERT, UPDATE, SELECT a DELETE.
Vzorec dat, který hledáte, byste měli předat klauzuli a ta vrátí buď true, nebo false. Zde jsou zástupné znaky, které lze použít společně s klauzulí:
- %: pro shodu 0 nebo více znaků.
- _: pro shodu jednoho znaku.
Zde je syntaxe klauzule LIKE:
SELECT field_1, field_2,... FROM tableName1, tableName2,... WHERE fieldName LIKE condition;
Ukažme si, jak použít klauzuli se zástupným znakem %. Použijme tabulku Kniha s následujícími záznamy:
Musíme vidět všechny záznamy, ve kterých název začíná na M. Můžeme spustit následující příkaz:
SELECT name FROM book WHERE name LIKE 'M%';
Všechny záznamy byly vráceny, protože jejich názvy začínají písmenem M. Chcete-li zobrazit všechny názvy končící na 4, můžete spustit následující příkaz:
SELECT name FROM book WHERE name LIKE '%4';
Bylo vráceno pouze jedno jméno, protože jako jediné splňuje podmínku.
Vzor vyhledávání můžeme také obklopit zástupným znakem:
SELECT name FROM book WHERE name LIKE '%DB%';
Kromě zástupného znaku % lze klauzuli LIKE použít společně se zástupným znakem _. Toto je zástupný znak podtržítka a bude hledat pouze jeden znak.
Pojďme pracovat s tabulkou Cena s následujícími záznamy:
Pojďme zkontrolovat záznam, ve kterém je cena jako 1_0. Spustíme následující příkaz:
SELECT * FROM price WHERE price LIKE '1_0';
Vrátil záznam, ve kterém je cena 190. Můžeme také zkusit jiný vzor:
SELECT * FROM price WHERE price LIKE '_2_';
Je možné, že klauzuli LIKE použijeme společně s operátorem NOT. Tím se vrátí všechny záznamy, které nesplňují zadaný vzor. Například:
Použijme tabulku cen s následujícími záznamy:
Pojďme najít všechny záznamy, kde cena nezačíná 2:
SELECT * FROM price WHERE price NOT LIKE '2%';
Pouze jeden záznam nesplňuje zadaný vzor.
Seřadit podle
Tato klauzule nám pomáhá třídit naše záznamy ve vzestupném nebo sestupném pořadí. Používáme jej s příkazem SELECT, jak je ukázáno níže:
SELECT expression(s) FROM tables [WHERE condition(s)] ORDER BY exp [ ASC | DESC ];
Tuto klauzuli můžeme použít bez přidání části ASC nebo DESC. Například:
Použijeme cenovou tabulku s následujícími záznamy:
Spusťte následující příkaz proti tabulce:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price;
Ve výše uvedeném příkazu jsme objednali podle ceny. Záznamy byly seřazeny s cenami ve vzestupném pořadí. To znamená, že když neuvedeme pořadí, řazení se ve výchozím nastavení provádí vzestupně.
Spusťte klauzuli s volbou DESC:
SELECT * FROM price WHERE price LIKE '2%' ORDER BY price DESC;
Záznamy byly seřazeny s cenou v sestupném pořadí, jak jsme zadali.
Použijme klauzuli ORDER BY spolu s atributem ASC:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price ASC;
Záznamy byly objednány, ale s cenami ve vzestupném pořadí. Je to podobné, jako když použijeme klauzuli ORDER BY bez atributů ASC nebo DESC.
DISTINCT
Tato klauzule nám pomáhá zbavit se duplicit při výběru záznamů z tabulky. To znamená, že nám pomáhá získat jedinečné záznamy. Jeho syntaxe je uvedena níže:
SELECT DISTINCT expression(s) FROM tableName [WHERE condition(s)];
Abychom to demonstrovali, použijeme cenovou tabulku s následujícími údaji:
Když z tabulky vybereme sloupec ceny, dostaneme následující výsledek:
SELECT price FROM Price;
Máme dva záznamy s cenou 250,- vytváříme duplikát. Potřebujeme mít pouze jedinečné záznamy. Můžeme je filtrovat pomocí klauzule DISTINCT, jak je uvedeno níže:
SELECT DISTINCT price FROM Price;
Ve výše uvedeném výstupu nyní nemáme žádné duplikáty.
od
Klauzule FROM používaná pro načítání dat z databázové tabulky. Může také pomoci při spojování stolů. Zde je syntaxe příkazu:
SELECT columnNames FROM tableName;
Chcete-li zobrazit obsah tabulky knihy, spusťte následující příkaz:
SELECT * FROM price;
Klauzule vám může pomoci načíst pouze jeden sloupec z databázové tabulky. Například:
SELECT price FROM Price;
Pokročilé úkoly
Uložené procedury
Postup je a MariaDB program, kterému můžete předávat parametry. Procedura nevrací hodnoty. K vytvoření procedury použijeme příkaz CREATE PROCEDURE.
Abychom předvedli, jak vytvořit a volat proceduru, vytvoříme proceduru s názvem myProcedure(), která nám pomůže vybrat sloupec názvu z tabulky knihy. Zde je postup:
DELIMITER $ CREATE PROCEDURE myProcedure() BEGIN SELECT name FROM book; END; ;
Postup byl vytvořen. Příkaz SELECT jsme jednoduše uzavřeli do klauzulí BEGIN a END procedury.
Nyní můžeme proceduru nazvat jejím jménem, jak je uvedeno níže:
CALL myProcedure();
Procedura při volání vrací sloupec názvu tabulky knihy.
Můžeme vytvořit proceduru, která přebírá parametr. Potřebujeme například vybrat název knihy a filtrovat pomocí ID knihy. K tomu můžeme vytvořit následující postup:
DELIMITER $ CREATE PROCEDURE myProcedure2(book_id int) BEGIN SELECT name FROM book WHERE id = book_id; END; ;
Výše jsme vytvořili proceduru s názvem myProcedure2(). Tento postup přebírá jeden celočíselný parametr s názvem book_id, což je id knihy, jejíž jméno potřebujeme vidět. Abychom viděli název knihy s ID 3, můžeme proceduru zavolat následovně:
CALL myProcedure2(3);
funkce
Na rozdíl od procedur musíme funkcím předávat parametry a funkce musí vracet hodnotu. Chcete-li vytvořit funkci v MariaDB, použijeme příkaz CREATE FUNCTION. Příkaz má následující syntaxi:
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;
Výše uvedené parametry jsou popsány níže:
Parametr | Description |
---|---|
klauzule DEFINER | Tento parametr je volitelný. Pokud jej nezadáte, definujícím se stane uživatel, který funkci vytvořil. Pokud je potřeba zadat jiný definující prvek, zahrňte klauzuli DEFINER, ve které bude uživatelské_jméno definicí funkce. |
název_funkce | Název, který má být přiřazen této funkci v MariaDB. |
parametr | Parametr(y) předaný funkci. Při vytváření funkce se se všemi parametry zachází jako IN parametry (spíše než parametry OUT/INOUT). |
return_datatype | Datový typ návratové hodnoty funkce. |
JAZYK SQL | Ovlivňuje přenosnost, ale ne funkci. |
DETERMINISTICKÝ | Funkce vrátí jeden výsledek, pouze pokud je zadán počet parametrů. |
NENÍ DETERMINISTICKÉ | Je možné, že funkce vrátí jiný výsledek, když je zadán určitý počet parametrů. |
OBSAHUJE SQL | Informuje MariaDB že tato funkce obsahuje SQL. Databáze neověří, zda je to pravda. |
ŽÁDNÉ SQL | Tato klauzule se nepoužívá a nemá žádný vliv na vaši funkci. |
ČTE DATA SQL | Řekne MariaDB že tato funkce bude používat příkazy SELECT ke čtení dat, ale data nezmění. |
UPRAVUJE DATA SQL | Řekne MariaDB že tato funkce bude používat INSERT, DELETE, UPDATE a další DDL příkazy pro úpravu dat SQL. |
prohlášení-sekce | Zde by měly být deklarovány lokální proměnné. |
spustitelný-sekce | Zde by měl být přidán kód funkce. |
Zde je příklad MariaDB funkce:
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 ;
Výše uvedenou funkci pak můžeme zavolat následovně:
select sumFunc(1000);
Příkaz vrátí následující:
Jakmile s funkcí skončíte, bude pro vás dobré ji smazat. To je snadné, protože stačí zavolat příkaz DROP FUNCTION, který má následující syntaxi:
DROP FUNCTION function_name;
Chcete-li například zrušit funkci s názvem myFunc, můžeme spustit následující příkaz:
DROP FUNCTION myFunc;
REGISTRACE
Pokud potřebujete načíst data z více než jedné tabulky najednou, použijte MariaDB PŘIPOJÍ SE. To znamená, že a REGISTRACE pracuje na dvou nebo více stolech. Jsou podporovány následující tři typy JOINS MariaDB:
- VNITŘNÍ/JEDNODUCHÉ SPOJENÍ
- LEFT OUTER JOIN/LEFT JOIN
- PRAVÉ VNĚJŠÍ SPOJENÍ/PRAVÉ SPOJENÍ
Pojďme si je probrat jeden po druhém:
INNER JOIN
Vnitřní spojení vrátí všechny řádky z tabulek, ve kterých je podmínka spojení pravdivá. Jeho syntaxe je následující:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
Například:
Použijeme naše dva stoly, knihy a knihu.
Tabulka knihy obsahuje následující údaje:
Cenová tabulka obsahuje následující údaje:
Cílem je spojit sloupec s názvem z tabulky Kniha a sloupec s cenou z tabulky Cena do jedné tabulky. To je možné pomocí vnitřního spojení, jak je ukázáno níže:
SELECT book.name, price.price FROM book INNER JOIN price ON book.id = price.id;
Příkaz vrátí následující:
LEVÁ VNĚJŠÍ SPOJENÍ
Toto spojení vrátí všechny řádky z levé tabulky a pouze řádky, ve kterých je podmínka spojení pravdivá z druhé tabulky. Jeho syntaxe je následující:
SELECT columns FROM table-1 LEFT [OUTER] JOIN table-2 ON table-1.column = table-2.column;
Klíčové slovo OUTER bylo umístěno do hranatých závorek, protože je nepovinné.
Například:
SELECT book.name, price.price FROM book LEFT JOIN price ON book.id = price.id;
Příkaz vrátí následující:
Poslední záznam ve výše uvedené tabulce nemá vlevo žádnou odpovídající hodnotu. Proto byl nahrazen NULL.
PRAVÝ VNĚJŠÍ SPOJ
Toto spojení vrátí všechny řádky z tabulky napravo a pouze řádky, ve kterých je podmínka spojení pravdivá, z druhé tabulky. Jeho syntaxe je následující:
SELECT columns FROM table-1 RIGHT [OUTER] JOIN table-2 ON table-1.column = table-2.column;
Klíčové slovo OUTER bylo umístěno do hranatých závorek, protože je nepovinné.
Například:
SELECT book.name, price.price FROM book RIGHT JOIN price ON book.id = price.id;
Příkaz vrátí následující:
Důvodem je, že všechny řádky v tabulce vpravo byly spárovány s řádky v druhé tabulce. Pokud by se některé řádky neshodovaly, měli bychom v prvním sloupci hodnoty NULL.