Archiwum kategorii: SQL

PostgreSQL funkcja ASCII() – zwróć kod ASCII pierwszego znaku ciągu.

Tym razem na "warsztat" bierzemy funkcję ASCII(). Funkcja zwróci nam kod ASCII znaku lub ciągu znaków które umieścimy jako jej argument. W przypadku pojedynczego znaku sprawa jest prosta bo mamy tylko jeden znak i jego kod ASCII będzie zwrócony. W przypadku ciągu znaków otrzymamy kod ASCII pierwszego znaku w ciągu. Pamiętajmy, że np. znak 'A' to nie to samo co znak 'a'.
Zwracany typ: INT

PostgreSQL ASCII() składnia

ASCII(  'łańcuch_znaków'  )


Przykład zastosowania funkcji ASCII()

SELECT
    ASCII('A')

Wynik

65

Widzimy, że kod ASCII znaku 'A' to 65.


Teraz sprawdźmy to samo dla znaku 'a'

SELECT
    ASCII('a')

Wynik

97

Tutaj już widzimy różnicę. Kod ASCII znaku 'a' to 97.


Teraz sprawdźmy dla ciągu znaków. Znamy już kod ASCII znaku 'A' który jest równy 65. Teraz jako argument do funkcji podstawimy ciąg znaków np. 'ASCII'. Na początku ciągu jest znak 'A' czyli funkcja powinna zwrócić jego kod, czyli 65.

SELECT
    ASCII('ASCII')

Wynik

65

Wynik to 65 więc funkcja prawidłowo zwróciła kod ASCII pierwszego znaku ciągu czyli 'A'.


postgresqlpostgresql

PostgreSQL funkcja REPLACE() – zamiana jednego ciągu na drugi.

Dzisiaj omówimy funkcję REPLACE() która służy do zamiany jednego ciągu znaków na drugi. Bardzo przydatna funkcja w sytuacji kiedy hurtowo musimy zamienić ciągi znaków.
Zwracany typ: TEXT

PostgreSQL REPLACE() składnia

REPLACE( 'łańcuch_znaków' , 'ciąg_który_zamieniamy' , 'ciąg_na_który_zamieniamy' )

Przykład zastosowania funkcji REPLACE()

SELECT
    REPLACE('Ala ma kota.', 'kota', 'psa')

Wynik

Ala ma psa.

Co oznacza że słowo 'kota' zostało podmienione na słowo 'psa'.


postgresqlpostgresqlpostgresql

Kurs PostgreSQL (tutorial)

Z uwagi na to, że wpisów dot. PostgreSQL jest coraz więcej postanowiłem skopować wpisy z ogólnego wpisu dotyczcego SQL-a i stworzyć nowy osobny wpis i stworzyć pewnego rodzaju kurs (tutorial) PosgreSQL-a.

Kurs PostgreSQL spis treści

 

 

kurs postgresql tutorial sql PostgreSQL download. Skąd ściągnąć krok po kroku.   PostgreSQL download. Skąd ściągnąć krok po kroku.
kurs postgresql tutorial sql PostgreSQL instalacja krok po kroku.   PostgreSQL instalacja krok po kroku.
    Funkcje i operatory dot. ciągów znaków
sql, postgresql, łaczenie stringów   PostgreSQL łączenie ciągów znaków.
sql, postgresql, łaczenie stringów i innych typów danych   PostgreSQL łączenie ciągów znaków i innych typów danych.
sql, postgresql, funkcja bit_length ilość bitów w łańcuchu   PostgreSQL funkcja BIT_LENGTH() ile bitów w łańcuchu
sql, postgresql, funkcja char_length() character_length() ile znaków w łańcuchu   PostgreSQL funkcja CHAR_LENGTH() ile znaków w łańcuchu
sql, postgresql, funkcja lower() zamiana tekstu na małe litery   PostgreSQL funkcja LOWER() zamiana tekstu na małe litery
sql, postgresql, funkcja upper() zamiana tekstu na duże litery   PostgreSQL funkcja UPPER() zamiana tekstu na duże litery
sql, postgresql, funkcja substring wycinanie podłańcucha z łańcucha znaków   PostgreSQL funkcja SUBSTRING() podłańcuch z łańcucha znaków
sql, postgresql, funkcja substring wyrażenia regularne wycinanie podłańcucha z łańcucha znaków   PostgreSQL funkcja SUBSTRING() + wyrażenia regularne
podłańcuch z łańcucha znaków
sql, postgresql, funkcja position szukamy pozycji podłańcucha w łańcuchu znaków   PostgreSQL funkcja POSITION() pozycja podłańcucha w łańcuchu
sql, postgresql, funkcja trim leading trailing both ucinamy znaki z łańcucha głównego   PostgreSQL funkcja TRIM() leading, trailing, both ucinamy znaki z łańcucha głównego
sql, postgresql, funkcja OVERLAY zamiana ciagów znaków   PostgreSQL funkcja OVERLAY() zamiana ciągów znaków
sql, PostgreSQL funkcja CONCAT() – łączenie stringów   PostgreSQL funkcja CONCAT() łączenie stringów
postgresql sql funkcja left function   PostgreSQL funkcja LEFT() wycinamy string ze stringu od lewej
postgresql sql funkcja right function   PostgreSQL funkcja RIGHT() wycinamy string ze stringu od prawej
postgresql sql funkcja function OCTET_LENGTH() – liczba bajtów w stringu   PostgreSQL funkcja OCTET_LENGTH() liczba bajtów w stringu
    Inne funkcje
    PostgreSQL funkcja EXISTS() sprawdzamy czy zapytanie zwraca wynik
    PostgreSQL funkcja CAST() konwertujemy łańcuch znaków na liczbę
    PostgreSQL funkcja ASCII() zwracam kod znaku
     
    Wróć do nas za jakiś czas, już niedługo nowy wpis.

PostgreSQL funkcja OCTET_LENGTH() – liczba bajtów w stringu

Poznamy dzisiaj nową funkcję PostgreSQL a mianowicie OCTET_LENGTH() która zwraca liczbę bajtów w stringu. Funkcja ma jeden argument który będzie stringiem i to dla niego funkcja zwróci liczbę bajtów.
Zwracany typ: INT

PostgreSQL OCTET_LENGTH() składnia

OCTET_LENGTH( łańcuch_znaków)

Przykład zastosowania funkcji OCTET_LENGTH()

SELECT
    OCTET_LENGTH( 'Ala ma kota.' )

Wynik

12

Co oznacza że ciąg 'Ala ma kota.' ma 12 bajtów.


postgresqlpostgresqlpostgresql

PostgreSQL funkcja ASCII() – zwracamy kod znaku

Dzisiaj zajmiemy się funkcją ASCII(). Argumentem tej funkcji jest znak (tekst) który chcemy zamienić na kod ASCII. W przypadku wpisania większej ilości znaków niż jeden funkcja zwróci nam kod ASCII pierwszego znaku w ciągu. Pamiętaj znak 'a' i 'A' to dwar różne znaki, wielkość znaków ma tutaj znaczenie.
Zwracany typ: INT

PostgreSQL ASCII() składnia

ASCII(argument)

argument – znak lub ciąg znaków

Przykład zastosowania funkcji ASCII()

Przeanalizujmy działanie funkcji ASCII() w trzech konfiguracjach. Na początku odczytamy kod ASCII znaku 'a' później znaku 'A' a na koniec do argumentu funkcji wstawimy ciąg znaków 'Ala'

Kod znaku 'a'

SELECT
    ASCII( 'a' )

Wynik

97

Teraz odczytajmy kod znaku 'A'

SELECT
    ASCII( 'A' )

Wynik

65

A teraz sprubujmy wstawić do argumentu cały ciąg 'Ala'

Uzupełniając inforamcje z dokumentacji, dla znaków w UTF-8 funkcja zwróci kod Unicode dla danego znaku. W przypadku innych kodowań wielobajtowych argument musi być znakiem ASCII.

SELECT
    ASCII( 'Ala' )

Wynik

65

Widzimy więc, że funkcja zwróciła kod pierwszego znaku z ciągu.


postgresqlpostgresqlpostgresql

PostgreSQL funkcja RIGHT() – wycinamy string ze stringu od prawej

Dzisiaj zapoznamy się z funkcją RIGHT(), która zwróci nam tyle znaków z końca łąńcucha głównego ile zadeklarujemy. Inaczej mówiąc deklarujemy ile znaków z końca łańcucha głównego chcemy "wyciąć". Działanie tej funkcji obrazują poniższe przykłady.
Zwracany typ: TEXT

PostgreSQL RIGHT() składnia

RIGHT( łańcuch_główny , ilość_znaków_do_wycięcia )

np.

postgresql sql funkcja right function

Tak jak przy bliźniaczej funkcji LEFT() przeanalizujmy trzy przypadki. Pierwszy gdzie zdefiniowana liczba znaków jest mniejsza od liczby znaków w łańcuchu głównym. Drugi przypadek będzie taki gdzie liczba zdefiniowanych znaków będzie większa niż liczba znaków w łańcuchu głównym. W trzecim przypadki sprawdzimy co się stanie jeżeli w miejsce zdefiniowanej ilości znaków wstawimy 0 lub NULL.

Zdefiniowana liczba znaków jest mniejsza niż liczba znaków w łańcuchu głównym.

SELECT
    RIGHT( 'Ala ma kota.' , 3 )

Wynik

ta.

Zdefiniowana liczba znaków jest większa niż liczba znaków w łańcuchu głównym.

SELECT
    RIGHT( 'Ala ma kota.' , 15 )

Wynik

Ala na kota.

Ponieważ zdanie 'Ala ma kota.' włączając spacje ma 12 znaków a my zdefiniowaliśmy 15 znaków do "wycięcia" funkcja zwróciła nam tylko cały łańcuch główny i nic więcej.

Zdefiniowana ilości znaków do wycięcia równa 0 lub NULL.123

SELECT
    RIGHT( 'Ala ma kota.' , 0 )

Wynik

Funkcja nic nie zwróci

Funkcja się wykona ale nic nie zwróci.

To samo stanie się w przypadku gdy zamiast 0 wstawimy NULL.

SELECT
    RIGHT( 'Ala ma kota.' , NULL )

Wynik

Funkcja nic nie zwróci


postgresqlpostgresqlpostgresql

PostgreSQL funkcja LEFT() – wycinamy string ze stringu od lewej

Co zrobić kiedy chcemy "uciąć" kilka znaków od początku łąńcucha znaków. Możemy skorzystać z funkcji LEFT(), która zwróci nam tyle znaków z początku łąńcucha ile zadeklarujemy. Żeby lepiej przybliżyć działanie tej funkcji zobaczmy przykłady poniżej.
Zwracany typ: TEXT

PostgreSQL LEFT() składnia

LEFT( łańcuch_główny , ilość_znaków_do_wycięcia )

np.

postgresql sql function left funkcja

Przeanalizujmy poniżej trzy przypadki. Pierwszy gdzie zdefiniowana liczba znaków jest mniejsza od liczby znaków w łańcuchu głównym. Drugi przypadek będzie taki gdzie liczba zdefiniowanych znaków będzie większa niż liczba znaków w łańcuchu głównym. W trzecim przypadki sprawdzimy co się stanie jeżeli w miejsce zdefiniowanej ilości znaków wstawimy 0 lub NULL.

Zdefiniowana liczba znaków jest mniejsza niż liczba znaków w łańcuchu głównym.

SELECT
    LEFT( 'Ala ma kota.' , 3 )

Wynik

    Ala

Zdefiniowana liczba znaków jest większa niż liczba znaków w łańcuchu głównym.123

SELECT
    LEFT( 'Ala ma kota.' , 15 )

Wynik

 Ala na kota.

Ponieważ zdanie 'Ala ma kota.' włączając spacje ma 12 znaków a my zdefiniowaliśmy 15 znaków do "wycięcia" funkcja zwróciła nam tylko cały łańcuch główny i nic więcej.

Zdefiniowana ilości znaków do wycięcia równa 0 lub NULL.123

SELECT
    LEFT( 'Ala ma kota.' , 0 )

Wynik

Funkcja nic nie zwraca

Funkcja się wykona ale nic nie zwróci.

To samo stanie się w przypadku gdy zamiast 0 wstawimy NULL.

SELECT
    LEFT( 'Ala ma kota.' , NULL )

Wynik

Funkcja nic nie zwraca


postgresqlpostgresqlpostgresql

PostgreSQL funkcja CONCAT() – łączenie stringów

Dzisiaj zaprezentuję Wam funkcję CONCAT() która łączy wiele stringów (łańcuchów znaków). Każdy kolejny string który chcemy złączyć jest kolejnym argumentem tej funkcji przedzielonym przecinkiem. Jeżeli będziemy chcieli dołączyć do naszego nowego łąńcucha znaków wartość NULL to będzie ona zignorowana. Ciekawą rzeczą która robi ta funkcja to niejawna kowersja np. typów liczbowych np. INT na typ znakowy, co zobaczycie na poniższym przykładzie.
Zwracany typ: TEXT

PostgreSQL CONCAT() składnia

CONCAT( argument1 , argument2 , … )
Pamiętaj tekst wsadzamy w pojedynczy cudzysłów 'text', liczbę piszemy normalnie.

 

Przykład zastosowania funkcji CONCAT()

SELECT
    CONCAT('Ala ma ' , 2 , ' koty ' , NULL , 'i ' , 1 , ' psa.')

Wynik

    Ala ma 2 koty i 1 psa.

zwróćcie uwagę, że mamy tutaj ciągu znaków np. 'Ala ma ', mamy także wartości liczbowe: 2 i 1 ale mam także wartość NULL. Ciągi znaków są normalnie dołączane do nawego wynikowego łańcucha znaków, wartości liczbowe są konwertowane na tekst i także są dołączane a wartość NULL jest pomijana.


postgresqlpostgresqlpostgresql

PostgreSQL funkcja CAST – konwertujemy łańcuch znaków na liczbę

Jedno z najczęście spotykanych pytań dotyczących konwersji. Jak zamienić string (łańcuch znaków) na liczbę. Sprawę załatwi nam funkcja CAST().
 

PostgreSQL CAST() składnia

CAST( wyrażenie AS docelowy_typ)

wyrażenie – tutaj definiujemy wyrażenie które chcemy przekonwertować do docelowego typu
docelowy_typ – tutaj określamy do jakiego typu chce przekonwertować nasze wyrażenie


Przykłady zastosowania funkcji CAST()

Przekonwertuj łańcuch znaków '100' na liczbę 100. Dla przetestowania czy konwersja się powiodła dodaj do przekonwertowanej liczy 100 wartość 300 i wyświetl wynik operacji.

SELECT
    CAST( '100' AS INT) + 300 AS Wynik

Wynik

400

Na początku przekonwertowaliśmy łańcuch znaków '100' na liczbę 100, czyli CAST('100' AS INT). Następnie dodaliśmy do liczby 100 liczbę 300. Wynik naszej operacji to 400.


postgresqlpostgresqlpostgresql

PostgreSQL funkcja LTRIM – wycinamy znaki z początku łańcucha głównego

Czasami przy wprowadzaniu danych do bazy zdaży się że na początku ciągu znaków wkradnie nam się niechciana spacja. Przy wyświetlaniu takich danych są to niepożądane znaki. I tutaj z pomocą przychodzi nam funkcja LTRIM(). Dzięki tej funkcji możemy wyciąć niechciane spacje z początku ciągu (lub inne zdefiniowane przez nas znaki). Zobaczmy jak to wygląda na przykładach.
Zwracany typ: TEXT

PostgreSQL LTRIM() składnia

LTRIM( łańcuch_główny , opcjonalnie_zdefiniowany_zbiór_znaków )

łańcuch_główny – tutaj określamy łańcuch główny z którego będziemy ucinać znaki.
opcjonalnie_zdefiniowany_zbiór_znakówto opcjonalny parametr gdzie deklarujemy zbiór znaków lub ciąg znaków który chcemy wyciąć od początku głównego łańcucha.


Przykłady zastosowania funkcji LTRIM()

SELECT
    LTRIM('Ala ma kota.' , 'lA')

Wynik

a ma kota.

Z lewej strony łańcucha głównego zostały wycięte dwa znaki 'Al'. Zwróć uwagę, że w parametrze zdefiniowaliśmy je w odwrotnej kolejności 'lA'. Widzimy więc, że dla funkcji LTRIM nie ma znaczenia kolejność znaków byleby wszystkie znaki z łańcucha głównego które chcemy wyciąć znalazły się w zdefiniowanych przez nas zbiorze znaków.

No to teraz zróbmy coś takiego.

SELECT
    LTRIM( 'Ala ma kota.' , 'la' )

Wynik

Ala ma kota.

Tutaj w wyniku nasz łańcuch główny nie został ruszony, dlaczego? Przecież zdefiniowaliśmy zbiór znaków 'la' więc LTRIM powinien uciąć coś z początku. Nasza funkcja nie ucięła niczego bo dla funkcji LTRIM wielkość znaków ma znaczenie. Masz łańcuch główny zaczyna się znakiem 'A' ale takiego znaku nie ma w zdefiniowanym przez nas zbiorze znaków. Jeżeli już pierwszy znak nie znajduje się w naszym zdefiniowanym zbiorze znaków, dalsze znaki z łańcucha głównego nawet nie są brane pod uwagę.

Kolejny przykład.

SELECT
    LTRIM('  Ala ma kota.')

Wynik

Ala ma kota.

Tutaj nie mamy zdefiniowanego zbioru znaków. W argumentach funkcji mamy tylko łańcuch główny. Ale zwróć uwagę, że na początku tego łańcucha znajdują się dwie spacje, które w wyniku zostały wycięte. Tak jak pisałem wcześniej jeżeli nie mamy drugiego argumentu w funkcji LTRIM, jedynie co funkcja sprawdzi i zrobi to czy na początku łańcucha głównego znajdują puste spacje i je usunie, tak jak to się wydarzyło w naszym przykładzie.

Teraz przerobimy bardzo fajny przykład.

SELECT
    LTRIM( '  Ala ma kota.' , 'Ala' )

Wynik

Ala ma kota.

Co się stało, przecież w drugim parametrze określiliśmy, że funkcja ma wyciąć ciąg 'Ala' a na początku łańcucha głównego jest słówko 'Ala'. Zwróć jednak uwagę, że na początku łańcucha głównego są dwie spacje, które także są znakami, więc dla funkcji LTRIM łańcuch główny zaczyna się od spacji a nie od znaku 'A', a my w naszym zdefiniowanym zbiorze znaków nie mamy uwzględnionej spacji dlatego funkcja nic nie wycięła.


postgresqlpostgresql