Dell Laser MFP00n 081209201503 4

Dell Laser MFP00n 081209201503 4



(strukturalny język zapytań)


ŁĄCZENIE ZBIOROW DANYCH cd,


USING (fotl(reSQl) umożliwia podmie o«ldfirlonjrch przecinkami ni/w kolumn występujących «ł^ciofiych ubelach Dane z rjrrti kolumn będą wykorzystane do sprawdzenia warunku ilącicniai Np, USING (kolumn#!, kolumna?) jest odpowiednikiem ON (tabrlal.kolumna! ■ Ubel«?.kolumnal ANI) tabeł# 1.kolumna? ■ tabela?.kolumna?).

Pr/yklad (pobieramy mlormac|ł o nazwiskach autorów i tytułach napisanych prici nich książek Nazwiska autorów, którry nu napnali iadn«| książki, orai tytuły książek nieznanych autorów mo zostaną zwrócone): SELECT aulname, tltTe FROM authors AS a INNER JOIN ti 11cauthor ta ON a.au Id * ta.au id INNER JOllf tltles t (JN ta.tltlf id * t.tltlo id

Wskazówki

1.    Nalerv łączyć tabele za pomocą kolumn przeiriowujących pary kluczy pod nawowy obcy

2.    Do złączenia na Iny wykorryitywać calt kluctr podstawowe tabel, (etrli dla |akit|i tabeli tdefimowano Hotony (składający się i kilku atrybutów) kłuci podstawowy, łącząc taką tabelą, trieba odwolai sią do całego kluua

). Obukty należy łączyć ta pomocą kolumn tego samego typu.

4 Nazwy kolumn należy poprzedzać aliasem nuwy obiektu łródłowego, nawet |tżeli kh nazwy są unikatowe w ten sposób poprawia się oytelnołć zapytania.

S. Naloty ogranicza! liczbą łączonych obiektów do mttbądnego minimum Na przykład (cieli wymagany |etl tylko identyfikator obiektu, 1 reguły me trzeba odwoływał się do p inłormac|e o tym obiekcie I

Złąacnlt naturalna    __

Wynikiem rlączeiua naturalnego jest tbiór wierszy łączonych tabel, dla których wartości kolumn określonych pako warunek złączenia są takie same Ponieważ w relacyjnych bazach danych inlormac|e są podmiocie pomiąłby tabele zawierające dane

0    obiektach jednego typu, złączenie naturalne jest najczyściej wykorzystywanym (i domyślnym) złączeniem obiektów łącząc w ten sposób obiekty, należy pamiętać o naitąpujących zasadach

1    Ponieważ złączenie naturalne jest domyślnym typem złączenia, można pominąć słowo kluczowe INNER.

2.    Należy podać pełną nazwą atrybutu, ta pomocą którego łączy sią obiekty.

3.    łączenie obiektów za pomocą atrybutów, które przyjmują wartość NtllL, zakończy sią niespodziewanymi wynikami

4 Serwety baz 4anjrch nie sortu|ą wyniku złączenia naturalnego aby uzyskać posortowani dane, należy utyć klauzuli ORDER BY,

Zlzącgwnla zmwriftrznm_____

Wynikiem lewo lub prawostronnego złączenia


do przechowującej z tabeli


zewnątrznego jen zbiór wierszy łączonych tabel, dla których wartości kolumn określonych |ako warunek zlącteeiia są takee same; zbiór ten uzupełniony jeit

0    pozostało wierne z lewej lub prawe| łączonej tabeli Nieistniejące warioici reprezentowane tą w wyniku złączenia przez wartość NULI.

Przykład:

SELECT au lnome, title EROM authors AS a LEE! OŚJTLR JOIN tltleauthor ta ON a.au id ■ ta.au id IEFT OUTEIE JO IN lltles t ON ta.1111 r_1 d - t.tltlejd

Wskazówki

1    Należy korzystać ze złączeń zewnątrznyrh do pobrerama kompletnych informacji o wszystkich obiektach danego typu, nawet jeżeli me istnieją

i z mmi obiekt]

zewnętrznego |

zbiór wierszy łączonych tabel, dla których wartości


powiązane z mmi obiekty innego typu.

2. Wynikiem pełnego złączenia zewnętrznego jest


kolumn określonych jako warunek złączenia są takie same, uzupełniony o pozostałe wiersze z obu łączonych ubel

Zł^catanła kiryiowt


Wynikiem złączenia krzyżowego jest iloczyn

' ‘ i łącznych o......

ń, w tym wj obiekty nie musrą mieć wspólnych atrybutów Przykład

SFLECT au Wiame, tttle FROH authors AS a CROSS JOIN tltlcs AS ta


kirtrijaritki łącznych obiektów W przeciwieństwie do innych typów złączeń, w tym wypadku łączone


Wskazówka

Złączenia tego typu ta rzadko w znormalizowanych barach <


notowane

danych i służą raczej


do generowania danych testowych mi do pobierania

istniejących danych.

Złączanie tabeli z nią samą

Złączenie tabeli z nią samą stosujemy, kiedy chcemy wybrać rekordy z tabeli na podstawie wspólnych wartości atrybutów rekordów tej samej tabeli Przykład:

SELECT a.empłoyeeld, a.lastname, b.employeeid, łz.lastname EROM empłoyocs AS a INNER JOIN employees AS b ON a.title - b. title WHERE a.empłoyeeld > b.employeeid

Wskazówki

1.    Należy utworzyć różne altasy dla łączonej tabeli i konsekwentni* odwoływać sią do aliatów,

a me do nazwy tabeli w ramach zapytania

2.    Uzdy rekord, w którym wartości atrybutu złączenia bądą sobie równe, zostanie dodany do wyniku złączenia, co spowoduje powstanie duplikatów rekordów Korwiązimem (ego problemu jest użycie asymetrycznego (np większy niz) warunku logicinegu w klauzuli WHERE.

Złączenie wyników - operator UNION la pomocą operatora teonomiwzościowego UNI ON morirny dodać wyniki poszczególnych zapytań. Łączone wyniki muszą składać sią z takiej samej liczby kolumn, a poszczególne kolumny muzzą być tego samego typu, poza tym konieczne jest, aby wystypowały one w tej tame| kolejności w obu wynikach


Tabele tą reprezentacjami cbiorów, tak wiąc na sumą składają tle wiersze obu tabel:

Tabelal L/TabeM = (wiersz: wtersi 6 Tabelal


lub wiersz <■ Tabela}}.

Przykład:

SELECT (flrstname ♦ ' ' ♦ lastname) AS nazwa, city FROM employees UNION

SELECT companyname. city FROM customers ORDER BY nazwa DESC

Wskazówki

1.    Domyślnie duplikaty są usuwane ze zbioru powstałego przez złączenie wyników zapytań Utycie słowa kluczowego ALL po operatorze UN I ON spowoduje, u me bądą one usuwane (dotyczy to wszystkich operatorów

teorio mnogościowych).

2.    Dzielenie skomplikowanych zapytań i łączenie ich wyników jest jednym te sposobów poprawy wydajności zapytań,

Cząk wspólna - operator INTEWSEC (Po»tqraSQL)_


W wyniku użycia operatora INTERSEC uzyskujemy wiersze wspólne dla wtryttkich tabel wchodzących w skład instrukcji SELECT: Tabelal r .1abela2 -(wiersz: wiersz € Tabelal i wlerti c Tabela]}.

Przykład

SELECT descrłptłon FROM pruducts WHERE Id G*1 INIERSEC”

SELECT descrłptłon FROM products WHLRE Id G*2

Wskazówka

W serwerach bar danych nieoblługu|ących operatora INHRSEC tam sam wynik można uzyskać za pomocą podzapytania

Róinica - operator MINUS (Po»tgraSQL)_


W wyniku użycia operatora MINUS utyskujemy tr wiersze, które rosiały zwrócone tylko przer pierwtrą instrukcją SELECT i nie zostały zwrócone przez którakolwiek z następnych instrukcji SELECT:

Tabelal \Tabela2 “ (wiersz: wiersz e Tabelal i wiersz«Tabelal}.

Przykład:

SELECT descrłptłon FROM products WHERE Id G*3 MINUS “

SELECT descrlptton FROM products WHFRE Id G-1

Wskazówka

W serwerach baz danych nieobslugującyth operatora INTERSEC tam sam wynik moirsa uzyskać za pomocą podzapytania


GRUPOWANIE DANYCH


W języku SQ1 dostępnych jest kilka funkcji grupujących. Wykorzystując funkcje tego typu, uzyskujemy pojedynczy wynik obliczony na podstawie wielu argumentów Na pmrklad możemy w tabeli policzyć liczbą wiersry spełniających określone kryteria lub możemy wyrlicryć wartość łredma dla wszystkich wartości i wybranei kolumny Użycie tych łunltcji rseyłde związane jest z operacją na jednej kolumnie (na której wykonywane są obliczenia), a jako wynik zwracany jest tylko jeden wiersz


Funkcje grupujące


Wszystkie opisywane lunkcje domyślnie nie eliminują powtarzających uę wierszy, co odpowiada użyciu operatora ALL jako pierwsrrgo argumentu wywołania leżeli chcemy ograniczyć dziedzinę lunkcji do unikatowych wartości wiertcy, należy użyć operatora OISTINCT.

COUNTO


funkcja zawraca liczbę wystąpień wartości wyrażeń różnych od NUU, chyba że jako argumentu użyto znaku * - takie wywołanie funkcji spowoduje obliczenie liczby wszystkich wierszy, łącznie z duplikatami i wartościami NULI,

Przykład

SELECT COUNI (•) AS (liczba wszystkich wierszy w tabeli]

IROM Cateyorles

Wskazówka

Wykonanie powyższego zapytania dla bardzo dużych tabel może być czasochłonne Ponieważ serwery baz danych prrechowują (w peitaci niezbędnych dla optymalizacji zapytań statystyk) informacje o liczbie wierire luzdej tabeli, leptrym rozwiązaniem jest odwołanie uę do specyficznej dla danego serwera tabeli systemowej.

—ttl)___


funkcja iwraca sumę wszystkich argumentów wywołania.

W przeciwieństwie do funkcji COUNI, która dnala dla wirystkich typów danych, funkcja SIJM dnala tytko dla argumentów herbowych luk dających się automatycznie na liczby (konwertować funkcja SUM nie uwzględnia wartości NULL.

Przykład:

SELECT SUM (UnitPrtce)

FROM Products


funkcja zwraca wartość średnią przekazanych argumentów Wartości NIM L mc są uwzględniane Argumentami lunkcji AVG musrą być dane liczbowe.

Przykład:

SELECT AVG (UnttPrlce)


FROM Products


funkc|i MIN ilury do znajdowania wartości na|mnitjwt| w zbiorze wartości, a funkcja P1AX najwięksiej Obie lunkcje, podobnie jak funkcja COUNT, mogą być utyte dla różnych typów danydi. Przykład

SELECT MAX (OrdnrOate)

FROM Orders


?*?ąuzuU sRDUfMJY


Okrtila grupy wieruy, dla których będą obliczane wyniki funkcji grupujących wymienionych w poleceniu SELECT. jeżeli rosiała użyta, na liście argumentów klauzuli GROUP BY muszą znaleźć uę wszystkie niebędarr wynikiem funkcji grupującej wyrażenia wymienione w poleceniu SELECT.

Składnia:

(GROUP BY (ALI] wyrażenie [,...n]

(WITH ICUBE | ROLLUP)]

]

gdzie:

ALL (MS SQl Serwer) powoduje, że do wyniku (osuną dodane wiersze mespefmające warunku okrellonego w klauzuli WHt RE. Wynik funkcji grupowych dla tych wiersry jest wartością NULL, CUBE (MS SQl Serwer) powoduje (wrócenie dodathoweeo wiersza, zawierającego sumę wyników oolicronych dla wszystkich możliwych kombinacji poszczególnych grup,

ROLLUP (nS SQt Serwer) powoduje (wrócenie dodatkowego wierna, uwierającego sumę wyników oblKtonych grup wartości.

Wikaiówkl

1.    Serwer baz danych zwróci jeden wiersz dla każdej grupy wartości

2.    Kolumny wymienione w klauzuli GROUP BY muszą zostać wymienione w poleceniu SFLECT.


PODZAPYTANIA


Podzapytamem nazywamy instrukcję SELECT umieszczoną w ramach innej instrukcji języka SQL (instrukcji SELECT, INSERT, UPOAtr lub DELETE) Podrapytama i reguły mogą rostać zastąpione zlącremami lub wyrażeniami. Najczęstszymi powodami tworzenia podrapylaó są

I. Chęć uprouuema zapytania przez podzielenie go na kilka


prostszych zapytań 2. Wykonyst,


ykorzystanie wyniku jednego zapytania jako danych źródłowych dla innego zapytania

Wikarówki

1.    Podzapytanie musi zostać zapisane w nawiasie

2.    Wyntk podzapytania me może zawierać danych typów

HIOBlubCLOB.


). Maksymalna liczba kolumn ograniczona jest typem

poszczególnych danych zwróconych przez funkc|e grupujące

SritCT CuStcrmerlO, SIIM(frelgHt)

FROM orders

GROUP BY ALL CustomerlO

SELECT aulname;. COUNI(tttle id)

TROM authors AS a LEFT OtlTFR JOIN tltleauthor AS ta ON a.au_1d • ta.au Id GROUP BY au Irianie

SELECT ordertd, CustomerlD,

SUM(Frelght) AS Suma TROM orders

GROUP BY orderld, CustomerlD Ul TH CUBE

ORDER BY orderld, CustomerlD


Klauzula HAVING


Określa warunki wyszukiwania dla grup luk lunkcji grupujących Za pomocą klauzuli HAVING określa się warunki, które musrą zoitać spełnione przez grupy wymienione w klauzuli GROUP HY, tak jak za pomocą klauzuli WHFRE okreila się warunki, które muszą spełnić wiersze wymienione w klauzuli SELECT. Składnia:

(HA1MNG < warunek wyszukiwania »]

Przykład:

SELECT aulname, COUNT(title id)

FRCJM authors AS a LEFT OUTFR JOIN tltleauthor AS ta ON a.au_td * ta.au id GROUP BY au Iname HAVING COUNT(t1tle_1d)>?

Wskazówki

1.    Używanie klauruli HAV ING w zapytaniu, w którym mr występuje klauzula GROUP BY, choć dopuszczalne, jest niczym nieuzasadnione.

2.    Warunek wystukiwania morę dotyczyć dowolnych danych wymienionych w poleceniu SELECT.

J Warunek umieszczony w klauzuli HAVI NG wyrażony jest za pomocą dowolnej funkcji grupującej 4 Klauzula HAVI NG ma wyżery priorytet niż słowo kluczowe AU i jeżeli wystąpi w zapytaniu zawierającym to słowo, zapylanie rwnki wyłącznie grupy spełniające podany warunek wystukiwania.


Klauzule COMPUTE i COMPUTE BY (MS SQL Scrver)


Obie klauzule zwracają dodatkowy wiersz, zawierający obliczone dla wyniku podsumowania. Klauzula COMPUTl BY dodatkowo zwraca obliczone sumy ctęiciowr Obie klauzule mogą być wielokrotnie użyte w tym samym zapytaniu.

Składnia:

[COMPUTE

(IAYG | COUNT | MAX | MIN | ST0FV | 5TDEYP | YAR | VARP | SUM) (wyrażeni*)) (,...n]

(BY wyrażenie [,...n]]

]

Przykład:

SFLFCT CateyorylD, ProductNamr, UnitPrtce FROM Products OROFR HY CateyorylD COMPUTE SUM(UnUPrice) BY CategorylO COMPUTE SUM(UnłtPrice)

Wskazówki

1.    Niemożliwe jest sformatowanie danych zwracanych prnz obie klauzule.

2.    Niemożliwe jest obłic/eme wyniku na podstawie danych rypu teit, rstent luk image.

). Dane, na podstawie których będzie obliczony wynik, muszą


któcych I

zostać wymienione w poleceniu SE IFC T.

Należy u/ywać klauzuli COMPUTE BY łącznie z klauzulą OROFR HY • w innym wypadku obliczone sumy częłciowe będą nieuporządkowane i nieczytelne

lista i kolejność kolumn wymieniona w klauruli COMPUTE HY musi dokładnie odpowiadać liście kolumn wymienionych w klauzuli ORDER BY.


3 Serwery pozwalają na zagnieżdżanie zapytaó do ohreilonego poziomu ■ w przypadku skomplikowanych lub rwracającycb duzi liczby danych podzapytań maksymalny poziom Zagnieżdżenia może wynosić kilkanakie, a nawet kilka zapytań


Podzapytania niepowiązane


Podzapytania niepowiązane w pierwtzej kolejności wykonują zagmezdzoną instrukcję SELECT, a zwrócone przez mą dane przekazują do zapytania zewnętrznego i wykonują je W lego typu podzapytaniach zapytanie wewnętrzne wykonywane |fil tylko raz

Podzapytania Jako źródła danych _

Wynik podzapytania może być zbiorem danych źródłowych dla innego zapytania W takim przypadku podzapytanie znajduj* seą w klauzuli IRĆJM zapytania nadrzędnego



Wyszukiwarka

Podobne podstrony:
Dell Laser MFP00n 081209201503 3 (strukturalny język zapytań)tYPY DANYCH ccł. Typy znakowe char rep
Dell Laser MFP00n 081209201503 5 upiętych e minią ROIIP HY, U, LECISOL (sfrekturainy język zapytań)
Dell Laser MFP00n 081209201503 1 UPRAWNIENIA <»zdy serwer bu danych umoilłwi^wtyfikatif uzylkowm
Dell Laser MFP00n 081209201503 2 7 Marcin Szeliga HelionPV2TABLICE INFORMATYCZNE STANDARD ANSI ORAZ
SQL: Strukturalny Język Zapytań (ang. Slructured Ouery Language) •    Definiowanie
SQL - Structured Query Language SQL - Structured Query Language (Strukturalny Język Zapytań) -specja
WSiP4 64 BAZY DANYCH I SYSTEMY BAZ DANYCH 13 Strukturalny język zapytań SQL ZAGADNIENIA ■
SQL (ang Structured Query Language) - strukturalny język zapytań używany do tworzenia, modyfikowania
79595 skanuj0265 (3) Rozdział 10.Podstawy SQLCzym jest SQL? SQL, czyli Structured Query Language, to
Programowanie strukturalne język C - wprowadzenie Dr inż. Sławomir Samolej D102 C, tel: 865 1766,&nb
teleroute Wsparcie t. *448000869221 8:00 - 17:00 Zaloguj sie język angielski v Giełda
44501 ullman253 (2) 512 8 ZORIENTOWANE OBIEKTOWO JĘZYK! ZAPYTAŃ Pozostałe funkcje można definiować a
WSiP6 66 BAZY DANYCH I SYSTEMY BAZ DANYCH W strukturalnym jeżyku zapytań taka selekcja będzie miała
SERWERY BAZ DANYCH I ZAWANSOWANY JĘZYK ZAPYTAŃ SQL Osoba prowadząca zajęcia: dr Ryszard Kurzyjamski,

więcej podobnych podstron