MariaDB Poradnik
Czym jest MariaDB?
MariaDB jest widelcem MySQL system zarządzania bazą danych. Jest tworzony przez oryginalnych twórców. To narzędzie DBMS oferuje możliwości przetwarzania danych zarówno dla zadań małych, jak i korporacyjnych.
MariaDB jest ulepszoną wersją MySQL. Zawiera wiele wbudowanych, potężnych funkcji oraz wiele ulepszeń użyteczności, bezpieczeństwa i wydajności, których nie można znaleźć MySQL.
Oto cechy MariaDB:
- Działa na podstawie licencji GPL, BSD lub LGPL.
- MariaDB obsługuje popularny i standardowy język zapytań.
- Jest wyposażony w wiele silników pamięci masowej, w tym te o wysokiej wydajności, które można zintegrować z innymi systemami zarządzania relacyjnymi bazami danych.
- Dostarcza technologię klastra Galera.
- MariaDB obsługuje PHP, popularny język do tworzenia stron internetowych.
- MariaDB może działać na różnych systemach operacyjnych i obsługuje wiele języków programowania.
- MariaDB zawiera dodatkowe polecenia, które nie są dostępne w MySQL. MySQL posiada cechy, które mają negatywny wpływ na wydajność SZBD. Takie funkcje zostały zastąpione w MariaDB.
MariaDB vs MySQL
Poniżej znajduje się kilka kluczowych różnic między MariaDB vs MySQL
Parametr | MariaDB | MySQL |
---|---|---|
Więcej opcji dla silników pamięci masowej | MariaDB ma 12 nowych silników przechowywania, w których nie znajdziesz MySQL. | Ma mniej opcji przechowywania w porównaniu do MariaDB. |
Ulepszenia prędkości | MariaDB wykazuje lepszą prędkość w porównaniu do MySQL. Zawiera wiele funkcji optymalizujących prędkość. Takie funkcje obejmują widoki/tabele pochodne, podzapytania, kontrolę wykonania, dostęp do dysku i kontrolę optymalizatora. | MySQL wykazuje mniejszą prędkość w porównaniu do MariaDB. Opiera się tylko na kilku funkcjach optymalizacji prędkości, na przykład indeksach skrótu. |
Szybsza pamięć podręczna/indeksy | Dzięki silnikowi przechowywania pamięci firmy MariaDB, instrukcję INSERT można wypełnić w 24% niż w standardzie MySQL. | Silnik przechowywania pamięci MySQL jest wolniejszy w porównaniu z tym MariaDB. |
Większa i szybsza pula połączeń | MariaDB jest wyposażony w zaawansowaną pulę wątków, która może działać szybciej i obsługiwać do 200,000 XNUMX+ połączeń. | Pula wątków udostępniana przez MySQL nie może obsłużyć do 200,000 XNUMX połączeń na raz. |
Ulepszona replikacja | In MariaDBreplikację można przeprowadzić bezpieczniej i szybciej. Aktualizacje można także przeprowadzać 2x szybciej w porównaniu do wersji tradycyjnej MySQL. | MySQLWersja społecznościowa pozwala na połączenie statycznej liczby wątków. MySQLplan korporacyjny zawiera funkcje wątków. |
Nowe funkcje/rozszerzenia | MariaDB zawiera nowe funkcje i rozszerzenia, w tym instrukcje JSON, WITH i KILL. | Nowa MariaDB funkcje nie są dostępne w MySQL. |
Brakujące funkcje | MariaDB brakuje niektórych funkcji zapewnianych przez MySQL wydanie korporacyjne. Aby rozwiązać ten problem, oferuje alternatywne wtyczki typu open source. Stąd, MariaDB użytkownicy mogą cieszyć się tymi samymi funkcjonalnościami, co MySQL Użytkownicy wersji Enterprise. | Wersja dla przedsiębiorstw MySQL używa zastrzeżonego kodu. Tylko użytkownicy MySQL Wersja Enterprise ma do tego dostęp. |
Jak zainstalować MariaDB
Zainstaluj jako samodzielną aplikację
W celu wykorzystania MariaDB, musisz zainstalować go na swoim komputerze.
Instalację można przeprowadzić wykonując poniższe kroki:
Krok 1) Otwórz poniższy adres URL
Pobierz plik instalacyjny z łącza https://downloads.mariadb.org/
Krok 2) Double kliknij plik, aby rozpocząć instalację
Po zakończeniu pobierania otwórz plik
Krok 3) Kliknij przycisk Dalej
W wyskakującym oknie kliknij przycisk Dalej:
Krok 4) Zaakceptuj umowę licencyjną
Następnie kliknij przycisk Dalej:
Krok 5) Dodaj MariaDB
Wybierz funkcje, które mają zostać zainstalowane, i kliknij Dalej
Krok 6) Podaj hasło
W następnym oknie konieczna będzie zmiana hasła użytkownika root.
- Wprowadź hasło i potwierdź je, wpisując ponownie to samo hasło. Jeśli chcesz zezwolić na dostęp z komputerów zdalnych, zaznacz odpowiednie pole wyboru.
- Po zakończeniu kliknij przycisk Dalej.
Krok 7) Wprowadź nazwę i wybierz numer portu
W kolejnym oknie wpisz nazwę instancji, wybierz numer portu i ustaw wymagany rozmiar. Kliknij przycisk Dalej:
Krok 8) Kliknij Dalej
W następnym oknie wystarczy kliknąć przycisk Dalej.
Krok 9) Kliknij Zainstaluj
Uruchom instalację, klikając przycisk Instaluj.
Krok 10) Pokazano pasek postępu
Wyświetli się pasek postępu pokazujący postęp instalacji:
Krok 11) Kliknij przycisk Zakończ
Po zakończeniu instalacji zobaczysz przycisk Zakończ. Kliknij przycisk, aby zamknąć okno:
Krok 12) Gratulacje!
Masz teraz MariaDB zainstalowane na twoim komputerze.
Praca z wierszem poleceń
Teraz, kiedy już masz MariaDB zainstalowany na Twoim komputerze, nadszedł czas, abyś go uruchomił i zaczął z niego korzystać. Można to zrobić poprzez MariaDB wiersz polecenia.
Wykonaj poniższe kroki:
Krok 1) Kliknij Start, wybierz Wszystkie programy i kliknij MariaDB...
Krok 2) Wybierz MariaDB Wiersz polecenia.
Krok 3) MariaDB zostanie uruchomiony wiersz poleceń. Nadszedł czas na zalogowanie się. Należy zalogować się jako użytkownik root i podać hasło ustawione podczas instalacji MariaDB. Wpisz następujące polecenie w wierszu poleceń:
MySQL -u root -p
Krok 4) Wprowadź hasło i naciśnij klawisz Return. Powinieneś być zalogowany, jak pokazano poniżej:
Jesteś teraz zalogowany MariaDB.
Typy danych
MariaDB obsługuje następujące typy danych:
- Ciągowe typy danych
- Liczbowe typy danych
- Typy danych daty/godziny
- Typy danych dużych obiektów
Typy danych łańcuchowych
Należą do nich:
Typ danych ciągu | Opisy Konstrukcyjne |
---|---|
znak (rozmiar) | Rozmiar oznacza liczbę znaków do zapisania. Przechowuje maksymalnie 255 znaków. Struny o stałej długości. |
varchar (rozmiar) | Rozmiar oznacza liczbę znaków do zapisania. Przechowuje maksymalnie 255 znaków. Struny o zmiennej długości. |
rozmiar czcionki) | Rozmiar oznacza liczbę znaków do zapisania. Przechowuje maksymalnie 255 znaków. Struny o stałej długości. |
binarny (rozmiar) | Rozmiar oznacza liczbę znaków do zapisania. Przechowuje maksymalnie 255 znaków. Struny o stałym rozmiarze. |
Numeryczne typy danych
Obejmują one:
Numeryczne typy danych | Opisy Konstrukcyjne |
---|---|
bit | Bardzo mała wartość całkowita odpowiadająca tinyint(1). Wartości ze znakiem mieszczą się w zakresie od -128 do 127. Wartości bez znaku mieszczą się w zakresie od 0 do 255. |
cal(m) | Standardowa wartość całkowita. Wartości ze znakiem mieszczą się w zakresie od -2147483648 do 2147483647. Wartości bez znaku mieszczą się w zakresie od 0 do 4294967295. |
pływak (m, d) | Liczba zmiennoprzecinkowa z pojedynczą precyzją. |
podwójny(m,d) | Liczba zmiennoprzecinkowa o podwójnej precyzji. |
pływak (p) | Liczba zmiennoprzecinkowa. |
Typy danych daty/godziny
Należą do nich:
Typ danych daty/godziny | Opisy Konstrukcyjne |
---|---|
Data | Wyświetlane w formacie „rrrr-mm-dd”. Wartości mieszczą się w zakresie od „1000-01-01” do „9999-12-31”. |
Datetime | Wyświetlane w formacie 'yyyy-mm-dd hh:mm:ss'. Wartości mieszczą się w zakresie od '1000-01-01 00:00:00' do '9999-12-31 23:59:59'. |
znacznik czasu (m) | Wyświetlane w formacie 'yyyy-mm-dd hh:mm:ss'. Wartości mieszczą się w zakresie od '1970-01-01 00:00:01' utc do '2038-01-19 03:14:07' utc. |
Czas | Wyświetlane w formie 'hh:mm:ss'. Wartości mieszczą się w zakresie od '-838:59:59' do '838:59:59'. |
Typy danych dużych obiektów (LOB)
Obejmują one:
Typ danych dużego obiektu | Opisy Konstrukcyjne |
---|---|
mała kropelka | Jego maksymalny rozmiar to 255 bajtów. |
kropelka (rozmiar) | Maksymalny rozmiar wynosi 65,535 XNUMX bajtów. |
średnia plama | Jego maksymalny rozmiar to 16,777,215 bajtów. |
długi tekst | Maksymalny rozmiar to 4 GB. |
Utwórz bazę danych i tabele
Aby utworzyć nową bazę danych w MariaDB, powinieneś mieć specjalne uprawnienia, które są przyznawane tylko użytkownikowi root i administratorom.
Aby utworzyć nową bazę danych, należy użyć polecenia CREATE DATABASE o następującej składni:
CREATE DATABASE DatabaseName;
W takim przypadku musisz stworzyć bazę danych i nadać jej nazwę Demo.
Zacząć MariaDB wiersza poleceń i zaloguj się jako użytkownik root, wpisując następujące polecenie:
mysql -u root -p
Wpisz hasło roota i naciśnij klawisz Return. Zostaniesz zalogowany.
Teraz uruchom następujące polecenie:
CREATE DATABASE Demo;
Następnie utworzyłeś bazę danych o nazwie Demo. Dobrze będzie, jeśli potwierdzisz, czy baza danych została utworzona pomyślnie, czy nie. Musisz tylko wyświetlić listę dostępnych baz danych, uruchamiając następujące polecenie:
SHOW DATABASES;
Powyższe dane wyjściowe pokazują, że baza danych Demo jest częścią listy, dlatego baza danych została utworzona pomyślnie.
MariaDB Wybierz bazę danych
Aby móc korzystać lub pracować na konkretnej bazie danych, należy ją wybrać z listy dostępnych baz danych. Po wybraniu bazy danych można wykonywać takie zadania, jak tworzenie tabel w bazie danych.
Aby wybrać bazę danych należy użyć komendy USE. Przyjmuje składnię podaną poniżej:
USE database_name;
Musisz użyć bazy danych Demo. Możesz ją wybrać, uruchamiając następujące polecenie:
USE Demo;
Powyższe zdjęcie pokazuje, że MariaDB wiersz polecenia zmienił się z „brak” na nazwę wybranej bazy danych.
Możesz teraz śmiało tworzyć tabele w bazie danych Demo.
MariaDB – Utwórz tabelę
Aby móc utworzyć tabelę, musisz wybrać bazę danych. Tabelę można utworzyć za pomocą instrukcji CREATE TABLE. Oto składnia polecenia:
CREATE TABLE tableName (columnName columnType);
Możesz ustawić jedną z kolumn jako klucz podstawowy. Ta kolumna nie powinna zezwalać na wartości null.
Utworzymy dwie tabele w bazie danych Demo, tabelach Book i Cen. Każda tabela będzie miała dwie kolumny.
Zacznijmy od utworzenia tabeli Book z dwiema kolumnami, id i name. Uruchom następujące polecenie:
CREATE TABLE Book( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, PRIMARY KEY (id));
Zastosowano ograniczenie PRIMARY KEY, aby ustawić kolumnę id jako klucz podstawowy tabeli. Właściwość AUTO_INCREMENT automatycznie zwiększy wartość kolumny id o 1 dla każdego nowego rekordu wstawionego do tabeli. Wszystkie kolumny nie dopuszczają wartości null.
Teraz utwórz drugą tabelę, tabelę cen:
CREATE TABLE Price( id INT NOT NULL AUTO_INCREMENT, price float NOT NULL, PRIMARY KEY (id));
Kolumna id została ustawiona jako klucz podstawowy tabeli.
Pokazywanie tabel
Teraz, gdy utworzyłeś dwie tabele, dobrze będzie, jeśli sprawdzisz, czy tabele zostały utworzone pomyślnie, czy nie. Możesz wyświetlić listę tabel zawartych w bazie danych, uruchamiając następujące polecenie:
SHOW TABLES;
Powyższy zrzut ekranu pokazuje, że dwie tabele zostały pomyślnie utworzone w bazie danych Demo.
Pokazywanie struktury tabeli
Aby zobaczyć strukturę dowolnej tabeli, możesz użyć polecenia DESCRIBE, powszechnie skracanego jako DESC. Przyjmuje ono następującą składnię:
DESC TableName;
Na przykład, aby zobaczyć strukturę tabeli o nazwie Książka, możesz uruchomić następujące polecenie:
DESC Book;
Tabela ma dwie kolumny. Aby zobaczyć strukturę tabeli Price, możesz uruchomić następujące polecenie:
DESC Price;
CRUD i klauzule
INSERT
Aby wstawić dane do pliku a MariaDB tabeli, powinieneś użyć instrukcji INSERT INTO. To polecenie przyjmuje składnię podaną poniżej:
INSERT INTO tableName (column_1, column_2, ... ) VALUES (value1, value2, ... ), (value1, value2, ... ), ...;
Powyższa składnia pokazuje, że musisz określić kolumny tabeli, do których chcesz wstawić dane, a także dane, które chcesz wstawić.
Wstawmy rekord do tabeli Book:
INSERT INTO book (id, name) VALUES(1, 'MariaDB Book');
Wstawiłeś pojedynczy rekord do tabeli. Wstaw rekord do tabeli cen:
INSERT INTO price (id, price) VALUES(1, 200);
Rekord został utworzony.
SELECT
Polecenie SELECT pomaga nam przeglądać lub zobaczyć zawartość tabeli bazy danych. Aby zobaczyć zawartość tabeli Book, na przykład, musisz uruchomić następujące polecenie:
SELECT * from book;
Teraz przejrzyj zawartość tabeli cen:
SELECT * from price;
Wstawianie wielu rekordów
Możliwe jest wstawienie wielu rekordów do pliku MariaDB tabela na raz. Aby to zademonstrować, uruchom następujący przykład:
INSERT INTO book (id, name) VALUES (2,'MariaDB Book2'), (3,'MariaDB Book3'), (4,'MariaDB Book4'), (5,'MariaDB Book5');
Możesz wysłać zapytanie do tabeli, aby sprawdzić, czy rekordy zostały pomyślnie wstawione:
SELECT * FROM book;
Rekordy zostały pomyślnie wstawione. Wstaw wiele rekordów do tabeli cen, uruchamiając ten przykład:
INSERT INTO price (id, price) VALUES (2, 250), (3, 220), (4, 190), (5, 300);
Sprawdźmy, czy rekordy zostały pomyślnie utworzone:
SELECT * FROM price;
Aktualizacja
Polecenie UPDATE pomaga nam zmienić lub zmodyfikować rekordy, które zostały już wstawione do tabeli. Można ją połączyć z klauzulą WHERE, aby określić rekord, który ma zostać zaktualizowany. Oto składnia:
UPDATE tableName SET field=newValue, field2=newValue2,... [WHERE ...]
Polecenie UPDATE można także łączyć z klauzulami takimi jak SET, WHERE, LIMIT i ORDER BY. Wkrótce to zobaczysz:
Rozważmy tabelę o nazwie Cena zawierającą następujące rekordy:
Zmieńmy cenę książki o identyfikatorze 1 z 200 na 250:
UPDATE price SET price = 250 WHERE id = 1;
Komenda została wykonana pomyślnie. Możesz teraz wysłać zapytanie do tabeli, aby sprawdzić, czy zmiana miała miejsce:
Powyższy zrzut ekranu pokazuje, że zmiana została zaimplementowana. Rozważ tabelę Book z następującymi rekordami:
Zmieńmy nazwę książki o nazwie Książka na MariaDB Książka 1. Zauważ, że książka ma identyfikator 1. Oto polecenie:
UPDATE book SET name = “MariaDB Book1” WHERE id = 1;
Sprawdź, czy zmiana została wdrożona:
Powyższy zrzut ekranu pokazuje, że zmiana została pomyślnie wdrożona.
W powyższych przykładach zmienialiśmy tylko jedną kolumnę na raz. Istnieje jednak możliwość jednoczesnej zmiany wielu kolumn. Zademonstrujmy to na przykładzie.
Użyjmy tabeli cen z następującymi danymi:
Zmieńmy zarówno identyfikator, jak i cenę książki, nadając jej identyfikator 5. Zmienimy jej identyfikator na 6, a cenę na 6. Uruchom następujące polecenie:
UPDATE price SET id = 6, price = 280 WHERE id = 5;
Teraz wykonaj zapytanie do tabeli, aby sprawdzić, czy zmiana została pomyślnie dokonana:
Zmiana została wprowadzona pomyślnie.
Usuń
Polecenie DELETE używamy, gdy chcemy usunąć jeden lub wiele rekordów z tabeli. Oto składnia polecenia:
DELETE FROM tableName [WHERE condition(s)] [ORDER BY exp [ ASC | DESC ]] [LIMIT numberRows];
Rozważ tabelę cen zawierającą następujące rekordy:
Musimy usunąć ostatni rekord z tabeli. Ma identyfikator 6 i cenę 280. Usuńmy rekord:
DELETE FROM price WHERE id = 6;
Komenda została wykonana pomyślnie. Zapytajmy tabelę, czy usunięcie się powiodło:
Dane wyjściowe pokazują, że rekord został pomyślnie usunięty.
Gdzie
Klauzula WHERE pomaga nam określić dokładną lokalizację, w której musimy dokonać zmiany. Jest używana razem z poleceniami takimi jak INSERT, SELECT, UPDATE i DELETE. Rozważmy tabelę Price z następującymi danymi:
Załóżmy, że musimy zobaczyć rekordy, w których cena jest mniejsza niż 250. Możemy uruchomić następujące polecenie:
SELECT * FROM price WHERE price < 250;
Wszystkie rekordy, w których cena jest niższa niż 250 zostały zwrócone.
Klauzulę WHERE można połączyć z poleceniem AND. Załóżmy, że chcemy zobaczyć wszystkie rekordy w tabeli Price, w których cena jest poniżej 250, a id jest powyżej 3. Możemy uruchomić następujące polecenie:
SELECT * FROM price WHERE id > 3 AND price < 250;
Zwrócono tylko jeden rekord. Powodem jest to, że musi spełniać wszystkie określone warunki, czyli id powyżej 3 i cenę poniżej 250. W przypadku naruszenia któregokolwiek z tych warunków, rekord nie zostanie zwrócony.
Klauzulę można także połączyć z poleceniem OR. Zamieńmy AND w naszym poprzednim poleceniu na OR i zobaczmy, jaki wynik otrzymamy:
SELECT * FROM price WHERE id > 3 OR price < 250;
Otrzymujemy teraz 2 rekordy zamiast 1. Dzieje się tak dlatego, że aby rekord kwalifikacji mógł spełnić tylko jeden z określonych warunków.
Jak
Ta klauzula służy do określenia wzorca danych podczas uzyskiwania dostępu do danych tabeli, w których konieczne jest dokładne dopasowanie. Można je łączyć z instrukcjami INSERT, UPDATE, SELECT i DELETE.
Powinieneś przekazać do klauzuli wzorzec danych, których szukasz, a zwróci ona wartość true lub false. Oto znaki wieloznaczne, których można używać razem z klauzulą:
- %: dla dopasowania 0 lub więcej znaków.
- _: do dopasowania pojedynczego znaku.
Oto składnia klauzuli LIKE:
SELECT field_1, field_2,... FROM tableName1, tableName2,... WHERE fieldName LIKE condition;
Pokażmy, jak używać klauzuli ze znakiem wieloznacznym %. Użyjmy tabeli Book z następującymi rekordami:
Musimy zobaczyć wszystkie rekordy, w których nazwa zaczyna się od litery M. Możemy uruchomić następujące polecenie:
SELECT name FROM book WHERE name LIKE 'M%';
Zwrócono wszystkie rekordy, ponieważ ich nazwy zaczynają się na literę M. Aby zobaczyć wszystkie nazwy kończące się na 4, możesz uruchomić następujące polecenie:
SELECT name FROM book WHERE name LIKE '%4';
Zwrócono tylko jedno imię, ponieważ jako jedyne spełnia ono warunek.
Możemy również otoczyć wzorzec wyszukiwania symbolem wieloznacznym:
SELECT name FROM book WHERE name LIKE '%DB%';
Oprócz symbolu wieloznacznego % klauzula LIKE może być używana razem z symbolem wieloznacznym _. Jest to znak wieloznaczny podkreślenia, który będzie wyszukiwał tylko jeden znak.
Pracujmy z tabelą cen z następującymi rekordami:
Sprawdźmy rekord, w którym cena jest taka jak 1_0. Uruchomimy następujące polecenie:
SELECT * FROM price WHERE price LIKE '1_0';
Wrócił rekord w którym cena wynosi 190. Możemy też spróbować innego wzoru:
SELECT * FROM price WHERE price LIKE '_2_';
Możliwe jest użycie klauzuli LIKE razem z operatorem NOT. Zwróci to wszystkie rekordy, które nie spełniają określonego wzorca. Na przykład:
Użyjmy tabeli cen z następującymi rekordami:
Znajdźmy wszystkie rekordy, w których cena nie zaczyna się od 2:
SELECT * FROM price WHERE price NOT LIKE '2%';
Tylko jeden rekord nie jest zgodny z określonym wzorcem.
Zamów przez
Klauzula ta pomaga nam uporządkować nasze dane w kolejności rosnącej lub malejącej. Używamy go z instrukcją SELECT, jak pokazano poniżej:
SELECT expression(s) FROM tables [WHERE condition(s)] ORDER BY exp [ ASC | DESC ];
Możliwe jest użycie tej klauzuli bez dodawania części ASC lub DESC. Na przykład:
Użyjemy tabeli cen z następującymi rekordami:
Uruchom następujące polecenie dla tabeli:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price;
W powyższym poleceniu zamawialiśmy według ceny. Rekordy zostały uporządkowane według cen rosnących. Oznacza to, że jeśli nie określimy kolejności, domyślnie sortowanie odbywa się w kolejności rosnącej.
Uruchommy klauzulę z opcją DESC:
SELECT * FROM price WHERE price LIKE '2%' ORDER BY price DESC;
Rekordy zostały posortowane według ceny w kolejności malejącej, tak jak to określiliśmy.
Użyjmy klauzuli ORDER BY razem z atrybutem ASC:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price ASC;
Płyty zostały uporządkowane, ale z cenami rosnącymi. Przypomina to sytuację, gdy używamy klauzuli ORDER BY bez atrybutów ASC lub DESC.
DISTINCT
Ta klauzula pomaga nam wyeliminować duplikaty podczas wybierania rekordów z tabeli. Oznacza to, że pomaga nam zdobywać unikalne rekordy. Jego składnia jest podana poniżej:
SELECT DISTINCT expression(s) FROM tableName [WHERE condition(s)];
Aby to zademonstrować, wykorzystamy tabelę cen zawierającą następujące dane:
Wybierając kolumnę ceny z tabeli, otrzymamy następujący wynik:
SELECT price FROM Price;
Mamy dwie płyty z ceną 250, tworząc duplikat. Musimy mieć tylko unikalne rekordy. Możemy je filtrować za pomocą klauzuli DISTINCT, jak pokazano poniżej:
SELECT DISTINCT price FROM Price;
Nie mamy teraz żadnych duplikatów w powyższych wynikach.
Cena Od
Klauzula FROM używana do pobierania danych z tabeli bazy danych. Może być również pomocny podczas łączenia stołów. Oto składnia polecenia:
SELECT columnNames FROM tableName;
Aby zobaczyć zawartość tabeli książek, uruchom następujące polecenie:
SELECT * FROM price;
Klauzula może pomóc w pobraniu tylko jednej kolumny z tabeli bazy danych. Na przykład:
SELECT price FROM Price;
Zaawansowane zadania
Procedura składowana
Procedura to: MariaDB program, do którego można przekazywać parametry. Procedura nie zwraca wartości. Aby utworzyć procedurę, używamy polecenia CREATE PROCEDURE.
Aby zademonstrować, jak utworzyć i wywołać procedurę, utworzymy procedurę o nazwie myProcedure(), która pomoże nam wybrać kolumnę nazwy z tabeli książki. Oto procedura:
DELIMITER $ CREATE PROCEDURE myProcedure() BEGIN SELECT name FROM book; END; ;
Procedura została utworzona. Po prostu umieściliśmy instrukcję SELECT w klauzulach BEGIN i END procedury.
Teraz możemy wywołać procedurę po nazwie, jak pokazano poniżej:
CALL myProcedure();
Procedura po wywołaniu zwraca kolumnę nazwy tabeli książki.
Możemy utworzyć procedurę, która przyjmuje parametr. Na przykład musimy wybrać nazwę książki i filtrować za pomocą identyfikatora książki. Możemy utworzyć następującą procedurę w tym celu:
DELIMITER $ CREATE PROCEDURE myProcedure2(book_id int) BEGIN SELECT name FROM book WHERE id = book_id; END; ;
Powyżej stworzyliśmy procedurę o nazwie myProcedure2(). Ta procedura przyjmuje jeden parametr typu całkowitego o nazwie book_id, który jest identyfikatorem książki, której nazwę musimy zobaczyć. Aby zobaczyć nazwę książki o identyfikatorze 3, możemy wywołać procedurę w następujący sposób:
CALL myProcedure2(3);
Funkcjonować
W przeciwieństwie do procedur, musimy przekazywać parametry do funkcji, a funkcja musi zwracać wartość. Aby utworzyć funkcję w MariaDB, używamy instrukcji CREATE FUNCTION. Instrukcja przyjmuje następującą składnię:
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;
Powyższe parametry opisano poniżej:
Parametr | Opisy Konstrukcyjne |
---|---|
Klauzula DEFINER | Ten parametr jest opcjonalny. Jeśli tego nie określisz, osobą definiującą stanie się użytkownik, który utworzył funkcję. Jeżeli zaistnieje potrzeba określenia innego definicji, należy dołączyć klauzulę DEFINER, w której nazwa_użytkownika będzie definicją funkcji. |
nazwa_funkcji | Nazwa, która ma być przypisana tej funkcji w pliku MariaDB. |
parametr | Parametr(y) przekazany do funkcji. Podczas tworzenia funkcji wszystkie parametry traktowane są jako Parametry IN (zamiast parametrów OUT/INOUT). |
typ_danych_powrotu | Typ danych wartości zwracanej przez funkcję. |
JĘZYKSQL | Wpływa to na przenośność, ale nie na funkcję. |
DETERMINISTYCZNY | Funkcja zwróci jeden wynik tylko wtedy, gdy zostanie podana liczba parametrów. |
NIE DETERMINISTYCZNY | Funkcja może zwrócić inny wynik, jeśli podana zostanie liczba parametrów. |
ZAWIERA SQL | Informuje MariaDB że ta funkcja zawiera SQL. Baza nie zweryfikuje, czy to prawda. |
BEZ SQL | Klauzula ta nie jest używana i nie ma wpływu na Twoją funkcję. |
CZYTA DANYCH SQL | mówi MariaDB że ta funkcja użyje instrukcji SELECT do odczytania danych, ale nie zmodyfikuje danych. |
MODYFIKUJE DANYCH SQL | mówi MariaDB że ta funkcja będzie używać INSERT, DELETE, UPDATE i innych DDL instrukcje modyfikujące dane SQL. |
sekcja deklaracji | W tym miejscu należy zadeklarować zmienne lokalne. |
sekcja wykonywalna | Należy tu dodać kod funkcji. |
Oto przykład MariaDB funkcjonować:
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 ;
Następnie możemy wywołać powyższą funkcję w następujący sposób:
select sumFunc(1000);
Polecenie zwróci następującą informację:
Gdy skończysz z funkcją, dobrze będzie ją usunąć. Jest to proste, ponieważ wystarczy wywołać instrukcję DROP FUNCTION, która przyjmuje następującą składnię:
DROP FUNCTION function_name;
Na przykład, aby usunąć funkcję o nazwie myFunc, możemy uruchomić następujące polecenie:
DROP FUNCTION myFunc;
DOŁĄCZ
Jeśli chcesz pobrać dane z więcej niż jednej tabeli jednocześnie, użyj MariaDB DOŁĄCZA. Oznacza to, że DOŁĄCZ działa na dwóch lub więcej tabelach. Obsługiwane są następujące trzy typy JOINS MariaDB:
- POŁĄCZENIE WEWNĘTRZNE/PROSTE
- LEWE POŁĄCZENIE ZEWNĘTRZNE/POŁĄCZENIE LEWE
- PRAWE POŁĄCZENIE ZEWNĘTRZNE/PRAWE POŁĄCZENIE
Omówmy je jeden po drugim:
INNER JOIN
Sprzężenie wewnętrzne zwraca wszystkie wiersze z tabel, w których warunek złączenia jest spełniony. Jego składnia jest następująca:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
Na przykład:
Będziemy korzystać z naszych dwóch stołów, książek i książki.
Tabela książek zawiera następujące dane:
Tabela cen zawiera następujące dane:
Celem jest połączenie kolumny nazwy z tabeli Książka i kolumny ceny z tabeli Cena w jedną tabelę. Jest to możliwe w przypadku sprzężenia wewnętrznego, jak pokazano poniżej:
SELECT book.name, price.price FROM book INNER JOIN price ON book.id = price.id;
Polecenie zwraca następującą wartość:
LEWE POŁĄCZENIE ZEWNĘTRZNE
To złączenie zwraca wszystkie wiersze z tabeli po lewej stronie i tylko te wiersze, w których warunek złączenia jest spełniony, z drugiej tabeli. Jego składnia jest następująca:
SELECT columns FROM table-1 LEFT [OUTER] JOIN table-2 ON table-1.column = table-2.column;
Słowo kluczowe OUTER umieszczono w nawiasach kwadratowych, ponieważ jest opcjonalne.
Na przykład:
SELECT book.name, price.price FROM book LEFT JOIN price ON book.id = price.id;
Polecenie zwraca następującą wartość:
Ostatni rekord w powyższej tabeli nie ma pasującej wartości po lewej stronie. Dlatego został zastąpiony przez NULL.
PRAWE POŁĄCZENIE ZEWNĘTRZNE
To złączenie zwraca wszystkie wiersze z tabeli po prawej stronie i tylko te wiersze, w których warunek złączenia jest spełniony, z drugiej tabeli. Jego składnia jest następująca:
SELECT columns FROM table-1 RIGHT [OUTER] JOIN table-2 ON table-1.column = table-2.column;
Słowo kluczowe OUTER umieszczono w nawiasach kwadratowych, ponieważ jest opcjonalne.
Na przykład:
SELECT book.name, price.price FROM book RIGHT JOIN price ON book.id = price.id;
Polecenie zwraca następującą wartość:
Powodem jest to, że wszystkie wiersze w tabeli po prawej stronie zostały dopasowane do wierszy w drugiej tabeli. Gdyby niektóre wiersze nie pasowały, w pierwszej kolumnie mielibyśmy wartość NULL.