Strona główna >MySQL >Leksykon MySQL – funkcje i instrukcje

Leksykon MySQL – funkcje i instrukcje

Przegląd funkcji i instrukcji MySQL i MariaDB z przykładami na przykładowej bazie danych. Wyniki przykładów to prawdziwe wyniki, sprawdzone w MySQL 8.0 i MariaDB; różnice między nimi są opisane w hasłach.

Tekst 40 haseł

  • ASCII Zwraca wartość liczbową pierwszego bajtu ciągu znaków (0–255).
  • CHAR Zwraca ciąg znaków złożony z podanych kodów.
  • CHAR_LENGTH Zwraca liczbę znaków w ciągu.
  • CONCAT Łączy podane wartości w jeden ciąg znaków.
  • CONCAT_WS Łączy wartości i między każde dwie z nich wstawia separator (WS = „with separator”).
  • ELT Zwraca n-tą wartość z listy str1, str2, … Jeśli n jest mniejsze niż 1 lub większe niż liczba wartości, zwraca NULL.
  • FIELD Zwraca pozycję wartości na liście val1, val2, … (od 1).
  • FIND_IN_SET Zwraca pozycję wartości w ciągu znaków, którego elementy są rozdzielone przecinkami (na przykład 'coffee,tea,sugar').
  • FORMAT Zwraca liczbę jako ciąg znaków z separatorem tysięcy, zaokrągloną do podanej liczby miejsc po przecinku.
  • FROM_BASE64 Dekoduje ciąg Base64 z powrotem na pierwotne bajty – odwrotność TO_BASE64().
  • HEX Dla ciągu znaków zwraca każdy bajt jako dwie cyfry szesnastkowe, dla liczby jej zapis o podstawie 16.
  • INSERT (funkcja) Zwraca ciąg znaków, w którym len znaków od pozycji pos jest zamienionych na nowy ciąg.
  • INSTR Zwraca pozycję (od 1) pierwszego wystąpienia podciągu w ciągu znaków, a jeśli go nie ma, 0.
  • LEFT Zwraca pierwsze len znaków ciągu.
  • LENGTH Zwraca długość ciągu znaków w bajtach, a nie w znakach.
  • LIKE Zwraca 1, gdy ciąg znaków pasuje do wzorca.
  • LOCATE Zwraca pozycję (od 1), na której podciąg po raz pierwszy zaczyna się w ciągu znaków.
  • LOWER Zamienia wszystkie litery ciągu znaków na małe według reguł zestawu znaków, także litery ze znakami diakrytycznymi.
  • LPAD Dopełnia ciąg znaków z lewej tak, żeby miał dokładnie len znaków.
  • LTRIM Usuwa spacje z początku ciągu znaków (z lewej).
  • MD5 Zwraca sumę kontrolną MD5 podanego ciągu znaków jako 32 znaki szesnastkowe.
  • REGEXP Zwraca 1, gdy ciąg znaków zawiera dopasowanie do wyrażenia regularnego.
  • REGEXP_REPLACE Zwraca ciąg znaków, w którym zamienione są wszystkie dopasowania wyrażenia regularnego.
  • REGEXP_SUBSTR Zwraca pierwszą część ciągu znaków pasującą do wyrażenia regularnego.
  • REPEAT Zwraca ciąg znaków powtórzony count razy.
  • REPLACE Zwraca ciąg znaków, w którym wszystkie wystąpienia from_str są zamienione na to_str.
  • REVERSE Zwraca ciąg znaków z odwróconą kolejnością znaków.
  • RIGHT Zwraca ostatnie len znaków ciągu.
  • RPAD Dopełnia ciąg znaków z prawej do dokładnie len znaków.
  • RTRIM Usuwa spacje z końca ciągu znaków (z prawej).
  • SHA2 Zwraca skrót z rodziny SHA-2 jako ciąg szesnastkowy.
  • SPACE Zwraca ciąg złożony z n spacji.
  • STRCMP Porównuje dwa ciągi znaków według collation.
  • SUBSTRING Zwraca część ciągu znaków od podanej pozycji, opcjonalnie tylko podaną liczbę znaków.
  • SUBSTRING_INDEX Zwraca część ciągu znaków przed count-tym wystąpieniem separatora.
  • TO_BASE64 Koduje ciąg znaków lub dane binarne w Base64 (tylko litery, cyfry, +, / i =).
  • TRIM Usuwa spacje lub podany ciąg znaków z początku i z końca ciągu.
  • UNHEX Zamienia pary cyfr szesnastkowych na bajty – odwrotność HEX().
  • UPPER Zamienia wszystkie litery ciągu znaków na wielkie według reguł zestawu znaków – także litery ze znakami diakrytycznymi.
  • UUID Zwraca uniwersalnie unikalny identyfikator (UUID w wersji 1) w postaci xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

Liczby 15 haseł

  • ABS Zwraca wartość bezwzględną liczby – liczba ujemna staje się dodatnia, liczby dodatnie i zero pozostają.
  • CAST Zamienia wartość na podany typ: SIGNED, UNSIGNED (liczby całkowite), DECIMAL(m,d), CHAR, DATE, DATETIME, TIME, BINARY i inne.
  • CEIL Zwraca najmniejszą liczbę całkowitą większą lub równą podanej liczbie – zawsze zaokrągla w górę.
  • CONV Przelicza liczbę zapisaną w podstawie from_base na podstawę to_base (od 2 do 36).
  • CONVERT Ma dwie postacie.
  • FLOOR Zwraca największą liczbę całkowitą mniejszą lub równą podanej liczbie – zawsze zaokrągla w dół.
  • GREATEST Zwraca największą z podanych wartości – porównuje wartości w jednym wierszu, a nie między wierszami (to robi MAX()).
  • LEAST Zwraca najmniejszą z podanych wartości w wierszu (MIN() porównuje między wierszami).
  • MOD Zwraca resztę z dzielenia.
  • POW Zwraca x do potęgi y.
  • RAND Zwraca losową liczbę dziesiętną z zakresu 0 ≤ x < 1.
  • ROUND Zaokrągla liczbę do podanej liczby miejsc po przecinku (domyślnie 0).
  • SIGN Zwraca -1 dla liczby ujemnej, 0 dla zera i 1 dla liczby dodatniej.
  • SQRT Zwraca pierwiastek kwadratowy liczby nieujemnej.
  • TRUNCATE Obcina liczbę do podanej liczby miejsc po przecinku – resztę odrzuca i niczego nie zaokrągla.

Data i czas 37 haseł

  • ADDTIME Dodaje czas trwania zapisany jako godzina ('01:30:00') do godziny lub daty z godziną.
  • CONVERT_TZ Przelicza datę i godzinę z jednej strefy czasowej na inną.
  • CURDATE Zwraca bieżącą datę (typ DATE) w formacie YYYY-MM-DD według strefy czasowej sesji.
  • CURTIME Zwraca bieżącą godzinę (typ TIME) w formacie HH:MM:SS według strefy czasowej sesji.
  • DATE Zwraca część z datą z wartości DATETIME albo z ciągu znaków z datą i godziną.
  • DATE_ADD Dodaje do daty podany interwał.
  • DATE_FORMAT Zwraca datę i godzinę jako ciąg znaków według formatu.
  • DATE_SUB Odejmuje od daty podany interwał.
  • DATEDIFF Zwraca liczbę dni date1 − date2.
  • DAY Zwraca dzień miesiąca jako liczbę od 1 do 31.
  • DAYNAME Zwraca nazwę dnia tygodnia w języku, który określa lc_time_names.
  • DAYOFWEEK Zwraca dzień tygodnia jako liczbę według standardu ODBC: 1 = niedziela, 2 = poniedziałek … 7 = sobota.
  • DAYOFYEAR Zwraca dzień roku: 1 stycznia to 1, 31 grudnia 365 (w roku przestępnym 366).
  • EXTRACT Zwraca podaną część daty jako liczbę.
  • FROM_UNIXTIME Zamienia uniksowy znacznik czasu na DATETIME w strefie czasowej sesji.
  • HOUR Zwraca godzinę z czasu lub momentu w czasie.
  • LAST_DAY Zwraca datę ostatniego dnia miesiąca, w który przypada podana data.
  • MAKEDATE Zwraca datę z roku i dnia roku (1 = 1 stycznia).
  • MINUTE Zwraca minuty z czasu lub momentu w czasie jako liczbę od 0 do 59.
  • MONTH Zwraca miesiąc z daty jako liczbę od 1 (styczeń) do 12 (grudzień).
  • MONTHNAME Zwraca nazwę miesiąca w języku, który określa lc_time_names – domyślnie po angielsku („March”), z de_DE po niemiecku (März), z pl_PL po polsku (marzec).
  • NOW Zwraca bieżącą datę z godziną (typ DATETIME) w strefie czasowej sesji.
  • QUARTER Zwraca kwartał, w który przypada data: od 1 (styczeń–marzec) do 4 (październik–grudzień).
  • SEC_TO_TIME Zamienia liczbę sekund na wartość TIME w postaci godziny:minuty:sekundy.
  • SECOND Zwraca sekundy z czasu lub momentu w czasie jako liczbę od 0 do 59.
  • STR_TO_DATE Zamienia ciąg znaków według formatu na datę lub datę z godziną – odwrotność DATE_FORMAT().
  • TIME Zwraca część z godziną z wartości DATETIME albo z ciągu znaków.
  • TIME_FORMAT Zwraca godzinę jako ciąg znaków według formatu.
  • TIME_TO_SEC Zwraca liczbę sekund odpowiadającą godzinie – przy porze dnia sekundy od północy, przy czasie trwania jego całą długość w sekundach.
  • TIMEDIFF Zwraca różnicę expr1 − expr2 jako wartość TIME (może być ujemna).
  • TIMESTAMPADD Dodaje do daty interval jednostek (od SECOND do YEAR).
  • TIMESTAMPDIFF Zwraca różnicę koniec − początek w podanej jednostce (SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR), tylko w pełnych jednostkach – reszta przepada.
  • UNIX_TIMESTAMP Zwraca liczbę sekund od 1 stycznia 1970 00:00:00 UTC.
  • UTC_TIMESTAMP Zwraca bieżącą datę i godzinę w uniwersalnym czasie koordynowanym (UTC), niezależnie od ustawienia time_zone.
  • WEEK Zwraca numer tygodnia w roku.
  • WEEKDAY Zwraca dzień tygodnia jako liczbę od 0 = poniedziałek do 6 = niedziela – odpowiada to tygodniowi ISO, który zaczyna się w poniedziałek.
  • YEAR Zwraca rok z daty jako liczbę (1000–9999).

Warunki 5 haseł

  • CASE Sprawdza po kolei warunki WHEN i zwraca wartość pierwszego prawdziwego.
  • COALESCE Zwraca pierwszą z podanych wartości, która nie jest NULL.
  • IF Jeśli warunek jest prawdziwy (nie zero i nie NULL), zwraca drugi parametr, w przeciwnym razie trzeci.
  • IFNULL Zwraca wartość, a jeśli jest NULL, zwraca wartość zastępczą.
  • NULLIF Jeśli expr1 jest równe expr2, zwraca NULL, w przeciwnym razie expr1.

Funkcje agregujące i operatory 10 haseł

  • AVG Zwraca średnią arytmetyczną wartości w grupie.
  • BETWEEN Zwraca 1, gdy wartość leży między min a max łącznie z obiema granicami – to samo co expr >= min AND expr <= max.
  • COUNT Liczy wiersze.
  • GROUP_CONCAT Łączy wartości ze wszystkich wierszy grupy w jeden ciąg znaków.
  • IN Zwraca 1, gdy wartość jest równa dowolnej wartości z listy lub podzapytania.
  • IS NULL Zwraca 1, gdy wartość jest NULL (brakuje jej).
  • MAX Zwraca największą wartość wyrażenia w grupie wierszy.
  • MIN Zwraca najmniejszą wartość wyrażenia w grupie wierszy – najniższą liczbę, najstarszą datę lub alfabetycznie pierwszy ciąg znaków.
  • STDDEV Zwraca odchylenie standardowe wartości w grupie – jak bardzo wartości odbiegają od średniej.
  • SUM Sumuje wartości wyrażenia w wierszach grupy.

JSON 14 haseł

  • JSON_ARRAY Tworzy tablicę JSON z podanych wartości.
  • JSON_CONTAINS Zwraca 1, gdy dokument (lub jego część pod ścieżką) zawiera szukaną wartość.
  • JSON_EXTRACT Zwraca wartość z dokumentu JSON pod podaną ścieżką. Ścieżka zaczyna się od $, klucz następuje po kropce ($.origin), element tablicy w nawiasach kwadratowych…
  • JSON_INSERT Wstawia wartość pod ścieżką, pod którą jeszcze nic nie ma.
  • JSON_KEYS Zwraca tablicę JSON z nazwami kluczy obiektu najwyższego poziomu albo obiektu pod podaną ścieżką.
  • JSON_LENGTH Zwraca liczbę elementów tablicy, liczbę kluczy obiektu i 1 dla wartości prostej.
  • JSON_OBJECT Tworzy obiekt JSON z podanych par klucz – wartość.
  • JSON_REMOVE Zwraca dokument bez wartości pod podanymi ścieżkami. Ścieżka, która nie istnieje, jest ignorowana.
  • JSON_REPLACE Nadpisuje wartość pod ścieżką tylko wtedy, gdy już tam jest.
  • JSON_SEARCH Zwraca ścieżkę do wartości tekstowej, która pasuje do szukanego ciągu (z % i _ jak w LIKE).
  • JSON_SET Zwraca dokument z nową wartością pod ścieżką: istniejący klucz jest nadpisywany, brakujący dodawany.
  • JSON_UNQUOTE Usuwa cudzysłowy wokół wartości tekstowej JSON i zamienia sekwencje ucieczki (\n, \") z powrotem na znaki.
  • JSON_VALID Zwraca 1 dla poprawnego dokumentu JSON, 0 dla niepoprawnego i NULL dla NULL.
  • JSON_VALUE Zwraca wartość (ciąg znaków, liczbę) pod podaną ścieżką bez cudzysłowów.

Funkcje okna 9 haseł

  • DENSE_RANK Jak RANK() – takie same wartości mają to samo miejsce – ale bez luk: 1, 2, 2, 3.
  • FIRST_VALUE Zwraca wartość wyrażenia z pierwszego wiersza okna według ORDER BY w OVER.
  • LAG Zwraca wartość wyrażenia z wiersza o N wierszy wyżej (domyślnie 1) według kolejności w OVER.
  • LAST_VALUE Zwraca wartość wyrażenia z ostatniego wiersza okna.
  • LEAD Jak LAG(), ale wartość odczytuje z wiersza o N wierszy niżej.
  • NTILE Dzieli posortowane wiersze możliwie równo na n grup i zwraca numer grupy (od 1 do n).
  • OVER Określa okno wierszy, nad którym funkcja jest obliczana.
  • RANK Zwraca miejsce wiersza jak w tabeli sportowej: takie same wartości dostają to samo miejsce, a następne miejsce jest pomijane (1, 2, 2, 4).
  • ROW_NUMBER Nadaje wierszom kolejne numery 1, 2, 3… według ORDER BY w klauzuli OVER.

Informacje o bazie danych 4 hasła

  • DATABASE Zwraca nazwę bieżącej bazy danych (wybranej przy połączeniu albo instrukcją USE).
  • LAST_INSERT_ID Zwraca wartość AUTO_INCREMENT wygenerowaną przez ostatnią instrukcję INSERT w bieżącym połączeniu.
  • ROW_COUNT Zwraca liczbę wierszy, które poprzednia instrukcja INSERT, UPDATE lub DELETE rzeczywiście zmieniła.
  • VERSION Zwraca wersję serwera jako ciąg znaków, np. 8.0.18 lub 10.11.6-MariaDB.

Instrukcje – zapytania 12 haseł

  • DISTINCT Zwraca każdą kombinację wartości wybranych kolumn tylko raz.
  • EXISTS Zwraca prawdę, gdy podzapytanie znajdzie co najmniej jeden wiersz.
  • GROUP BY Łączy wiersze o takich samych wartościach podanych wyrażeń w jedną grupę.
  • HAVING Zostawia tylko grupy spełniające warunek.
  • JOIN Złączenie wewnętrzne zwraca kombinacje wierszy obu tabel, które spełniają warunek w ON.
  • LEFT JOIN Zwraca wszystkie wiersze lewej tabeli.
  • LIMIT Zwraca najwyżej row_count wierszy, z OFFSET dopiero po pominięciu podanej liczby.
  • ORDER BY Sortuje wiersze wyniku według podanych kolumn lub wyrażeń – rosnąco (ASC, domyślnie) lub malejąco (DESC).
  • SELECT Wybiera kolumny lub obliczone wartości z jednej lub kilku tabel.
  • UNION Łączy wiersze kilku zapytań SELECT w jeden wynik.
  • WHERE Zostawia tylko wiersze, dla których warunek jest prawdziwy.
  • WITH Nadaje nazwę wynikowi podzapytania (Common Table Expression), a zapytanie główne pracuje z nim jak z tabelą.

Instrukcje – zmiany danych 8 haseł

  • DELETE Usuwa wiersze spełniające warunek.
  • INSERT Wstawia jeden lub więcej wierszy do tabeli.
  • INSERT IGNORE Wstawia wiersze i po cichu pomija te, które naruszyłyby klucz główny lub unikalny indeks.
  • INSERT … SELECT Wstawia do tabeli wszystkie wiersze, które zwraca zapytanie SELECT.
  • ON DUPLICATE KEY UPDATE Gdy wstawienie naruszyłoby klucz główny lub unikalny indeks, zamiast błędu istniejący wiersz jest aktualizowany według części UPDATE.
  • REPLACE (instrukcja) Działa jak INSERT, ale najpierw usuwa wiersz z tym samym kluczem głównym lub unikalną wartością.
  • TRUNCATE TABLE Usuwa wszystkie wiersze tabeli naraz – w rzeczywistości usuwa tabelę i tworzy ją od nowa pustą.
  • UPDATE Ustawia nowe wartości kolumn we wszystkich wierszach spełniających warunek WHERE.

Instrukcje – struktura i transakcje 8 haseł

  • ALTER TABLE Zmienia strukturę tabeli: dodaje, zmienia lub usuwa kolumny, indeksy i klucze, zmienia nazwę tabeli albo kodowanie.
  • CREATE INDEX Tworzy indeks – strukturę pomocniczą, dzięki której baza szybko znajduje wiersze bez przechodzenia całej tabeli.
  • CREATE TABLE Tworzy tabelę z podanymi kolumnami, typami danych, kluczami i ograniczeniami.
  • CREATE VIEW Zapisuje zapytanie SELECT pod nazwą.
  • DROP TABLE Usuwa tabelę – strukturę i wszystkie dane.
  • EXPLAIN Wypisuje plan wykonania zapytania: kolejność tabel, sposób dostępu (type), używany indeks (key) i szacowaną liczbę odczytanych wierszy (rows).
  • SHOW CREATE TABLE Zwraca pełną instrukcję CREATE TABLE odpowiadającą bieżącej strukturze tabeli – kolumny, wartości domyślne, indeksy, klucze obce, silnik i kodowanie.
  • START TRANSACTION Rozpoczyna transakcję.