Podstawy języka SQL -

Wielkość: px
Rozpocząć pokaz od strony:

Download "Podstawy języka SQL -"

Transkrypt

1 Podstawy języka SQL - Wstęp do DML - Instrukcja Select Składnia SELECT [predykat] { * tabela.* [tabela.]pole1 [AS alias1] [, [tabela.]pole2 [AS alias2] [,...]] [LIMIT ( n ALL )] [OFFSET n]} FROM tabela/e [,...] [WHERE... ] [GROUP BY... ] [HAVING... ] [ORDER BY... ] Klauzula SELECT Określenie pól w zapytaniu predykat: ALL (wartość domyślna) oznacza, że zwrócone zostaną wszystkie wybrane wiersze, DISTINCT oznacza, że z wyniku zostaną usunięte duplikaty wybranych wierszy, TOP (SQL Server) oznacza, że zwrócona zostanie tylko określona liczba wierszy, PERCENT pozwala na względne określenie liczby zwracanych wierszy. Jeżeli użyto znacznika PERCENT, wartość n musi należeć do zakresu <0,100>, WITH TIES oznacza, że zostaną zwrócone wszystkie wiersze, których wartość kolumny wymienionej w klauzuli ORDER BY będzie równa najmniejszej wartości wiersza wyniku. Jeżeli na przykład wybieramy 5 towarów o najwyższej marży, a w tabeli znajduje się 7 towarów o tej samej, najwyższej marży, zapytanie zwróci 7, a nie 5 wierszy, LIMIT (PostgreSOL) jest odpowiednikiem klauzuli TOP, OFFSET określa, ile wierszy zostanie pominiętych, zanim zwrócony zostanie pierwszy wiersz wyniku. * Wskazuje, iż wybrane mają być wszystkie pola z podanej tabeli lub tabel. tabela Nazwa tabeli zawierającej pola, które składają się na rekordy będące rezultatem instrukcji. pole1, pole2 Nazwy pól zawierających dane, które mają być pobrane. Jeśli podano kilka pól, są one pobierane w kolejności podanej na liście. alias1, alias2 Nazwy, które zostaną użyte jako nagłówki kolumn w miejsce nazw kolumn z tabeli. Tabela/e Nazwa tabeli lub tabel zawierających pobierane dane.

2 Słowo kluczowe AS przy definiowaniu aliasu w większości implementacji serwera można pominąć. Klauzula FROM Określa, z których obiektów będą pobierane dane źródłowe W klauzuli FROM możemy odwołać się do dowolnej liczby obiektów tabel, widoków, funkcji tabelarycznych czy wyników podzapytań. Z reguły łączy się obiekty na podstawie wartości wspólnego atrybutu, na przykład wartości pary klucz podstawowy klucz obcy. W takim przypadku musimy użyć jednoznacznego identyfikatora obiektu (kolumny). Ponieważ nazwy kolumn zawierających klucz podstawowy i obcy najczęściej są takie same, musimy poprzedzać nazwy kolumn nazwami tabel. Jeżeli dodatkowo stosujemy konwencję,w myśl której poprzedzamy nazwy obiektów nazwą ich właściciela, zapytanie wybierające dane z kilku obiektów staje się mało czytelne. Rozwiązaniem tego problemu są aliasy. Składnia: [FROM {< zlgczona_tabela >} [,...n]] < zlgczona_tabela > ::= < tabela > < typ_zlgczenia > < tabela > OR < warunek > USING (kolumna,...n) < tabela > CROSS JOIN < tabela > < zlgczona_tabela > < typ_zlgczenia > ::= [INNER {{LEFT RIGNT FULL} [OUTER]}] [< dyrektywa >] JOIN przez posortowanie wierszy, wyeliminowanie duplikatów oraz wykorzystanie aliasów i literałów: gdzie: CROSS JOIN określa, że wynik będzie obliczony jako iloczyn kartezjański złączonych tabel, Minimalną liczbę warunków użytych do łączenia tabel można wyliczyć ze wzoru: minimalna liczba warunków = liczba złączonych tabel 1. INNER JOIN określa, że wynik będzie obliczony jako złączenie naturalnie złączonych tabel. Wynikiem złączenia naturalnego są tylko te wiersze, dla których w użytych do powiązania kolumnach zapisane były te same wartości, LEFT OUTER JOIN określa, że wynik będzie zawierał wszystkie wiersze z lewej tabeli, a z prawej tabeli wyłącznie te wiersze, dla których w użytych do powiązania kolumnach zapisane były te same wartości, RIGHT OUTER JOIN określa, że wynik będzie zawierał wszystkie wiersze z prawej tabeli, a z lewej tabeli wyłącznie te wiersze, dla których w użytych do powiązania kolumnach zapisane były te same wartości. Złączenie prawostronne jest rzadko stosowane przez osoby

3 przyzwy czajone do czytania od strony lewej do prawej, FULL OUTER JOIN określa, że wynik będzie zawierał wszystkie wiersze z obu złączonych tabel, Operacja INNER JOIN może być użyta w dowolnej klauzuli FROM. Jest to najczęściej występujący typ sprzężenia. Sprzężenia wewnętrzne łączą rekordy z dwóch tabel, jeśli w polu wspólnym dla obu tabel znajdują się odpowiadające sobie wartości. SELECT pola FROM tabela_1 INNER JOIN tabela_2 ON tabela_1.pole_1 op_por tabela_2.pole_1 AND ON tabela_1.pole_2 op_por tabela_2.pole_2) OR ON tabela_1.pole_3 op_por tabela_2.pole_3)]; SELECT pola FROM tabela_1 INNER JOIN (tabela_2 INNER JOIN [( ] tabela_3 [INNER JOIN [( ] tabela_x [INNER JOIN...)] ON tabela_3.pole_3 op_por tabela_x.pole_x)] ON tabela_2. pole_2 op_por tabela_3.pole_3) ON tabela_1. pole_1 op_por tabela_2.pole_2; Operacje LEFT JOIN i RIGHT JOIN mogą być zagnieżdżone wewnątrz operacji INNER JOIN, lecz operacja INNER JOIN nie może być zagnieżdżona wewnątrz operacji LEFT JOIN lub RIGHT JOIN. FROM tabela_1 [ LEFT RIGHT ] JOIN tabela_2 ON tabela_1.pole_1 op_por tabela_2.pole_2 Operacja LEFT JOIN służy do tworzenia sprzężenia rozszerzonego lewego. Sprzężenia rozszerzone lewe włączają wszystkie rekordy z pierwszej (lewej) z dwóch tabel, nawet jeśli w rekordach z drugiej (prawej) tabeli nie istnieją odpowiadające im wartości. Operacja RIGHT JOIN służy do tworzenia sprzężenia rozszerzonego prawego. Sprzężenia rozszerzone prawe włączają wszystkie rekordy z drugiej (prawej) z dwóch tabel, nawet jeśli w rekordach pierwszej (lewej) tabeli nie istnieją odpowiadające im wartości. SELECT Typy_zatrudnienia.Typ_zatrudnienia, PRACOWNICY.IMIĘ, PRACOWNICY.NAZWISKO, PRACOWNICY.[KOD DZIAŁU] FROM Typy_zatrudnienia INNER JOIN PRACOWNICY ON Typy_zatrudnienia.min_liczba_godzin <=PRACOWNICY.[CZAS PRACY] AND Typy_zatrudnienia.max_liczba_godzin >= PRACOWNICY.[CZAS PRACY] Klauzula WHERE Określa, które wiersze zostaną zwrócone przez zapytanie. Składnia:

4 [WHERE < warunekwybierania > < złqczenie_starego_typu >] < złqczenie_starego_typu > nazwajkolumny (* = = *) nazwa_kolumny < warunekwybierania > ::= ( [NOT] < predykat > (< warunekwybierania >)) [(AND OR) [NOT] (< predykat > (< warunek_ wybierania >))] [,..."] < predykat > : := ( wyrażenie ( = < >! = > > =! > < < =! <) wyrażenie wyrażenie_znakowe [NOT] LIKE wyrażenie_znakowe } [ESCAPE 'wzorzec'] j wyrażenie [NOT] BETWEEN wyrażenie AND wyrażenie [ wyrażenie IS [NOT] NULL wyrażenie [NOT] IN (podzapytanie wyrażenie.. (ALL SOHE [ ANY) [podzapytanie) EXISTS [podzapytanie) gdzie: złqczenie_starego_ typu jest niestandardowym określeniem warunków złączenia tabel. Symbol * = odpowiada złączeniu lewostronnemu, symbol =* prawostronnemu, predykat jest wyrażeniem o wartości 1 (prawda), 0 (fałsz) lub UNKNOWN, Język SQL nie nakłada żadnych ograniczeń na liczbę argumentów wyszukiwania wymienionych w klauzuli WHERE. W zależności od rodzaju kryteriów i typu wyszukiwanych danych możemy skorzystać z: 1. Operatorów porównania jeżeli chcemy sprawdzić, czy wartość zapisana w tabeli odpowiada wartości warunku wyszukiwania. Aby na przykład wybrać nazwiska i nazwy miast pracowników ze Stanów Zjednoczonych urodzonych przed 1 sierpnia 1955 roku, napiszemy: SELECT lastname, city FROM employees WHERE country = 'USA' AND BirthDate <'8/l/55'; 2. Operatora LIKE jeżeli chcemy sprawdzić zgodność tekstu z podanym wzorcem. Operator LIKE może zostać użyty dla danych tekstowych, binarnych oraz daty i czasu. Operator LIKE dopuszcza stosowanie następujących sym- boli wieloznacznych: a) % odpowiada dowolnemu ciągowi znaków o dłu- gości równej 0 lub większej, b) odpowiada dowolnemu pojedynczemu znakowi, c)[ ] odpowiada pojedynczemu znakowi z określonego zbioru lub zakresu, d)[ A ] odpowiada pojedynczemu znakowi nienależą-cemu do określonego zbioru lub zakresu.

5 Na przykład aby wyświetlić nazwy firm zawierające w swej nazwie słowo Restaurant, których nazwiska przedstawicieli zaczynają się na literę M, napiszemy: SELECT companyname FROM customers WHERE companyname LIKE '"irestaurantv AND ContactHame LIKE 3. Operatorów logicznych jeżeli chcemy połączyć kilka warunków wyszukiwania. Na przykład aby wyświetlić informacje o tych towarach, których nazwy nie zaczynają się na literę T lub R lub zostały dostarczone przez dostawcę o identyfikatorze równym 21 i jednocześnie kosztowały mniej niż 15 $, napiszemy: SELECT productname, supplierid, unitprice FROM products WHERE [productname NOT LIKE 'ff AND productname NOT LIKE 'RH') OR [supplierid = 21 AND unitprice < 15.00); 4. Operatora BETWEEN... AND jeżeli chcemy sprawdzić, czy wartość zapisana w tabeli należy (lub nie) do określonego przedziału zamkniętego. Na przykład aby wyświetlić nazwy towarów, których cena nie należy do przedziału <5,55>, napiszemy: SELECT productname FROM products WHERE unitprice NOT BETWEEN 5 AND 55; 5. Operatora IN jeżeli chcemy sprawdzić, czy wartość zapisana w tabeli należy do określonego zbioru. Na przykład aby wyświetlić nazwy firm ze Stanów lub Włoch, napiszemy: SELECT companyname, country FROM suppliers WHERE country IN ['USA', 'Haly'); 6. Operatora is NULL jeżeli chcemy sprawdzić, czy wartość zapisana w tabeli jest wartością nieokreśloną. Na przykład aby wyświetlić nazwy i numery telefonów tych firm, dla których nie znamy numeru faksu, napiszemy: SELECT companyname, phone FROM suppliers WHERE fax IS NULL; TYPY DANYCH BIGINT reprezentuje liczby całkowite z zakresu od -263 ( ) do 2S3-1 ( ). INT reprezentuje liczby całkowite z zakresu od -231 ( ) do ( ). SMALLINT reprezentuje liczby całkowite z zakresu od -215 (-32768) do (32767). DECIMAL reprezentuje liczby o określonej skali i precyzji z zakre su od do

6 1. Typ NUMERIC jest synonimem typu DECIMAL. FLOAT reprezentuje liczby o zmiennej precyzji z zakresu od 1,79E + 308do1,79E REAL reprezentuje liczby o zmiennej precyzji z zakresu od -3,40E + 38 do 3,40E Typy zmiennoprzecinkowe charakteryzują się tym, że wartości tak zapisanych danych przechowywane są z pewną skończoną dokładnością. CHAR reprezentuje ciąg znaków o określonej długości. NCHAR (SQL Server) reprezentuje ciąg znaków o określonej długości zapisanej w postaci Unicode. VARCHAR reprezentuje ciąg znaków o zmiennej długości. NVARCHAR (SQL Server) reprezentuje ciąg znaków o zmiennej długości zapisanej w postaci Unicode. TEXT reprezentuje ciąg znaków o określonej, nie większej niż ( ), długości. W serwerze SQL dane znako we o długości przekraczającej 8 KB powinny być reprezentowa ne za pomocą typów VARCHAR (MAX)lub NVARCHAR(MAX). DATE reprezentuje datę z dokładnością do jednego dnia. TIME reprezentuje czas i pozwala określić jego dokładność maksymalna wynosi 100 nanosekund. TIMESTAMP reprezentuje datę i czas. CHAR reprezentuje ciąg znaków o określonej długości. VARCHAR reprezentuje ciąg znaków o zmiennej długości. TEXT reprezentuje ciąg znaków o określonej, nie większej niż ( ), długości. BOOL (PostgreSQL) reprezentuje prawdę lub fałsz. Każdy system zarządzania bazami danych obsługuje specjalną wartość NULL, która reprezentuje dane brakujące lub o nie-określonej wartości. Wartość NULL jest wartością specjalną, różną od wszystkich innych wartości, w tym od e i pustego ciągu znaków Wskazówki 1. Wszelkie operacje z wartością NULL (np. łączenie ciągu znaków lub mnożenie liczb) zwracają NULL. 2. Jedynym dopuszczalnym operatorem porównania z tą war-tością jest operator is [NOT] NULL chociaż nie wiemy, jaką wartość reprezentuje NULL, to możemy sprawdzić, czy dana wartość jest nieokreślona.

7 3. Wartość UNKNOWN będąca wynikiem porównań wartości NULL jest w różny sposób interpretowana w poszczególnych klauzulach języka SQL Do konwersji typów służy operator :: (funkcja CAST AS) FUNKCJE WBUDOWANE I OPERATORY - konkatenacja tekstów Klauzula GROUP BY Określa grupy wierszy, dla których będą obliczane wyniki funkcji grupujących wymienionych w poleceniu SELECT. Na liście argumentów klauzuli GROP BY muszą znaleźć się wszystkie wyrażenia niebędące wynikiem funkcji grupującej wymienione w poleceniu SELECT. 1. Serwer baz danych zwróci jeden wiersz dla każdej grupy wartości. 2. Kolumny wymienione w klauzuli GROUP BY muszą być wymienione w poleceniu SELECT. 3. Maksymalna liczba kolumn ograniczona jest typem poszczególnych danych zwróconych przez funkcje grupujące. AVG, SUM, MIN, MAX Klauzula HAVING Określa warunki wyszukiwania dla grup lub funkcji grupujących. Za pomocą klauzuli określa się warunki, które muszą być spełnione przez grupy wymienione w klauzuli GROUP BY FORMATOWANIE WYNIKÓW Wynik zapytania może być sformatowany zgodnie z wymaganiami użytkownika: Za pomocą słowa kluczowego DISTINCT możemy wyeliminować duplikaty. Za pomocą aliasów możemy zmienić nazwy kolumn. Za pomocą literałów możemy dodać do wyniku dowolne wyrażenia.

8 Za pomocą klauzuli ORDER BY możemy posortować wiersze wyniku. Składnia klauzuli ORDER BY (PostgreSCjL): [ ORDER BY wyrażenie,... ] [ LIMIT ( numer ALL ) ] [ OFFSET numer ] Składnia klauzuli ORDER BY (SQL Server): ORDER BY wyrażenie [ COLLATE porządek sortowania ] [ ASC DESC ] [,.-.n] [OFFSET numer \ wyrażenie określające liczbę wierszy) { ROW ROWS ) [ FETCH ( FIRST NEXT ) ( numer \ wyrażenie określające liczbę wierszy ) { ROW ROWS ) ONLY gdzie: wyrażenie określa kolumnę, według której będą sortowane dane, ASC (wartość domyślna) określa, że dane będą sortowane w porządku rosnącym (od wartości najmniejszej do największej), DESC określa, że dane będą sortowane w porządku malejącym. Przykład: SELECT OrderW, CustomerW, EmployeeW, OrderDate FROM Orders ORDER BY OrderDate DESC; Kolejny przykład pokazuje, jak uporządkować wynik zapytania przez posortowanie wierszy, wyeliminowanie duplikatów oraz wykorzystanie aliasów i literałów: SELECT DISTINCT nazwa kraju: ', Country AS 'Kraj' FROM suppliers ORDER BY country; Ostatni przykład pokazuje, w jaki sposób możemy odczytać uporządkowane malejąco według wieku dane najstarszych klientów SELECT FirstName, Age FROM CustomersHistory ORDER BY Age DESC Najprostsza instrukcja Select SELECT * ;

9 Instrukcja Select trochę bardziej skomplikowana SELECT IMIĘ, NAZWISKO ; Instrukcja Select z prostym kryterium SELECT DISTINCTROW PRACOWNICY.NAZWISKO, PRACOWNICY.IMIĘ, PRACOWNICY.[KOD DZIAŁU], PRACOWNICY.STAWKA WHERE ((PRACOWNICY.STAWKA>7 And PRACOWNICY.STAWKA<9)) ORDER BY PRACOWNICY.NAZWISKO; Instrukcja Select z kryterium zgodności pierwszej litery SELECT DISTINCTROW PRACOWNICY.NAZWISKO, PRACOWNICY.IMIĘ, PRACOWNICY.[KOD DZIAŁU], PRACOWNICY.STAWKA WHERE (((PRACOWNICY.NAZWISKO) Like "A*" Or (PRACOWNICY.NAZWISKO) Like "W*" Or (PRACOWNICY.NAZWISKO) Like "Z*")) ORDER BY PRACOWNICY.NAZWISKO; Instrukcja Select z polami obliczeniowymi SELECT DISTINCTROW PRACOWNICY.NAZWISKO, PRACOWNICY.IMIĘ, PRACOWNICY.[KOD DZIAŁU], [CZAS PRACY]*[STAWKA] AS [STAWKA TYGODNIOWA], [STAWKA]*0.05 AS PREMIA ORDER BY PRACOWNICY.NAZWISKO; Instrukcja Select z dwóch połączonych tabel SELECT DISTINCTROW PRACOWNICY.NAZWISKO, PRACOWNICY.IMIĘ, ADRESY.ULICA, ADRESY.MIASTO, ADRESY.KOD FROM ADRESY INNER JOIN PRACOWNICY ON ADRESY.IDENTYFIKATOR = PRACOWNICY.IDENTYFIKATOR ORDER BY PRACOWNICY.NAZWISKO; Select i funkcja agregująca (COUNT,SUM,AVG,MIN,MAX) SELECT COUNT(NrPracownika) AS Licznik FROM Pracownicy; Select i grupowanie

10 SELECT DISTINCTROW PRACOWNICY.[KOD DZIAŁU], Sum([CZAS PRACY]*[STAWKA]) AS [STAWKA TYGODNIOWA] GROUP BY PRACOWNICY.[KOD DZIAŁU] ORDER BY PRACOWNICY.[KOD DZIAŁU]; Podkwerendy Podkwerendy (Podzapytania) : porównanie [ANY ALL SOME] (instrukcja_sql) wyrażenie [NOT] IN (instrukcja_sql) [NOT] EXISTS (instrukcja_sql) Jako źródło danych (tabela jako podzapytanie) Jako wyrażenie obliczane tak jak inne pola kwerendy Podzapytaniem nazywamy instrukcję SELECT umieszczoną w ramach innej instrukcji języka SQL (instrukcji SELECT,INSERT,UPDATE,DELETE). Podzapytania z reguły mogą być zastąpione złączeniami lub wyrażeniami. Najczęstszymi powodami tworzenia podzapytań są: 1. Chęć uproszczenia zapytania przez podzielenie go na kilka prostszych zapytań. 2. Wykorzystanie wyniku jednego zapytania jako danych źródłowych dla innego zapytania. Wskazówki 1. Podzapytanie musi być zapisane w nawiasie. 2. Wynik podzapytania nie może zawierać danych typów LOB, BLOB, CLOB 3. Serwery pozwalają na zagnieżdżanie zapytań do określonego poziomu w przypadku skomplikowanych lub zwracających duże liczby danych podzapytań maksymalny poziom zagnieżdżenia może obejmować kilka, a nawet kilkanaście podzapytań. Podzapytania niepowiązane Podzapytania niepowiązane w pierwszej kolejności wykonują zagnieżdżoną instrukcję, a zwrócone przez nią dane przekazują do zapytania zewnętrznego i wykonują je. W tego typu podzapytaniach zapytanie wewnętrzne wykonywane jest 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 znajduje się w klauzuli zapytania nadrzędnego.

11 Podzapytania jako wyrażenia Wynik podzapytania może być potraktowany jako lista wartości wyrażenia, pod warunkiem że podzapytanie zwróciło wartość skalarną. Podzapytania powiązane W tego typu podzapytaniach zapytanie wewnętrzne wykonywane jest dla każdego wiersza wyniku zapytania zewnętrznego, dlatego wyniki obu zapytań mogą być ze sobą porównywane. Podzapytanie powiązane jest przykładem dynamicznego złączenia wyniku zapytania z każdym kolejnym wierszem wyniku zapytania zewnętrznego. Serwery baz danych wykonują podzapytania powiązane według następującego schematu: 1. Zapytanie zewnętrzne zwraca wiersz kandydujący. 2. Podzapytanie jest wykonywane, a jego wynik zostaje przekazany do zapytania zewnętrznego. 3. Zapytanie zewnętrzne zwraca kolejny wiersz i cały proces powtarza się tyle razy, ile wierszy zwróciło zewnętrzne zapytanie. Przykład (odczytujemy informacje o wszystkich produktach należących do tej samej kategorii co produkt o podanej nazwie a więc nie podajemy nazwy kategorii): Wskazówki 1. Podzapytania powiązane, choć są funkcjonalnym odpowiednikiem złączenia tabel, z reguły są wykonywane dłużej i wymagają przetworzenia większej ilości danych.

12 2. Jeżeli jest to możliwe, należy zastąpić podzapytanie powiązane klauzulą HAVING poprawia to czytelność i wydajność zapytania. Podzapytania z operatorem EXISTS Za pomocą operatorów EXISTS i NOT EXISTS możemy ograniczyć wynik zapytania zewnętrznego do wierszy zwróconych (lub nie, w wypadku operatora ) przez podzapytanie powiązane. Operator EXISTS jest dwuwartościowy zwraca wartość logiczną 1 : (prawda), jeżeli w wyniku podzapytania pojawia się określony wiersz, i 0; (fałsz), jeżeli wynik podzapytania nie zawiera określonego wiersza. Przykład (odczytujemy informacje o tych autorach, którzy mają to samo imię i nazwisko, a więc dane, które prawdo-podobnie przez pomyłkę zostały kilkakrotnie wprowadzone do bazy): Wskazówka Podzapytania z operatorem EXISTS lub NOT EXISTS nie zwracają żadnych danych, a jedynie prawdę lub fałsz. CTE CTE (ang. Common Table Expressions) to zdefiniowane w standardzie SQL3 nazwane wyrażenia tabelaryczne. CTE, tak jak tabele pochodne, są wynikami zapytań wewnętrznych, jednak: 1. Nazwę CTE definiuje się za pomocą słowa kluczowego WITH 2. Do raz zdefiniowanego CTE można się wielokrotnie odwoływać za pomocą jego nazwy. 3. Jeżeli podzapytanie zawiera kilka CTE, w później zdefiniowanych CTE można odwołać się do tych, które zostały zdefiniowane wcześniej. 4. Zdefiniowane w tym samym podzapytaniu CTE mogą być ze sobą powiązane, tworząc rekurencyjne CTE. Proste CTE Proste CTE nie tylko poprawiają czytelność zapytań, lecz także pozwalają przezwyciężyć niektóre ograniczenia serwerów bazodanowych. Na przykład jeżeli serwer nie pozwala używać funkcji NTILE w klauzuli WHERE, możemy przenieść funkcję rankingu do CTE i w zapytaniu zewnętrznym odwołać się do aliasu zdefiniowanego dla niej w CTE.

13 Rekurencyjne CTE Łącząc ze sobą wyniki dwóch CTE, uzyskamy możliwość wykonywania rekurencyjnych zapytań bez użycia tabel tymczasowych, pętli czy kursorów. Rekurencyjne CTE składa się z dwóch zapytań wewnętrznych połączonych operatorem UNION ALL (zatem oba zapytania muszą zwrócić tę samą liczbę kolumn, a odpowiadające sobie kolumny muszą być tego samego typu): 1. Pierwsze zapytanie reprezentuje warunek brzegowy rekurencji (ang. Anchor Member) i jest wykonywane tylko raz. 2. Drugie zapytanie jest wykonywane dopóty, dopóki zwraca jakieś wiersze (ang. Recursive Member). Wiersze zwrócone przez drugie zapytanie trafiają do wyniku CTE. Standardowym zastosowaniem rekurencyjnych CTE jest odczytywanie hierarchicznych danych, na przykład informacji o strukturze pracowników (pracownik X może być podwładnym pracownika Y i jednocześnie przełożonym pracownika Z). IN SELECT IDENTYFIKATOR, NAZWISKO, IMIĘ, [KOD DZIAŁU] WHERE [KOD DZIAŁU] IN ("AD","MK") SELECT IDENTYFIKATOR, NAZWISKO, IMIĘ, [KOD DZIAŁU] WHERE [KOD DZIAŁU] NOT IN ("WK","ZW")

14 Podkwerenda w warunku IN SELECT IDENTYFIKATOR, NAZWISKO, IMIĘ, [KOD DZIAŁU] WHERE PRACOWNICY.[KOD DZIAŁU] IN (SELECT [KOD DZIAŁU] FROM [KODY I NAZWY DZIAŁÓW] WHERE ZAMIEJSCOWY=TRUE) ANY/ALL SELECT IDENTYFIKATOR, IMIĘ, NAZWISKO, STAWKA WHERE (((PRACOWNICY.STAWKA)>ANY (SELECT CENA_BUTELKI FROM SKLEP))) ORDER BY PRACOWNICY.IDENTYFIKATOR DESC; SELECT IDENTYFIKATOR, IMIĘ, NAZWISKO, STAWKA WHERE (((PRACOWNICY.STAWKA)>ALL (SELECT CENA_BUTELKI FROM SKLEP))) ORDER BY PRACOWNICY.IDENTYFIKATOR DESC; EXISTS SELECT IDENTYFIKATOR,IMIĘ,NAZWISKO WHERE EXISTS (SELECT * FROM NAGRODY WHERE ID=PRACOWNICY.IDENTYFIKATOR) Podkwerenda jako pole SELECT IDENTYFIKATOR, NAZWISKO, IMIĘ, [KOD DZIAŁU], (SELECT COUNT(*) FROM DNI_WOLNE WHERE IDENTYFIKATOR=PRACOWNICY.IDENTYFIKATOR) AS DNI Klauzula HAVING SELECT [KOD DZIAŁU], AVG(PRACOWNICY.WYNAGRODZENIE) AS SREDNIEWYNAGRODZENIE GROUP BY PRACOWNICY.[KOD DZIAŁU] HAVING (((AVG(PRACOWNICY.WYNAGRODZENIE))>1000)); Podkwerenda + HAVING SELECT MIASTO, IDENTYFIKATOR FROM ADRESY WHERE (MIASTO In (SELECT MIASTO FROM ADRESY AS ADRESYALIAS GROUP BY MIASTO HAVING Count(*)>=5 ))

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

SQL - Structured Query Language. strukturalny język zapytań SQL - Structured Query Language strukturalny język zapytań SQL - Structured Query Language - strukturalny język zapytań Światowy standard przeznaczony do definiowania, operowania i sterowania danymi w

Bardziej szczegółowo

3. Podzapytania, łączenie tabel i zapytań

3. Podzapytania, łączenie tabel i zapytań 3. Podzapytania, łączenie tabel i zapytań I. PODZAPYTANIE (SUBSELECT) oddzielna, ujęta w nawiasy instrukcja SELECT, zagnieżdżona w innej instrukcji SQL, zazwyczaj w instrukcji SELECT w instrukcji SELECT,

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

Język SQL. Rozdział 2. Proste zapytania

Język SQL. Rozdział 2. Proste zapytania Język SQL. Rozdział 2. Proste zapytania Polecenie SELECT, klauzula WHERE, operatory SQL, klauzula ORDER BY. 1 Wprowadzenie do języka SQL Język dostępu do bazy danych. Język deklaratywny, zorientowany na

Bardziej szczegółowo

NORTHWIND. Anonco.pl. ćwiczenia praktyczne. KiK s Tutorials. NORTHWIND dwiczenia praktyczne. ANONCO.PL/SQL SQLSERVERDLAOPORNYCH.WORDPRESS.

NORTHWIND. Anonco.pl. ćwiczenia praktyczne. KiK s Tutorials. NORTHWIND dwiczenia praktyczne. ANONCO.PL/SQL SQLSERVERDLAOPORNYCH.WORDPRESS. Anonco.pl NORTHWIND dwiczenia praktyczne. NORTHWIND ćwiczenia praktyczne KiK s Tutorials Spis treści Część 1. Wprowadzenie 3 Wprowadzenie do SQL Server 3 Rozpoczynamy pracę z SQL Server 4 Część 2. Typy

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne bazy danych Podstawy języka SQL Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured

Bardziej szczegółowo

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

Bardziej szczegółowo

Szkolenie autoryzowane. MS Tworzenie zapytań do Microsoft SQL Server Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

Szkolenie autoryzowane. MS Tworzenie zapytań do Microsoft SQL Server Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje Szkolenie autoryzowane MS 10774 Tworzenie zapytań do Microsoft SQL Server 2012 Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje Opis szkolenia Uwaga! Szkolenie wycofane z oferty. Zapraszamy

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Jeśli pobieramy dane z więcej niż jednej tabeli, w rzeczywistości wykonujemy tak zwane złączenie. W SQL istnieją instrukcje pozwalające na formalne wykonanie złączenia tabel - istnieje

Bardziej szczegółowo

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

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy) Zapytania SQL. Polecenie SELECT jest używane do pobierania danych z bazy danych (z tabel lub widoków). Struktura polecenia SELECT SELECT FROM WHERE opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje

Bardziej szczegółowo

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Podstawy języka SQL. SQL Structured Query Languagestrukturalny Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych

Bardziej szczegółowo

Wykład 6. SQL praca z tabelami 3

Wykład 6. SQL praca z tabelami 3 Wykład 6 SQL praca z tabelami 3 Łączenie wyników zapytań Język SQL zawiera mechanizmy pozwalające na łączenie wyników kilku pytań. Pozwalają na to instrukcje UNION, INTERSECT, EXCEPT o postaci: zapytanie1

Bardziej szczegółowo

Laboratorium Bazy danych SQL 2

Laboratorium Bazy danych SQL 2 Klauzula order by występuje jako ostatnia klauzula w poleceniu select, powoduje posortowanie wierszy będących wynikiem zapytania według wartości atrybutu w niej wskazanego. Domyślnie sortowanie jest według

Bardziej szczegółowo

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, 2016 Spis treści Wprowadzenie Podziękowania xiii xvii 1 Podstawy zapytań i programowania T-SQL 1 Podstawy

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może

Bardziej szczegółowo

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee Polecenie SELECT instrukcja pobierająca dane z bazy danych (z tabel, widoków) użytkownik posługujący się nią musi mieć uprawnienia do pobierania danych wynikiem zapytania jest zawsze tablica o określonych

Bardziej szczegółowo

Podstawowe zapytania SELECT (na jednej tabeli)

Podstawowe zapytania SELECT (na jednej tabeli) Podstawowe zapytania SELECT (na jednej tabeli) Struktura polecenia SELECT SELECT opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje FROM nazwy tabel lub widoków WHERE warunek (wybieranie wierszy) GROUP

Bardziej szczegółowo

8.9. Język SQL Kwerenda wybierająca w języku SQL

8.9. Język SQL Kwerenda wybierająca w języku SQL Rozdział 8 t Bazy danych program Access Program Access włączy wyłączoną zawartość, a baza danych zostanie ponownie otwarta jako w pełni funkcjonalna. W przeciwnym razie wyłączone składniki nie będą działać.

Bardziej szczegółowo

PODZAPYTANIE (SUBSELECT)

PODZAPYTANIE (SUBSELECT) 2. Podzapytania PODZAPYTANIE (SUBSELECT) oddzielna, ujęta w nawiasy instrukcja SELECT, zagnieżdżona w innej instrukcji SQL, zazwyczaj w instrukcji SELECT W instrukcji SELECT, podzapytanie może być umieszczone

Bardziej szczegółowo

Microsoft SQL Server Podstawy T-SQL

Microsoft SQL Server Podstawy T-SQL Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania

Bardziej szczegółowo

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie Historia i standardy Podstawy relacyjności Typy danych DDL tabele, widoki, sekwencje zmiana struktury DML DQL Podstawy, złączenia,

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę Podzapytania Rozdział 5 Podzapytania podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, klauzula WITH, operatory ANY, ALL i EXISTS, zapytania hierarchiczne Podzapytanie jest poleceniem

Bardziej szczegółowo

Podstawy języka SQL cz. 2

Podstawy języka SQL cz. 2 Podstawy języka SQL cz. 2 1. Operatory zbiorowe a. UNION suma zbiorów z eliminacją powtórzeń, b. EXCEPT różnica zbiorów z eliminacją powtórzeń, c. INTERSECT część wspólna zbiorów z eliminacją powtórzeń.

Bardziej szczegółowo

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych Politechnika Śląska Instytut Informatyki instrukcja laboratoryjna laboratorium Bazy Danych przygotowali: mgr inż. Paweł Kasprowski (Kasprowski@zti.iinf.polsl.gliwice.pl) mgr inż. Bożena Małysiak (bozena@ivp.iinf.polsl.gliwice.pl)

Bardziej szczegółowo

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

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek SELECT SELECT kolumna1, kolumna2,, kolumnan FROM tabela wybrane kolumny SELECT * FROM tabela wszystkie kolumny select * from Orders select CustomerID, CompanyName, Country from Customers WHERE SELECT *

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska SELECT [DISTINCT] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [ ] instrukcja może

Bardziej szczegółowo

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania. Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania. Przykładowa RBD o schematach relacji (tzw. płaska postać RBD): N(PRACOWNICY) = {ID_P, IMIĘ,

Bardziej szczegółowo

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

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Tabele 9 Klucze 10 Relacje 11 Podstawowe zasady projektowania tabel 16 Rozdział 2. Praca z tabelami 25 Typy danych 25 Tworzenie tabel 29 Atrybuty kolumn

Bardziej szczegółowo

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

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę: Bazy danych. Komunikacja z serwerem Aby połączyć się z serwerem i móc wykonywać czynności związane z obsługą baz, potrzebny jest program klienta. Razem z serwerem MySQL dostępny jest działający w wierszu

Bardziej szczegółowo

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę Podzapytania Rozdział 5 Podzapytania podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, klauzula WITH, operatory ANY, ALL i EXISTS, zapytania hierarchiczne Podzapytanie jest poleceniem

Bardziej szczegółowo

Wprowadzenie do języka SQL

Wprowadzenie do języka SQL Wprowadzenie do języka SQL język dostępu do bazy danych grupy poleceń języka: DQL (ang( ang.. Data Query Language) DML (ang( ang.. Data Manipulation Language) DDL (ang( ang.. Data Definition Language)

Bardziej szczegółowo

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni Akademia Morska w Gdyni Gdynia 2004 1. Złączenie definicja Złączenie (JOIN) to zbiór rekordów stanowiących wynik zapytania służącego pobraniu danych z połączonych tabel (związki jeden-do-jeden, jeden-do-wiele

Bardziej szczegółowo

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga Bazy Danych i Systemy informacyjne Wykład 1 Piotr Syga 09.10.2017 Ogólny zarys wykładu Podstawowe zapytania SQL Tworzenie i modyfikacja baz danych Elementy dynamiczne, backup, replikacja, transakcje Algebra

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

Bardziej szczegółowo

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1 Podstawy języka SQL standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi Bazy danych s.5-1 Język SQL SQL (ang. Structured Query Language, strukturalny język zapytań) język

Bardziej szczegółowo

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

Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH Wstęp do SQL SQL (Structured Query Language) strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych. Język SQL jest językiem deklaratywnym.

Bardziej szczegółowo

Współczesne systemy baz danych

Współczesne systemy baz danych Współczesne systemy baz danych dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu Zakład Systemów Informatycznych i Mechatronicznych (SIMT) 2019 Język SQL Język SQL (ang. Structured

Bardziej szczegółowo

Współczesne systemy baz danych

Współczesne systemy baz danych Współczesne systemy baz danych dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu Zakład Systemów Informatycznych i Mechatronicznych (SIMT) 2018 Język SQL Język SQL (ang. Structured

Bardziej szczegółowo

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup Grupowanie i funkcje agregacji Grupowanie z użyciem rollup Funkcje agregujące: COUNT([DISTINCT] wyrażenie *), MIN(wyrażenie), MAX(wyrażenie), SUM([DISTINCT] wyrażenie), AVG([DISTINCT] wyrażenie). Klauzula

Bardziej szczegółowo

Bazy danych 2. Wykład 4 Structured Query Language (SQL)

Bazy danych 2. Wykład 4 Structured Query Language (SQL) Bazy danych 2 Wykład 4 Structured Query Language (SQL) Cechy SQL W standardzie SQL wyróŝnia się dwie części: DDL (Data Definition Language) - język definiowania danych DML (Data Manipulation Language)

Bardziej szczegółowo

Zadania z SQLa (MS SQL Server)

Zadania z SQLa (MS SQL Server) Zadania z SQLa (MS SQL Server) Struktura testowej bazy danych (diagram ERD): opracował dr Robert Fidytek SPIS TYPÓW ZADAŃ 1 Projekcja wyników zapytań (SELECT FROM )... 3 2 Sortowanie wyników zapytań (ORDER

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umoŝliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN Integralność danych Wersje języka SQL Klauzula SELECT i JOIN Robert A. Kłopotek r.klopotek@uksw.edu.pl Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW Integralność danych Aspekty integralności

Bardziej szczegółowo

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

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus Podstawy języka SQL Co to jest SQL? Structured Query Language uchodzi za standard języka zapytań kierowanych do systemu zarządzania bazą danych. SQL jest językiem deklaratywnym tj. takim, w którym istotne

Bardziej szczegółowo

Wykład 5. SQL praca z tabelami 2

Wykład 5. SQL praca z tabelami 2 Wykład 5 SQL praca z tabelami 2 Wypełnianie tabel danymi Tabele można wypełniać poprzez standardową instrukcję INSERT INTO: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1,

Bardziej szczegółowo

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9. Plan wykładu Spis treści 1 DML - zapytania, część II 1 1.1 Grupowanie................................... 1 1.2 Operatory zbiorowe............................... 5 2 DML - modyfikacja 7 3 DCL - sterowanie

Bardziej szczegółowo

Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa. Studia Podyplomowe dla Nauczycieli

Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa. Studia Podyplomowe dla Nauczycieli Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa Studia Podyplomowe dla Nauczycieli Bazy danych SQL Języki baz danych Interfejs DBMS składa się

Bardziej szczegółowo

Wprowadzenie do baz danych

Wprowadzenie do baz danych Wprowadzenie do baz danych Dr inż. Szczepan Paszkiel szczepanpaszkiel@o2.pl Katedra Inżynierii Biomedycznej Politechnika Opolska Wprowadzenie DBMS Database Managment System, System za pomocą którego można

Bardziej szczegółowo

Grupowanie i funkcje agregacji

Grupowanie i funkcje agregacji Grupowanie i funkcje agregacji Funkcje agregujące: COUNT([DISTINCT] wyrażenie *), MIN(wyrażenie), MAX(wyrażenie), SUM([DISTINCT] wyrażenie), AVG([DISTINCT] wyrażenie). Klauzula GROUP BY Grupowanie polega

Bardziej szczegółowo

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8 Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8 Bazowy skrypt PHP do ćwiczeń z bazą MySQL: Utwórz skrypt o nazwie cw7.php zawierający następującą treść (uzupełniając go o właściwą nazwę uŝytkownika

Bardziej szczegółowo

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach Ograniczanie rozmiaru zbioru wynikowego, klauzula WITH, zapytania hierarchiczne. 1 Ograniczanie liczności zbioru wynikowego (1) Element standardu

Bardziej szczegółowo

SIECI KOMPUTEROWE I BAZY DANYCH

SIECI KOMPUTEROWE I BAZY DANYCH KATEDRA MECHANIKI I ROBOTYKI STOSOWANEJ WYDZIAŁ BUDOWY MASZYN I LOTNICTWA, POLITECHNIKA RZESZOWSKA SIECI KOMPUTEROWE I BAZY DANYCH Laboratorium DB1, DB2: TEMAT: Wprowadzenie do SQL. Praca z pojedyncza

Bardziej szczegółowo

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12 Marek Rakowski Podstawy zdania SELECT Strona 1 z 12 Podstawy języka SQL Co to jest SQL? Structured Query Language uchodzi za standard języka zapytań kierowanych do systemu zarządzania bazą danych. SQL

Bardziej szczegółowo

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania

Bardziej szczegółowo

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

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel SQL, LIKE, IN, CASE, EXISTS Marcin Orchel Spis treści 1 LIKE 2 2 BETWEEN 4 3 IN 5 4 EXISTS 6 5 WYRAŻENIA CASE 7 6 Zadania 9 1 Rozdział 1 LIKE Predykat LIKE jest testem dopasowującym wzorzec łańcucha. Składnia

Bardziej szczegółowo

Indeksowanie w bazach danych

Indeksowanie w bazach danych w bazach Katedra Informatyki Stosowanej AGH 5grudnia2013 Outline 1 2 3 4 Czym jest indeks? Indeks to struktura, która ma przyspieszyć wyszukiwanie. Indeks definiowany jest dla atrybutów, które nazywamy

Bardziej szczegółowo

Podzapytania. SELECT atrybut_1, atrybut_2,... FROM relacja WHERE atrybut_n operator (SELECT atrybut_1, FROM relacja WHERE warunek

Podzapytania. SELECT atrybut_1, atrybut_2,... FROM relacja WHERE atrybut_n operator (SELECT atrybut_1, FROM relacja WHERE warunek Podzapytania Podzapytanie jest poleceniem SELECT zagnieżdżonym w innym poleceniu SELECT. Podzapytanie może wystąpić wszędzie tam, gdzie system spodziewa się zbioru wartości, czyli w klauzulach SELECT,

Bardziej szczegółowo

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę Podzapytania Rozdział 5 Podzapytania podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, klauzula WITH, operatory ANY, ALL i EXISTS, zapytania hierarchiczne Podzapytanie jest poleceniem

Bardziej szczegółowo

Tworzenie zapytań do Microsoft SQL Server

Tworzenie zapytań do Microsoft SQL Server MS 20461 Tworzenie zapytań do Microsoft SQL Server Czas trwania: 5 dni (40 h) Poziom trudności: Średnio Zaawansowany Autoryzacja: Microsoft Opis: Szkolenie administratorów baz danych oraz programistów

Bardziej szczegółowo

Technologie baz danych

Technologie baz danych Plan wykładu Technologie baz danych Wykład 2: Relacyjny model danych - zależności funkcyjne. SQL - podstawy Definicja zależności funkcyjnych Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów

Bardziej szczegółowo

Kwerendy (zapytania) wybierające

Kwerendy (zapytania) wybierające Access 2. Kwerendy (zapytania) wybierające Kwerendy wybierające (nazywane też zapytaniami wybierającymi) są podstawowymi obiektami w MS Access służącymi do wyszukiwania danych w tabelach. W wyniku uruchomienia

Bardziej szczegółowo

Bazy danych - wykład wstępny

Bazy danych - wykład wstępny Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,

Bardziej szczegółowo

Ćwiczenie zapytań języka bazy danych PostgreSQL

Ćwiczenie zapytań języka bazy danych PostgreSQL Ćwiczenie zapytań języka bazy danych PostgreSQL 1. Uruchom link w przeglądarce: http://127.0.0.1/phppgadmin 2. Kliknij w zaznaczony na czerwono link PostgreSQL: 3. Zaloguj się wpisując hasło i login student.

Bardziej szczegółowo

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe Język SQL. Rozdział 5. Połączenia i operatory zbiorowe Iloczyn kartezjański, połączenie równościowe, połączenie nierównościowe, połączenie zwrotne, połączenie zewnętrzne, składnia jawna połączeń, składnia

Bardziej szczegółowo

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. 77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele

Bardziej szczegółowo

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING Laboratorium nr 5 Temat: Funkcje agregujące, klauzule GROUP BY, HAVING Celem ćwiczenia jest zaprezentowanie zagadnień dotyczących stosowania w zapytaniach języka SQL predefiniowanych funkcji agregujących.

Bardziej szczegółowo

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

Aliasy Select p.first_name, p.salary, j.job_title from employees p, jobs j where p.job_id=j.job_id; Dane z kilku tabel Aliasy Select p.first_name, p.salary, j.job_title from employees p, jobs j where p.job_id=j.job_id; Łączenie kilku selectów w jeden posortowany wynik 1. UNION suma bez powtórzeń. Powoduje,

Bardziej szczegółowo

Łączenie wyników zapytań w SQL

Łączenie wyników zapytań w SQL Łączenie wyników zapytań w SQL Pisząc zapytania SELECT czasami zachodzi potrzeba złączenia pobranych wyników. W SQL mamy do dyspozycji operatory takie jak: suma (UNION), różnica (EXCEPT) oraz cześć wspólną

Bardziej szczegółowo

Wykład 8. SQL praca z tabelami 5

Wykład 8. SQL praca z tabelami 5 Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu

Bardziej szczegółowo

Bazy danych 6. Podzapytania i grupowanie. P. F. Góra

Bazy danych 6. Podzapytania i grupowanie. P. F. Góra Bazy danych 6. Podzapytania i grupowanie P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2012 Podzapytania Podzapytania pozwalaja na tworzenie strukturalnych podzapytań, co umożliwia izolowanie poszczególnych

Bardziej szczegółowo

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

Szkolenie Oracle SQL podstawy. Terminy. 15 17 lutego 2010 First Minute! 1100zł! Szkolenie Oracle SQL podstawy Terminy 15 17 lutego 2010 First Minute! 1100zł! Opis szkolenia Baza danych Oracle od dawna cieszy się zasłużona sławą wśród informatyków. Jej wydajność, szybkość działania

Bardziej szczegółowo

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji 6. Język SQL Język SQL (Structured Query Language): - język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji - stworzony w IBM w latach 70-tych DML (Data Manipulation

Bardziej szczegółowo

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, 2017 Spis treści O autorze 9 Wprowadzenie 11 Lekcja 1. Zrozumieć SQL 15 Podstawy baz danych 15 Język SQL

Bardziej szczegółowo

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2) Laboratorium nr 8 Temat: Podstawy języka zapytań SQL (część 2) PLAN LABORATORIUM: 1. Sortowanie. 2. Warunek WHERE 3. Eliminacja powtórzeń - DISTINCT. 4. WyraŜenia: BETWEEN...AND, IN, LIKE, IS NULL. 5.

Bardziej szczegółowo

SQL praca z tabelami 4. Wykład 7

SQL praca z tabelami 4. Wykład 7 SQL praca z tabelami 4 Wykład 7 1 Funkcje agregujące Informacja poszukiwana w bazie danych często musi być wyliczana na podstawie danych znajdujących się w wielu wierszach tabeli. Tak jest gdy chcemy znać

Bardziej szczegółowo

SQL Structured Query Language

SQL Structured Query Language SQL Structured Query Language stworzony na początku lat 70 ubiegłego wieku w IBM przez Donalda Messerly'ego, Donalda Chamberlina oraz Raymonda Boyce'a pod nazwą SEQUEL pierwszy SZBD System R utworzony

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność

Bardziej szczegółowo

Grupowanie i funkcje agregujące

Grupowanie i funkcje agregujące Grupowanie i funkcje agregujące Zadanie 1. Stwórz odpowiednią tabelę Test_agr i wprowadź odpowiednie rekordy tak, aby wynik zapytania SELECT AVG(kol) avg_all, AVG(DISTINCT kol) avg_dist, COUNT(*) count_gw,

Bardziej szczegółowo

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

PRZESTRZENNE BAZY DANYCH WYKŁAD 2 PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie

Bardziej szczegółowo

Złączenie CROSS JOIN jest to tzw. złączenie krzyżowe, którego ogólna postać wygląda następująco:

Złączenie CROSS JOIN jest to tzw. złączenie krzyżowe, którego ogólna postać wygląda następująco: Połączenia krzyżowe Złączenie typu CROSS JOIN Złączenie CROSS JOIN jest to tzw. złączenie krzyżowe, którego ogólna postać wygląda następująco: SELECT kolumna1, kolumna2,..., kolumnan FROM tabela1 CROSS

Bardziej szczegółowo

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych Informatyka sem. III studia inżynierskie Transport 2018/19 Lab 2 LAB 2 1. Backup bazy danych Tworzenie kopii (backup) bazy danych Odtwarzanie bazy z kopii (z backup u) 1. Pobieramy skrypt Restore 2. Pobieramy

Bardziej szczegółowo

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Marek Robak Wprowadzenie do języka SQL na przykładzie baz SQLite Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Tworzenie tabeli Pierwsza tabela W relacyjnych bazach danych jedna

Bardziej szczegółowo

10. Wybierz nazwy produktów oraz inf. o stanie magazynu dla produktów dostarczanych przez firmę.tokyo Traders.

10. Wybierz nazwy produktów oraz inf. o stanie magazynu dla produktów dostarczanych przez firmę.tokyo Traders. SQL I Wybieranie danych z pojedynczej tabeli Baza NORTHWIND 1. Wybierz nazwy i adresy wszystkich klientów select CompanyName,Address from Customers 2. Wybierz nazwiska i numery telefonów pracowników select

Bardziej szczegółowo

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL 1 Podstawy relacyjnego modelu danych. 3h UWAGA: Temat zajęć jest typowo teoretyczny i stanowi wprowadzenie do zagadnień

Bardziej szczegółowo

Bazy danych SQL Server 2005

Bazy danych SQL Server 2005 Bazy danych SQL Server 2005 TSQL Michał Kuciapski Typ zadania: Podstawowe zapytania Select Zadanie 1: Wyświetl następujące informacje z bazy: A. 1. Wyświetl informacje o klientach: nazwa firmy, imie, nazwisko,

Bardziej szczegółowo

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

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie Programowanie MSQL show databases; - pokazanie jakie bazy danych są dostępne na koncie show databases; - wyświetlenie wszystkich baz danych na serwerze create database nazwa; - za nazwa wstawiamy wybraną

Bardziej szczegółowo

E.14 Bazy Danych cz. 13 SQL Grupowanie danych i funkcje grupujące

E.14 Bazy Danych cz. 13 SQL Grupowanie danych i funkcje grupujące Funkcje grupujące Funkcja COUNT() Funkcja SUM() Funkcja AVG() Funkcje MIN() i MAX() Funkcja GROUP_CONCAT() Grupowanie danych Operator ROLLUP Klauzula HAVING Kolejność wykonywania klauzuli zapytań Na podstawie:

Bardziej szczegółowo

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

Marek Rakowski Zdanie SELECT wybieranie danych z wielu tabel Strona 1 z 6 Marek Rakowski Zdanie SELECT wybieranie danych z wielu tabel Strona 1 z 6 Wybieranie danych z wielu tabel polega na użyciu więcej niż jednej tabeli w klauzuli FROM i, najczęściej, kolumn z więcej niż jednej

Bardziej szczegółowo

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych SQL SQL (ang. Structured Query Language): strukturalny język zapytań używany do tworzenia strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych

Bardziej szczegółowo

Bazy danych wykład trzeci. Konrad Zdanowski

Bazy danych wykład trzeci. Konrad Zdanowski SQL - przypomnienie Podstawowa forma kwerendy SQL: select A1,..., Ak from R1,..., Rn where ; Odpowiada jej w algebrze relacji operacja π A1,...,Ak (σ (R1 Rn)) SQL semantyka select R.

Bardziej szczegółowo

ACESS- zadania z wykorzystaniem poleceń SQL

ACESS- zadania z wykorzystaniem poleceń SQL ACESS- zadania z wykorzystaniem poleceń SQL Dane są relacje o schematach: Pracownik ( (nr integer, nazwisko text(12), etat text(10), szef integer, pracuje_od date, placa_pod Currency, placa_dod Currency,

Bardziej szczegółowo

Wykład 4. SQL praca z tabelami 1

Wykład 4. SQL praca z tabelami 1 Wykład 4 SQL praca z tabelami 1 Typy danych Typy liczbowe Typy całkowitoliczbowe Integer types - Typ INTEGER; 32-bitowa liczba ze znakiem z zakresu -2 31 do 2 31 1 - Typ SMALLINT; typ całkowity mniejszy

Bardziej szczegółowo

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS.

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS. Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS. 1 Podzapytania Podzapytanie jest poleceniem SELECT zagnieżdżonym

Bardziej szczegółowo

Język SQL podstawy zapytań

Język SQL podstawy zapytań Język SQL podstawy zapytań 1 Plan prezentacji 1. Krótka historia języka SQL 2. Cechy języka SQL 3. Przykładowa baza danych 4. Podstawy zapytań - operacje na modelu relacyjnym 5. Polecenie SELECT zapytania

Bardziej szczegółowo

Bazy danych Access KWERENDY

Bazy danych Access KWERENDY Bazy danych Access KWERENDY Obiekty baz danych Access tabele kwerendy (zapytania) formularze raporty makra moduły System baz danych MS Access Tabela Kwerenda Formularz Raport Makro Moduł Wyszukiwanie danych

Bardziej szczegółowo

Specyfika języka SQL powoduje, że łatwiej jest najpierw wytłumaczyć, jak korzystać z funkcji grupujących, a dopiero później jak grupować dane.

Specyfika języka SQL powoduje, że łatwiej jest najpierw wytłumaczyć, jak korzystać z funkcji grupujących, a dopiero później jak grupować dane. W tym odcinku poznasz funkcje grupujące i dwie nowe klauzule instrukcji SELECT GROUP BY i HAVING. Nauczysz się też grupować dane, czyli łączyć wiele wierszy w jeden. Grupowanie danych polega na łączeniu

Bardziej szczegółowo

Plan. Łączenie danych z wielu tabel złączenia JOIN suma zbiorów - UNION Użycie aliasów dla nazw tabel

Plan. Łączenie danych z wielu tabel złączenia JOIN suma zbiorów - UNION Użycie aliasów dla nazw tabel Plan Łączenie danych z wielu tabel złączenia JOIN suma zbiorów - UNION Użycie aliasów dla nazw tabel Przykładowa baza Joindb Joindb Database Diagram Sales PK Produce prod_id prod_name FK FK2 buyer_id prod_id

Bardziej szczegółowo

Bazy danych 7. SQL podstawy

Bazy danych 7. SQL podstawy Bazy danych 7. SQL podstawy P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Structured Query Language Używane standardy: SQL92 SQL99 SQL:2003 Żaden dostawca nie jest w pełni zgodny

Bardziej szczegółowo

Bazy Danych. SQL Podstawy języka II: zapytania. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Bazy Danych. SQL Podstawy języka II: zapytania. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408 Bazy Danych SQL Podstawy języka II: zapytania Krzysztof Regulski WIMiIP, KISiM, regulski@agh.edu.pl B5, pok. 408 Konstrukcja select-from-where SQL oparty jest na algebrze relacji z pewnymi modyfikacjami

Bardziej szczegółowo