Funkcje wbudowane MySQL

Przeczytaj również o: | |
Funkcje wbudowane

Oprócz samych zdań SQL system RDBMS pozwala używać w kwerendach pewnych funkcji (często nazywa się je funkcjami wbudowanymi SQL). Można ich używać w różnych fragmentach kwerendy, np. w wyrażeniu określającym, co ma być wybrane (wyrażenie po SELECT), w kryteriach wyboru (opcja WHERE), a także w opcji ORDER BY (nie każdej funkcji można używać w każdym miejscu kwerendy, patrz dalej). Funkcję wywołuje się, podając jej nazwę i w nawiasach (nie oddzielonych spacją od nazwy funkcji) - argument lub argumenty funkcji, oddzielone przecinkami (istnieją funkcje bezargumentowe). Argumentami funkcji są najczęściej pola w rekordzie (faktycznie nazwy kolumn w tabeli). Funkcje wbudowane SQL są różne. Najbardziej popularne to tzw. funkcje agregujące. Bardzo często chcemy dokonać na bazie jakichś zapytań zbiorczych: obliczyć ile mamy rekordów spełniających pewien warunek, znaleźć minimalną, maksymalną lub średnią wartość w pewnej kolumnie (np. pensję pracowników) etc. Język SQL dostarcza użytkownikowi funkcji, które można wykorzystać w takich zapytaniach. Najbardziej znane z nich to funkcje standardowe: COUNT, SUM, AVG, MIN i MAX. Nie są to oczywiście jedyne funkcje wbudowane SQL. Jest wiele innych, w tym m.in. do kalkulacji dat i okresów czasowych, przetwarzania ciągów znaków etc. Wybrane z nich poznasz na następnych stronach.

Funkcja COUNT może być używana w dwojaki sposób. Pierwszym i najbardziej popularnym jest liczenie rekordów spełniających dane kryteria. Takie wywołanie funkcji ma postać COUNT(*).

Dwie następne funkcje, MIN i MAX, zwracają odpowiednio wartość najmniejszą i największą w danej kolumnie (ściślej: wyrażenia będącego ich argumentem). A skoro operatory porównania > i < mogą się odnosić także do dat, zatem w sposób naturalny można wobec dat stosować funkcje MIN i MAX (np. MIN(Data_urodzenia) znajdzie najmniejszą (najwcześniejszą) datę wśród dat urodzin).

Funkcje tekstowe
Argumentem funkcji tekstowych są ciągi znaków (dane typów char, varchar lub text). Typ danych zwracanych przez funkcje tekstowe jest podstawą do ich dalszego podziału: wyróżniamy funkcje tekstowe zwracające wartość znakową i funkcje tekstowe zwracające liczbę.

CONCAT()
- Funkcja łączy (konkatenuje) przekazane jako parametr i oddzielone przecinakami ciągi znaków. Używaliśmy już tej funkcji, a w następnych listingach użyjemy jej jeszcze kilka razy.

LOWER() -
Wynikiem działania funkcji LOWER() jest ciąg znaków podany jako argument, ale składający się wyłącznie z małych liter. Za pomocą tej funkcji wszystkie wielkie litery argumentu zostaną zamienione na małe.

UPPER()
Wynikiem działania funkcji UPPER() jest ciąg znaków podany jako argument, ale składający się wyłącznie z wielkich liter. Za pomocą tej funkcji wszystkie małe litery argumentu zostaną zamienione na wielkie.

Funkcje liczbowe

ROUND()
Działanie funkcji ROUND() polega na zaokrągleniu liczby do określonej liczby cyfr po przecinku. Pierwszy parametr jest liczbą do zaokrąglenia, drugi wskazuje, do ilu pozycji chcemy zaokrąglić. Ujemna liczba powoduje zaokrąglenie liczby z lewej strony przecinka; 0 spowoduje zaokrąglenie do najbliższej liczby całkowitej. Jeżeli drugi parametr nie jest podany, SZBD przyjmuje domyślnie jego wartość jako równą 0.

TRUNCATE()
Funkcja TRUNCATE() powoduje obcięcie liczby do określonej liczby cyfr po przecinku. Pierwszy parametr jest liczbą do obcięcia, drugi wskazuje, do ilu pozycji chcemy liczbę skrócić. Ujemna liczba powoduje dodanie określonej liczby zer z lewej strony przecinka. Jeżeli drugi parametr nie jest podany, MySQL przyjmuje domyślnie jego wartość jako równą 0.

ABS()
Wynikiem działania funkcji ABS() jest wartość bezwzględna liczby (liczba bez znaku). Jako parametr podaje się liczbę, której wartość bezwzględną należy obliczyć.

CEILING(), FLOOR()
Za pomocą funkcji CEILING() zwrócona zostanie najmniejsza liczba całkowita równa liczbie podanej jako argument funkcji lub większa. Funkcja FLOOR() zwraca największą liczbę całkowitą równą liczbie podanej jako argument funkcji lub mniejszą.

Funkcje daty i czasu

CURDATE(), CURTIME()
Wynikiem działania funkcji CURDATE() jest bieżąca data, a funkcji CURTIME() — bieżący czas. Częstym zastosowaniem funkcji jest automatyczne wstawianie informacji o czasie utworzenia lub zmodyfikowania danych.

NOW()
Funkcja NOW() zwraca zarówno datę, jak i czas systemowy.

DAYOFMONTH(), DAYOFWEEK(), DAYOFYEAR()
Funkcje DAYOFMONTH(), DAYOFWEEK(), DAYOFYEAR() zwracają numer dnia odpowiednio: miesiąca (liczba z zakresu od 1 do 31), tygodnia (liczba z zakresu od 1 do 7, gdzie 1 oznacza niedzielę — pierwszy dzień tygodnia, a 7 sobotę — siódmy dzień tygodnia) i roku (liczba z zakresu od 1 do 365).

Funkcje konwersji


ASCII()
W wyniku działania funkcji ASCII() zostaje zwrócony kod ASCII znaku podanego jako parametr wywołania. Jeżeli jako parametr podamy ciąg znaków, za pomocą tej funkcji zostanie obliczony i zwrócony kod ASCII pierwszego znaku w ciągu.

CHR()
Działanie funkcji CHR() jest przeciwieństwem działania funkcji ASCII() — zamiast zamiany tekstu na liczbę przeprowadza konwersję liczby na odpowiadające jej znaki kodu ASCII.

BIN()
Funkcja BIN() zwraca binarną reprezentację podanej liczby dziesiętnej .

CAST()
Funkcja CAST() pozwala przekonwertować (rzutować) dane przekazane jako pierwszy parametr wywołania na typ podany jako drugi parametr funkcji.

Funkcje trygonometryczne — SIN(), COS(), TAN() i COT()

W wyniku działania funkcji SIN() (sinus), COS() (cosinus), TAN() (tangens) i COT() (cotangens) zwrócona zostanie wartość odpowiednich funkcji trygonometrycznych — dla parametru będącego kątem w radianach będzie obliczony odpowiednio: sinus, cosinus, tangens lub cotangens. Aby przeliczyć kąty z radianów na stopnie, należy posłużyć się wzorem: stopnie · PI()/180 = radiany.

Funkcje mieszania

Funkcje mieszania (ang. Hash) są funkcjami jednokierunkowymi, czyli teoretycznie niemożliwe jest odtworzenie oryginalnych danych na podstawie znajomości wyliczonego za ich pomocą ciągu bajtów. W tym sensie do funkcji mieszania można by też zaliczyć np. funkcję modulo, jednak kryptograficzne funkcje mieszania musi cechować maksymalna losowość wyniku, minimalna szansa zwrócenia tego samego wyniku dla różnych wiadomości i maksymalne zróżnicowanie wyniku dla niewielkich zmian wiadomości.

Funkcje mieszania dla dowolnego zbioru danych zwracają sygnaturę o ściśle określonej długości. W ten sposób niemożliwe jest wyliczenie wielkości zbioru danych źródłowych na podstawie przechwyconej wartości funkcji skrótu. Funkcje mieszania nie umożliwiają szyfrowania danych, ale doskonale nadają się do sprawdzenia, czy oryginalne dane nie zostały zmodyfikowane. W tym celu wystarczy np. wyliczyć wartość funkcji mieszania dla wysłanej wiadomości e-mail czy zapisanego na dysku twardym pliku, a potem porównać ją z wartością wyliczoną przez odbiorcę wiadomości. Jeżeli oba wyniki są identyczne, to znaczy, że dane nie zostały zmodyfikowane.

Współcześnie powszechnie stosowane są dwie funkcje skrótu:

1.       MD5 (ang. Message Digest Algorithm 5) — funkcja skrótu zdefiniowana w dokumencie RFC 1231, szybka, ale nieuważana już za bezpieczną, zwraca wyniki o długości 128 bitów.


2.       SHA-1 (ang. Secure Hash Algorithm) — funkcja mieszania wolniejsza, ale bezpieczniejsza od poprzedniej, tworząca wyniki o długości 160 bitów. Funkcja ta jest standardem stosowanym przez agencje rządowe Stanów Zjednoczonych Ameryki Północnej.

Dodatkowym ryzykiem związanym ze stosowaniem funkcji skrótu jest ich podatność na ataki urodzinowe(ang. Birthday attack). Nazwa ataku pochodzi od ciekawego paradoksu — w grupie 23 osób prawdopodobieństwo, że dwie osoby obchodzą tego samego dnia urodziny (prawdopodobieństwo kolizji), przekracza 50 procent. Ataki tego typu wykorzystują fakt, że znalezienie zbioru danych, dla którego wyliczona funkcja skrótu będzie taka sama jak dla oryginalnego zbioru, jest wielokrotnie łatwiejsze niż odgadnięcie tego zbioru.


Najnowsze artykuły:
Katalog stron IT PRESS
dodano: 2011-06-07

Linki - polecane strony
dodano: 2011-05-31

IE9 może chronić przed śledzeniem
dodano: 2010-12-17

Internet Explorer 9 beta już do pobrania
dodano: 2010-09-17

Mozilla 4.0 beta 2
dodano: 2010-08-26

Mija 15 lat od premiery Windows 95
dodano: 2010-08-26

Botnet odpowiedzialny za 40% spamu
dodano: 2010-08-26

Nie mów na Facebooku gdzie jesteś
dodano: 2010-08-26

Amiga obchodzi 25 urodziny
dodano: 2010-08-02

Windows czy Linux?
dodano: 2010-08-02

Sieć konwergentna FCoE
dodano: 2010-08-02

Złodzieje danych liczą na Ciebie
dodano: 2010-07-26

DELL - wirusy z fabryki
dodano: 2010-07-24

Narzędzia do łamania GSM
dodano: 2010-07-24

Niebezpieczne USB Rootkit W32/Stuxnet-B
dodano: 2010-07-21

3000 USD za błąd w Firefoksie
dodano: 2010-07-21

Funkcje wbudowane MySQL
dodano: 2010-07-19

Coraz więcej ataków na Windows XP
dodano: 2010-07-19

Open-source pokonało FBI
dodano: 2010-07-19

Internet w całej Polsce - nowa ustawa wchodzi w życie
dodano: 2010-07-19

Zmiany w Aplikacjach Google
dodano: 2010-07-19

Slackware linux
dodano: 2010-07-19

Przemysł blokuje prezentacje hakerów
dodano: 2010-07-19

Szpiedzy z działu IT?
dodano: 2010-07-19

Google wraca do Chin
dodano: 2010-07-19

Mobilny botnet na Symbian Series 60
dodano: 2010-07-19

Bezpieczeństwo w Internecie
dodano: 2010-07-19

Rosja ma kod źródłowy Windows 7
dodano: 2010-07-19

Prąd bez kabli - Intel stawia kolejny krok
dodano: 2010-07-19

Bing rośnie, Google traci
dodano: 2010-07-19

Formularz kontaktowy
dodano: 2010-07-09





Jeżeli szukasz ciekawych informacji lub czegoś ciekawego do poczytania, na pewno zainteresują cię polecane przez IT PRESS artykuły: pomysły na tanie obiady , ciekawe informacje znajdziesz na stronie: , kliknij również w:

Wizyty: 163    2    3