lipiec 11th, 2008
Możemy połączyć tabele za pomocą NATURAL JOIN jeżeli w łączonych tabelach są kolumny które nazywają sie tak samo i są tego samego typu, przykład:
select imie, nazwisko, adres from pracownik NATURAL JOIN zamieszkanie;
Jeżeli kolumny mają te same typy i dane i te same nazwy wtedy należy użyć łączenia typu JOIN … USING i tu wskazać nazwę kolumny, przykład:
select a.imie, a.nazwisko, b.wynagrodzenie from pracownik a JOIN pensje b USING (wyn_id);
Jeżeli chcemy wskazać jak mamy połączyć tabele tj. jakich kolumn użyć do połączenie wtedy używamy JOIN … ON … przykład:
select a.imie, a.nazwisko, b.wynagrodzenie from pracownik JOIN pensje ON a.wyn_id=b.wyn_id;
LEFT OUTER JOIN to połączenie w wyniku którego wszystkie wiersze są wyświetlane z lewej tabeli nawet jak nie maja odpowiedników w prawej tabeli,
RIGHT OUTER JOIN odpowiednio wyświetlają się wszystkie wiersze z prawej tabeli nawet jak nie mają odpowiedników w kolumnie łączącej w lewej tabeli.
FULL OUTER JOIN wszystkie wiersze są wyświetlane z prawej tabeli nawet jak nie maja odpowiedników w lewej tabeli a także wszystkie wiersze są wyświetlane z lewej tabeli nawet jak nie maja odpowiedników (kolumnowych) w prawej tabeli.
Tags: FULL OUTER JOIN, JOIN ON, LEFT OUTER JOIN, NATURAL JOIN, Połączenia, połączenie FULL OUTER JOIN, połączenie JOIN ON, połączenie LEFT OUTER JOIN, połączenie NATURAL JOIN, połączenie RIGHT OUTER JOIN, RIGHT OUTER JOIN, te same typy, zgodne typy
Posted in łączenie tabel | No Comments »
lipiec 11th, 2008
Istniej możliwość wyświetlania danych z kilku tabel w jednym zapytaniu, żeby to zrobić musimy połączyć te tabele, istnieją trzy sposoby łączenia tabel:
LEFT OUTER, RIGHT OUTER i FULL OUTER.
Tabele łączymy łącząc odpowiednie kolumny, tzn najlepiej jak kolumny mają te same typy i są mają te same wartości, podam przykład połączenia 2 tabel:
tabela Pracownicy i tabela Zamieszkanie,
select pracownicy.imie, zamieszkanie.adres from pracownicy, zamieszkanie where pracownicy.id_prac=zamieszkanie.id_zam;
to zapytanie może wyglądać także:
select x.imie, y.adres from pracownicy x, zamieszkanie y where x.id_prac=y.id_zam;
wynik tych dwóch zapytań będzie identyczny. W tym drugim przykładzie wykorzystaliśmy aliasy.
Tags: FULL OUTER, LEFT OUTER, połączenie 2 tabel, RIGHT OUTER, typu kolumn, Wyświetlanie danych z kilku tabel, zapytanie sql, łączenie FULL OUTER, łączenie kolumn, łączenie LEFT OUTER, łączenie RIGHT OUTER, łączenie tabel
Posted in łączenie tabel | No Comments »
lipiec 11th, 2008
Bardzo często mamy potrzebę posortowania danych które otrzymaliśmy w wyniku zapytania select
przykład:
select imie,nazwisko from studenci ORDER BY 1;
lub w inny sposób
select imie, nazwisko from studenci order by imie;
w pierwszym przykładzie sortujemy po imieniu i w drugim przypadku także po imieniu przykłady pokazuje ze po order by
możemy wymienić albo nazwę kolumny albo nr kolumny, ten nr to nr w zapytaniu, kolumny w tabeli nie są numerowane. Sortowanie możemy zrobić rosnąco ASC lub malejąco DESC.
Jeżeli nie napiszemy w jaki sposób ma być sortowanie to defaultowo przyjmuje:
-) dla wartości numerycznych rosnąco od 1 do 999
-) dla wartości alfanumerycznych rosnąco alfa-numerycznie od A do Z
-) dla daty od najwcześniejszej do późniejszej 03-JUL-2001 do wcześniejszej 04-Jan-2007
Tags: asc, daty, desc, kolumny w tabeli, oracle sortowanie, order by, order by asc, order by desc, posortowanie danych, select, sortowanie, sortowanie danych select, sortowanie malejąco, sortownie rosnąco, sql, wartości alfanumeryczne, wartości numeryczne
Posted in srtowanie danych | No Comments »
lipiec 11th, 2008
W oracle SQL możemy wymienić następujące funkcje:
REGEXP_INSTR, REGEXP_LIKE, REGEXP_REPLACE, REGEXP_SUBSTR, najlepszym sposobem opisu tych funkcji będą przykłady:
-) funkcja REGEXP_LIKE:
select imie, nazwisko from STUDENCI where REGEXP_LIKE(nazwisko, ‘[P|Ir|joz|mo]G[orz|ge]’);
to zapytanie zwróci imię, nazwisko gdzie nazwiska zaczynają sie na P lub IR lub joz lub mo lub zaczyna się na G a kończy na orz lub ge czyli Grzegorz lub George, lub wcześniejsze warunki Paweł, IRek, jozef, monika itd.
-) funkcja REGEXP_REPLACE:
select numer_NIP, REGEXP_REPLACE(numer_NIP, ‘([[.digit.]]{3})\.([[.digit.]]{3})\.([[.digit.]]{2})\.([[.digit.]]{2})’, ‘(\1-\2-\3-\4) from Pracownicy;
ten select spowoduje że NIP z postaci 123.234.75.74 zostanie wyświetlony jako 123-234-75-74
Tags: funkcja REGEXP_INSTR, funkcja REGEXP_LIKE, funkcja REGEXP_REPLACE, funkcja REGEXP_SUBSTR, funkcje sql, REGEXP_INSTR, REGEXP_LIKE, REGEXP_REPLACE, REGEXP_SUBSTR, Regular Expressions, sql Regular Expressions
Posted in Regular Expressions | No Comments »
lipiec 11th, 2008
Przy zapytaniach select w części warunków możemy stosować następujące operatory:
= równości,
<> różne,
!= nie równe,
> większe,
>= większe równe,
< mniejsze,
<= mniejsze równe
BETWEEN … AND … operator pomiędzy np. beetwen 5 and 8 czyli wszystkie wartości pomiędzy 5 i 8 czyli np. 6 będzie spełniało ten warunek;
LIKE operator do wyszukiwania stringu np. like ‘%IO%’ warunek będzie spełniony jeżeli w wyrazie znajdą sie znaki litery IO np. select imie , nazwisko from STUDENCI where imie like ‘%IO%’; w wyniku tego zapytania dostaniemy wszystkie rekordy które w kolumnie imie bedą miały IO koło siebie, np. PIOTR, WIOLA itp. inny przypadek where nazwisko like ‘P%’ ten warunek zwróci wszystkich których nazwisko zaczyna sie na P czyli np. Paweł, Piotr, Przemek
IN(), NOT IN() warunek czy testuje czy jest czy nie np. select * from STUDENCI where wiek IN (13,15); zapytanie zwróci wiersze które spełniaja warunek że wiek studentów będzie 13 lub 15.
Tags: between and, like operator, mniejsze, nie równe, operator in, operator not in, operator równości, operatory sql, pomiędzy, rekordy, różne, warunki, where, większe, wyszukiwanie stringu, zapytanie, zapytanie select
Posted in operator where, operatory sql | No Comments »