osiągnął długość podaną jako drugi parametr. Jeśli wynik jest dłuższy niż zadeklarowana długość, zostaje ucięty z prawej strony.

Podobne dokumenty
Bazy danych 2. Anna Fiedorowicz Wydział Matematyki, Informatyki i Ekonometrii

niż zadeklarowana długość, zostaje ucięty z prawej strony. osiągnął długość podaną jako drugi parametr. Jeśli wynik jest dłuższy

Bazy danych w aplikacjach internetowych

Język SQL. Rozdział 3. Funkcje wierszowe

Funkcje. Rozdział 3a Funkcje wierszowe. Funkcje znakowe (1) Funkcje wierszowe

PL/SQL. Funkcje wbudowane

Język SQL. Rozdział 3. Zaawansowana selekcja danych

Funkcje. Rozdział 3. Funkcje. Funkcje znakowe (1) Funkcje wierszowe

Wykład 8 Implementacja języka SQL w systemach baz danych Oracle specyficzne konstrukcje i funkcje Oracle SQL, funkcje numeryczne, znakowe, daty i

PL/SQL. Część 1 Oracle SQL. Piotr Medoń

Przydatne sztuczki - sql. Na przykładzie postgres a.

Zagadnienia podstawowe

Bazy danych. Plan wykładu. Dekompozycja relacji. Anomalie. Wykład 5: Projektowanie relacyjnych schematów baz danych. SQL - funkcje grupujce

Zarzadzanie transakcjami. Transakcje

Spis treści. 1 Kraj/region i język Ustawienia regionalne Liczby Waluta Czas i data Inne...

PL/SQL. Część 1 Bloki PL/SQL. Piotr Medoń

Ściągawka z funkcji i właściwości systemowych VBA. Opis działania i parametrów. Nazwa funkcji. Składnia zwracanej wartości

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel

Szkolenie Oracle SQL podstawy. Terminy lutego 2010 First Minute! 1100zł!

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

SQL i PL/SQL podstawy

BAZY DANYCH JĘZYK ZAPYTAŃ BAZ DANYCH SQL. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

SQL (ang. Structured Query Language)

Bloki anonimowe w PL/SQL

Administracja i programowanie pod Microsoft SQL Server 2000

Bazy danych 7/15. Andrzej Łachwa, UJ,

41. Zmienne lokalne muszą mieć nazwę, którą poprzedza (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image)

Bazy danych 6. SQL funkcje daty i czasu, zmienne tymczasowe, aliasy

Oracle PL/SQL. Paweł Rajba.

OBLICZENIA NA DANYCH

FUNKCJE TEKSTOWE W MS EXCEL

Aliasy Select p.first_name, p.salary, j.job_title from employees p, jobs j where p.job_id=j.job_id;

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Grupowanie i funkcje agregacji

Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

Ref. 7 - Język SQL - polecenia DDL i DML

1 Podstawy c++ w pigułce.

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek

Przegląd podstawowych funkcji Excel.

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

1 Obsługiwane funkcje wyzwalaczy

Autor: dr inż. Katarzyna Rudnik

Cw.12 JAVAScript w dokumentach HTML

Wprowadzenie do baz danych

Bazy danych. Andrzej Łachwa, UJ, /14

Wykład 5. SQL praca z tabelami 2

a) Polecenie: Wyświetl wszystkie rekordy z tabeli Pracownicy (wszystkie atrybuty)

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Bazy danych SQL Server 2005

Zbiór pytań nr 2. 1 Tabela DEPARTMENTS ma następującą strukturę:

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Język SQL. Rozdział 2. Proste zapytania

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Marek Rakowski Zdanie SELECT wybieranie danych z wielu tabel Strona 1 z 6

DZIAŁANIA NA UŁAMKACH DZIESIĘTNYCH.

Przykłady zastosowań funkcji tekstowych w arkuszu kalkulacyjnym

Wprowadzenie do SQL Użycie kwerend i SQL

Laboratorium Bazy danych SQL 2

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Ćwiczenie zapytań języka bazy danych PostgreSQL

LibreOffice Calc VBA

Funkcja INITCAP. SQL> select initcap(dname), initcap(loc) from dept; Funkcja SUBSTR

Oracle11g: Wprowadzenie do SQL

Formatowanie zawartości komórek

2. Język SQL SQL jest językiem deklaratywnym (Charakterystyczną cechą języków

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

XQuery. sobota, 17 grudnia 11

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Technologie baz danych

Kiedy i czy konieczne?

Uprawnienia użytkowników Role użytkowników

Procedury składowane. Funkcje vs. procedury Funkcja. Procedura. zazwyczaj ma parametry tylko typu IN; można wywoływać z poziomu

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

2 Przygotował: mgr inż. Maciej Lasota

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

Operatory cd. Relacyjne: ==!= < > <= >= bool b; int i =10, j =20; dzielenie całkowitych wynik jest całkowity! Łączenie tekstu: + string s = "Ala ma ";

Programowanie w SQL. definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE,

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Pakiety Matematyczne - R Zestaw 1.

Autor: Joanna Karwowska

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Obliczenia inżynierskie arkusz kalkulacyjny. Technologie informacyjne

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Ćwiczenie 1. Matlab podstawy (1) Matlab firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycznych

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

1 Podstawy c++ w pigułce.

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

S Instrukcje rozszerzone oraz umożliwiające operacje na znakach i łańcuchach. Automatyka i mechatronika

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015

Lista zadań nr Wyświetlić imię i nazwisko dla każdego pracownika z departamentu DEP T NO o numerze 000.

1. Wprowadzanie danych z klawiatury funkcja scanf

EGZAMIN MATURALNY Z INFORMATYKI WYBRANE: ... (system operacyjny) ... (program użytkowy) ... (środowisko programistyczne)

Transkrypt:

Funkcje jednowierszowe. Upper: Zamienia wszystkie litery na wielkie. Lower: Zamienia wszystkie litery na małe. Initcap: Zwiększa pierwsze litery wszystkich wyrazów. np.select initcap( ola, ala ) from dual; Uwaga: dual: specjalna tablica w Oracle, z jednym wierszem i jedna kolumna, używamy jej w przypadku pisania zapytań, które nie odwołuja się do danych z żadnej tablicy (widoku). Lpad(text,n,znak) Funkcja uzupełniająca z lewej strony znakami podanymi jako trzeci argument w taki sposób by wynik osiągnął długość podaną jako drugi parametr. Jeśli wynik jest dłuższy niż zadeklarowana długość, zostaje ucięty z prawej strony. np.select Lpad(job_code,5, x ) Rpad(text,n,znak) Funkcja uzupełniająca z prawej strony wynik znakami podanymi jako trzeci argument w taki sposób, by wynik osiągnął długość podaną jako drugi parametr. Jeśli wynik jest dłuższy niż zadeklarowana długość, zostaje ucięty z prawej strony. RTrim(text,text2), LTrim(text,text2) Funkcje te usuwają z prawej lub lewej strony napisu text znaki zawarte w text2. Jeśli nie podamy wartości text2, usunięte zostaną spacje (i w praktyce do tego tych funkcji używa się najczęściej). Replace (text, text1 [,text2]) Funkcja zamienia wszystkie wystąpienia ciągu text1 w ciągu text na text2. W przypadku braku ciągu text2 z ciągu text usuwane są wszystkie wystąpienia ciągu text1. translate (text, text1,text2) Funkcja działa podobnie jak funkcja replace, tylko że zamienia w ciagu text wszystkie wystąpienia pojedynczych liter z ciągu text1 na odpowiednie litery z ciągu text2. np.select translate(last_name, ąćęłńóśźż, acelnoszz ) length (text) Zwraca długość ciągu text, jeśli text ma wartość NULL funkcja zwraca NULL. np.select length(last_name) Substr(text, m [,n]): Funkcja wycina z ciągu text n znaków począwszy od pozycji m. Jeżeli n nie jest podane, to wycina wszystkie znaki od pozycji m do końca ciągu text. Jeżeli m jest ujemne, to znaki są odliczane od końca ciągu text. Przykłady: (1) Wyświetlenie pierwszych czterech znaków nazwiska. select substr(last_name,1,4) (2) Funkcja substr z użyciem dwóch parametrów zwróci ciąg znaków zaczynając od drugiego znaku, do końca (czyli usunie pierwszy znak). select substr(last_name,2) (3) Substr z m ujemnym. Parametr n najbezpieczniej w takiej sytuacji jest podać większy niż długość najdłuższego wyrazu (jeżeli m jest większa niż długość, zwraca null). select substr(last_name, -2, 20) from employees; //ostatnie dwa znaki z nazwiska to_char Funkcja ta ma kilka zastosowań. Jedno z nich odnosi się do zamiany liczb na postać znakową. Inne formy to_char zostaną omówione później. to_char (liczba [,wzorzec]) zamienia liczbę na postać znakową według podanego wzorca. np. Chcemy wyświetlić roczne wynagrodzenie pracowników podzielone przez 12, otrzymaliśmy mało czytelny wynik: select last_name, salary/12 as "miesięczne zarobki" Stosując funkcję to_char możemy zamienić go na odpowiadający nam format: select last_name, to_char((salary/12), 9999.99 ) as "miesięczne zarobki"

Wzorzec w funkcji to_char jest napisem, który może zawierać następujące elementy: Element Opis Przykład Wynik 9 Cyfra (liczba dziewitek okrela szeroko pola) 999999 1234 0 Wywietl wiodce zera 099999 001234 $ Ruchomy znak dolara $999999 $1234 L Ruchomy znak lokalnej waluty L999999 zł1234. Kropka dziesitna na wskazanej pozycji 9999.99 1234.00, Przecinek na wskazanej pozycji 999,999 1,234 MI Znak minus z prawej strony (przy wartociach ujemnych) 9999MI 1234- PR Liczby ujemne w nawiasach 9999PR <1234> EEEE Notacja inynierska (w formacie musz by cztery E) 9.9EEEE 1.2E+03 V Pomnó przez 10 n razy (n to liczba dziewitek po V) 9999V99 123400 to_number (text [,wzorzec]) Funkcja zamienia ciąg znaków na liczbę według wzorca zbudowanego podobnie dla funkcji to_char (jak powyżej). Funkcja ta jest przydatna, gdy w naszej bazie liczby przechowywane są w postaci tekstowej. SELECT To_Number(postal_code, 99999) FROM locations WHERE country_id= US ; decode Select decode (nazwa_kolumny,wartość, zamiennik, wartość2, zamiennik2,wartość domyślna) [alias] from nazwa_tabeli; Funkcja testuje wartość w podanej kolumnie i w zależności od wartości mieszczącej się w pierwszym argumencie zwraca wartość podaną w drugim argumencie. Jeśli nie znajdzie odpowiedniej wartości w podanych warunkach, wyświetli wartość domyślną podaną jaką ostatni warunek. Funkcje numeryczne ROUND (x,[,y]) Zaokrągla x z dokładnością do y miejsc po przecinku. Jeśli y nie zostało podane, jest domyślnie ustawiane jako 0. (select round(15.75, 1) from dual; -> 15.8 TRUNC (x,[,y]) Ucina x z dokładnością do y miejsc po przecinku. Jeśli y nie zostało podane, jest domyślnie ustawiane jako 0. Uwaga! round, trunc z ujemnym parametrem y zaokrągla (obcina) liczbę z lewej strony przecinka, czyli do dzisiątek, setek, tysięcy, itp.) POWER (x,y) > x y. SQRT(x) > x. SIGN(x) Zwraca wartość 0, 1 lub -1 w zależności od znaku liczby x. ABS(x) Wartość bezwzględna liczby x. MOD(x,y) Reszta z dzielenia x przez y. Jeśli y = 0 zwraca x. SIN(x), COS(x), TAN(x) Funkcje trygonometryczne, x jest podawane w radianach. Daty Aktualna data jest przechowywana w zmiennej systemowej SYSDATE. select sysdate from dual; Daty można również od siebie odjać. Wynikiem będzie liczba dni pomiędzy datami. Do daty możemy również dodać liczbę całkowita i jako wynik uzyskamy datę za podaną ilość dni. MONTHS_BETWEEN(date1,date2) Zwraca ilość miesięcy pomiędzy datami. ADD_MONTHS(date,n) Dodaje do podanej daty n miesięcy, np. SELECT Add_Months(SYSDATE,3) FROM dual; LAST_DAY(date) Zwraca datę ostatniego dnia miesiąca zawierającego podaną datę.

Daty Daty ROUND(date[,p]) Funkcja zaokrągla datę do północy, jeśli jest przed południem lub do północy dnia następnego, jeśli jest po południu. W przypadku podania dodatkowego parametru p zaokrągla datę do pełnego miesiąca (p= month ) lub roku (p= year ), np. zaokrąglenie do pełnego miesiąca: SELECT Round(SYSDATE, month ) FROM dual; TRUNC(date[,p]) Ucina daty. Parametr p działa analogicznie, jak dla round. to_date (text [,text1]) Funkcja zamienia ciąg znaków text na datę według wzorca zawartego w text1. Wzorzec pozwala poprawnie zinterpretować znaki zawarte w ciągu text. Używamy najczęściej przy wstawianiu dat do bazy. SELECT To_date( 20010509, yyyymmdd ) FROM dual; SELECT To_date( 2001-05-09, yyyy-mm-dd ) FROM dual; SELECT To_date( 2001 V 09 18:34, yyyy rm dd hh24:mi ) FROM dual; SELECT To_date( January 15, 1989, Month dd, YYYY, NLS_DATE_LANGUAGE = English ) FROM dual; Formaty dla funkcji to_date:! " #$%& ' # " (#$&& ' & # )) ) *#$+ ), - ),-., ) )5 /$0// 11 1 *$+ 111 1 *$22+.. 3!!*$+..% 3!!*#$+ )/ )*#$(&+ 44 4!*#$(&+ Funkcja to_char dla dat to_char (date [,text1]) Zamienia datę na postać znakową według wzorca zawartego w ciągu text1. Funkcję to_char można wykorzystać do przetwarzania dat wg wzorca. Od omawianej wcześniej odmiany to_char różni się rodzajem parametrów. Tutaj przyjmuje daty, wcześniej były to liczby. Dla funkcji to_char stosuje się te same wzorce dat jak dla funkcji to_date. Można też użyć poniższych. Parametr Opis YEAR Rok, słownie Q Kwartał roku (1, 2, 3, 4). WW Tydzie w roku. W Tydzie w miesicu. D Dzie w tygodniu (1-7). DAY Nazwa dnia tygodnia.

Funkcja EXTRACT EXTRACT(part from datetime) zwraca wartość odpowiedniego pola z daty lub godziny. Funkcji możemy użyć, aby wybrać rok (YEAR), miesiąc (MONTH) lub dzień (DAY) z daty, albo godzinę (HOUR), minutę (MINUTE) lub sekundę (SECOND) z pola typu timestamp. Wybierzmy wszystkich pracowników zatrudnionych od 2005 roku: SELECT * FROM employees WHERE EXTRACT(YEAR FROM hire_date)>=2005; Poniższa instrukcja wybiera godzinę, minutę i sekundę z daty i godziny systemowej: SELECT EXTRACT(HOUR FROM SYSTIMESTAMP), EXTRACT(MINUTE FROM SYSTIMESTAMP), EXTRACT(SECOND FROM SYSTIMESTAMP) FROM DUAL; Funkcje NVL, NULLIF, COALESCE FunkcjaNVL(wyrażenie, wartość zastępcza) - jeżeli wartością wyrażenia jest NULL, zwraca wartość zastępczą. SELECT city, nvl(state_province, brak ) from locations; Funkcje NVL, NULLIF, COALESCE FunkcjaNVL(wyrażenie, wartość zastępcza) - jeżeli wartością wyrażenia jest NULL, zwraca wartość zastępczą. SELECT city, nvl(state_province, brak ) from locations; COALESCE(wartość1, wartość2, wartość3,...) - służy do wyświetlania z ciągu wartości pierwszej, która nie jest NULL. Należy zachować zgodność typów wartości na liście. SELECT city, COALESCE(state,shortcut, brak ) FROM locations; Funkcje NVL, NULLIF, COALESCE FunkcjaNVL(wyrażenie, wartość zastępcza) - jeżeli wartością wyrażenia jest NULL, zwraca wartość zastępczą. SELECT city, nvl(state_province, brak ) from locations; COALESCE(wartość1, wartość2, wartość3,...) - służy do wyświetlania z ciągu wartości pierwszej, która nie jest NULL. Należy zachować zgodność typów wartości na liście. SELECT city, COALESCE(state,shortcut, brak ) FROM locations; FunkcjaNULLIF(wartość1, wartość2) - służy do sprawdzenia czy dwie wartości są równe. Jeśli wartość1=wartość2, to zwraca NULL, przeciwnie - zwraca pierwszą z podanych wartości. SELECT e.last_name, e.job_id, NULLIF(j.job_id, e.job_id) AS "old job id" FROM employees e, job_history j WHERE e.employee_id = j.employee_id;

Wyrażenie CASE Wyrażenie CASE można stosować w dwojaki sposób: CASE wartość WHEN wartość1 THEN wyrażenie1 WHEN wartość2 THEN wyrażenie2... WHEN wartość_n THEN wyrażenie_n ELSE wartość domyślna Powyższa forma odpowiada zaprezentowanej wcześniej funkcji DECODE (klauzula ELSE... nie jest wymagana). Wyrażenie CASE Wyrażenie CASE można stosować w dwojaki sposób: CASE wartość WHEN wartość1 THEN wyrażenie1 WHEN wartość2 THEN wyrażenie2... WHEN wartość_n THEN wyrażenie_n ELSE wartość domyślna Przykład: SELECT last_name, salary, CASE job_id WHEN AD_PRESS THEN salary*0.2 WHEN AD_VP THEN salary*0.15 WHEN FI_MGR THEN salary *0.1 ELSE 0 AS premia Wyrażenie CASE Wyrażenie CASE W drugiej formie można stosować CASE jako instrukcję warunkową: CASE WHEN warunek1 THEN wyrażenie1 WHEN warunek2 THEN wyrażenie2... ELSE wyrażenie_else Powyższa konstrukcja zwróci wartość wyrażenia1, jeżeli warunek1 będzie prawdziwy, wyrażenia2, jeżeli warunek2 będzie spełniony, itd., jeżeli żaden warunek nie będzie spełniony, zwróci wartość wyrażenia_else. Klauzula ELSE nie jest wymagana. Warunki są sprawdzane zgodnie z ich kolejnością, tzn. wartość zostanie zwrócona dla pierwszego prawdziwego warunku, a dalsze warunki nie są wtedy sprawdzane. SELECT last_name, department_id, CASE WHEN department_id IN (60, 210, 230) THEN IT WHEN department_id =20 THEN Marketing WHEN department_id =30 THEN Sprzedaż ELSE inni AS "dział" FROM employees ORDER BY 2;

Wyrażenie CASE Przykład niewłaściwej kolejności warunków w CASE: SELECT last_name, salary, CASE WHEN salary >5000 THEN ok WHEN salary > 10000 THEN super ELSE kiepsko FROM employees; Drugi warunek salary > 10000 nigdy nie będzie sprawdzany!