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

Podobne dokumenty
Wprowadzenie do baz danych

Autor: Joanna Karwowska

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

Autor: Joanna Karwowska

Systemy GIS Tworzenie zapytań w bazach danych

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

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

Wyświetl imie i nazwisko ucznia, nazwę przedmiotu z którego otrzymał ocenę niedostateczną. Nazwij tę kwerendę oceny niedostateczne.

Przestrzenne bazy danych Podstawy języka SQL

Relacyjne bazy danych. Podstawy SQL

SQL (ang. Structured Query Language)

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Bazy danych SQL Server 2005

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

Relacyjne bazy danych. Podstawy SQL

Podstawowe zapytania SELECT (na jednej tabeli)

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

Bazy danych. Wykład V Kwerendy. Copyrights by Arkadiusz Rzucidło 1

SQL praca z tabelami 4. Wykład 7

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

Wprowadzenie do języka SQL

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

Język SQL. Rozdział 2. Proste zapytania

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

Autor: Joanna Karwowska

Technologie baz danych

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

Zadania z SQLa (MS SQL Server)

3. Podzapytania, łączenie tabel i zapytań

Wykład 6. SQL praca z tabelami 3

Ćwiczenie zapytań języka bazy danych PostgreSQL

Podstawy Informatyki Wykład X

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

Bazy danych Access KWERENDY

Podstawy języka SQL cz. 2

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

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

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

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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

Grupowanie i funkcje agregujące

Język SQL w Delphi. 1. Kwerendy Przygotowanie do ćwiczenia Komenda SELECT

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

Wykład 5. SQL praca z tabelami 2

Język SQL podstawy zapytań

PODSTAWOWE I ZŁOŻONE POLECENIA SQL W IMPLEMENTACJACH MS SQL SERVER 2008

Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING.

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

Widok Connections po utworzeniu połączenia. Obszar roboczy

Współczesne systemy baz danych

Współczesne systemy baz danych

Bazy Danych. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Paweł Rajba

Język SQL, zajęcia nr 2

P o d s t a w y j ę z y k a S Q L

Laboratorium Bazy danych SQL 2

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

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

Bazy danych. Polecenia SQL

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

Baza danych Uczniowie.mdb

PODZAPYTANIE (SUBSELECT)

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

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

Struktura bazy danych

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

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

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

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

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

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Podstawy języka SQL -

Kwerendy (zapytania) wybierające

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

SQL Structured Query Language

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

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

Bazy danych - wykład wstępny

SQL do zaawansowanych analiz danych część 1.

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

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

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

Plan. Wyświetlanie n początkowych wartości (TOP n) Użycie funkcji agregujących. Grupowanie danych - klauzula GROUP BY

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

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

Zapytania do bazy danych

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

Przykład powyżej pokazuje, że w zapytaniu można umieszczać funkcje zarówno zdefiniowane w ramach środowiska, jak również własne.

SIECI KOMPUTEROWE I BAZY DANYCH

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

Zadania SELECT do schematu EDS (EMP, DEPT, SALGRADE)

Język SQL, zajęcia nr 1

Bazy danych Access KWERENDY

WyŜsza Szkoła Zarządzania Ochroną Pracy MS EXCEL CZ.2

Ćwiczenie 3 funkcje agregujące

Optymalizacja poleceń SQL Metody dostępu do danych

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

Wprowadzenie do SQL TEMAT 3 - Zadania dodatkowe

Kurs. Podstawy MySQL

Transkrypt:

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 relacyjnych bazach danych Powstał w firmie IBM pod koniec lat 70-tych Występuje w produktach większości firm produkujących oprogramowanie do zarządzania bazami danych SQL używany jest jako standardowe narzędzie umożliwiające dostęp do danych w różnych środowiskach, z różnym sprzętem komputerowym i różnymi systemami operacyjnymi Język SQL jest niewrażliwy na rejestr czcionki, czyli wielkie i małe litery nie są rozróżniane

Podstawowa składnia SELECT SELECT Lista kolumn FROM Źródło Listy [ WHERE Warunek wybierający] [ GROUP BY Warunek grupowania] [ HAVING Szczegóły grupowania] [ ORDER BY Wyrażenie] [ASC DESC] Polecenie SELECT wyświetla dane zgromadzone w jednej lub większej liczbie tabel znajdujących się w bazie danych.

Schemat bazy danych Sklep

Źródło listy W przypadku odwołania do: pojedynczej tabeli podajemy nazwę tabeli; więcej niż jednej tabeli używa się poniższą składnię: FROM <tabela 1> <operator_zlaczenia> <tabela 2> ON <warunek zlaczenia> <operator_zlaczenia> <tabela 3> ON <warunek zlaczenia>

Instrukcje złączenia tabel Związki logiczne między tabelami są reprezentowane przez odpowiadające sobie wartości kluczy podstawowych i obcych. Aby połączyć dane z dwóch lub więcej tabel można użyć jednej z metod: 1. Wykorzystanie klauzuli WHERE SELECT kolumny FROM tabela1, tabela2 WHERE tabela1.klucz_podstawowy = tabela2.klucz_obcy 2. Wykorzystanie operatora JOIN. SELECT kolumny FROM tabela1 JOIN tabela2 ON tabela1.klucz_podstawowy = tabela2.klucz_obcy

OPERATORY ZŁĄCZENIA Występują trzy wersje klauzuli JOIN: Połączenia tabel realizujemy za pomocą operatorów złączenia: JOIN (INNER JOIN)- wewnętrzne, wybiera rekordy z obu tabel gdzie pola łączące odpowiadają sobie wartościami LEFT OUTER JOIN zewnętrzne lewostronne, wybiera wszystkie rekordy z tabeli nadrzędnej i tylko te z podrzędnej gdzie pola łączące odpowiadają sobie wartościami RIGHT OUTER JOIN - zewnętrzne prawostronne, wybiera wszystkie rekordy z tabeli podrzędnej i tylko te z nadrzędnej gdzie pola łączące odpowiadają sobie wartościami

Instrukcje złączenia tabel - przykłady 1. Wykorzystanie klauzuli WHERE SELECT Zamowienia.idzamowienia, Klienci.Nazwafirmy, Klienci.Miasto FROM Zamowienia, Klienci WHERE Zamowienia.IDklienta = Klienci.IDklienta 2. Wykorzystanie operatora JOIN* SELECT Zamowienia.idzamowienia, Klienci.Nazwafirmy,Klienci.Miasto FROM Zamowienia INNER JOIN Klienci ON Zamowienia.IDklienta = Klienci.Idklienta 3. Łączenie kilku tabel, tu należy użyć nawiasów: SELECT NazwaFirmy, Idzamówienia, NazwaProduktu, kraj, ilość FROM Pozycje_Zamówień INNER JOIN (Towary INNER JOIN Dostawcy ON Towary.iddostawcy = Dostawcy.Iddostawcy) ON Pozycje_Zamówień.IDtowaru=Towary.Idprodukt WHERE dostawcy.kraj = USA AND NazwaProduktu = Cukier *Różnica między 1 i 2 WHERE nie pozwala na edycję wybranych danych.

Instrukcje złączenia tabel - przykłady SELECT PRACOWNICY.NAZWISKO, PRACOWNICY.IMIĘ, DANE_OSOBOWE.DATA_UR, ODDZIAŁY.[Nr Oddz] FROM ODDZIAŁY INNER JOIN (PRACOWNICY INNER JOIN DANE_OSOBOWE ON PRACOWNICY.ID_prac = DANE_OSOBOWE.ID_PRAC) ON ODDZIAŁY.[Nr Oddz] = PRACOWNICY.NR_ODDZ) ;

Polecenie SELECT klauzula WHERE W warunkach: można stosować kryteria wyboru: operatory porównania:{ = <>!= > >= < <= } nazwisko = Kowalski, wiek < 25, Data = 11-JUL-1996, Data > 1996-07-11 operatory logiczne: NOT AND i OR Przedziały: BETWEEN i NOT BETWEEN WHERE wiek BETWEEN 30 and 40 Listy: słowo kluczowe IN i NOT IN WHERE litera IN ( A, B, C ), WHERE liczba IN (10, 20, 30)

Klauzula WHERE wyrażania: IS NULL, IS NOT NULL W warunkach można stosować: do porównywania wartości pustych (NULL) należy stosować składnię IS NULL oraz IS NOT NULL do porównywania łańcuchów można stosować operator LIKE akceptujący wzorce napisów, w których: znak _ zastępuje dowolny znak, % zastępuje dowolny ciąg znaków [ ] wiele pojedynczych znaków z listy np.: WHERE nazwisko LIKE [C-P]abacki zwróci np. Cabacki, Fabacki [^] wiele pojedynczych znaków nie z listy, WHERE nazwisko LIKE [^C-P]arsen

Operator LIKE Działa na kolumnach zawierających wartości łańcuchowe. Operator LIKE sprawdza czy wartość tekstowa odpowiada podanemu wzorcowi, jak zaczynający sie od tekstu, kończący się na tekście, lub zawierający tekst Tworząc wzorce stosuje się znaki wieloznaczne: % - zastępuje sekwencję dowolnych znaków o długości n _ - odpowiada jednemu znakowi w przeszukiwanym tekście W Akcesie: * - zastępuje sekwencję dowolnych znaków o długości? odpowiada jednemu znakowi

Klauzula WHERE Operatory LEFT, RIGHT; słowo DISTINCT W warunkach: można stosować: Operatory LEFT, RIGHT Przykłady: WHERE (LEFT(nazwisko,1)= K ) WHERE (RIGHT(RTRIM(IMIE),1)= A ) Co oznacza: pierwszy znak od prawej to A ; (z pominięciem spacji funkcja RTRIM) W celu wyeliminowania powtórzeń można użyć słowa kluczowego DISTINCT, np. w wyniku polecenia: SELECT DISTINCT Miasto, Kraj FROM Dostawcy zostanie zwrócona lista miast bez powtórzeń.

Sortowanie wyników klauzula ORDER BY Sortowanie wyników: może odbywać się za pomocą klauzuli ORDER BY według jednej lub kilku kolumn, których nazwy oddzielane są przecinkiem. ASC rosnąco (domyślnie), DESC - malejąco SELECT DISTINCT Miasto, Kraj FROM Dostawcy ORDER BY miasto DESC SELECT Nazwafirmy, Miasto, Kraj FROM Dostawcy ORDER BY Kraj, Miasto

Usuwanie niepotrzebnych spacji Funkcja TRIM (nazwa_kolumny) służy do odrzucenia spacji znajdujących się przed i za łańcuchem Sformułowanie zapytania jak poniżej, z zastosowaniem funkcji TRIM (nazwa kolumny) usuwa ten problem Przykład polecenia: SELECT Imię, Nazwisko, Pensja, Miasto FROM NAZWISKA WHERE TRIM(Nazwisko) BETWEEN 'D' AND 'N ;

Funkcje agregujące Funkcje agregujące realizują obliczenia na zbiorze rekordów: COUNT - liczy ilość wierszy SUM - sumuje zawartość podanej kolumny lub wyrażenia AVG - liczy średnia arytmetyczna dla kolumny lub wyrażenia MIN - liczy wartość minimalną dla kolumny lub wyrażenia MAX - liczy wartość maksymalną dla kolumny lub wyrażenia Przykład 1: Obliczenie liczby zamówień po 1 lutym 2000: SELECT COUNT(*) AS [Ilość zamówień] FROM Zamówienia WHERE DataZamówienia > #1-02-2000# Przykład 2: Obliczenie całkowitego przychodu ze sprzedaży, wynik w formacie waluta: SELECT SUM(Ccur(Ilość*Cena)) AS [Całkowity przychód] FROM [Szczegóły zamówienia ]

zapytania grupujące klauzula GROUP BY Klauzula GROUP BY pozwala tworzyć grupy rekordów. Klauzula umożliwia grupowanie wyników względem zawartości wybranej kolumny Jeżeli użyjemy w zapytaniu jednocześnie funkcji agregującej dla innej kolumny, to funkcja ta dokona obliczeń dla kategorii określonych w klauzuli GROUP BY kolumna, względem której dokonujemy grupowania powinna, znajdować się w części deklaracyjnej wyrażenia SELECT Klauzula GROUP BY dziala ze wszystkimi funkcjami agregującymi. Przy pomocy klauzuli GROUP BY można tworzyć grupy i podgrupy, w zależności od tego czy wybrana jest więcej niż jedna kolumna. Przykład: SELECT Miasto, Stanowisko FROM NAZWISKA GROUP BY Miasto, Stanowisko ORDER BY Stanowisko;

Filtrowanie wyników zapytań z użyciem HAVING Język SQL dostarcza jeszcze jedna metodę filtrowania wyników zapytania w polaczeniu z klauzula GROUP BY Klauzula WHERE filtruje wyniki zapytania zanim są one grupowane, natomiast klauzula HAVING filtruje wyniki po wykonaniu grupowania Wyrażenia zawarte w tej klauzuli wykonywane są na całych grupach, a nie na pojedynczych rekordach Postać polecenia wybierającego te miasta, dla których suma wypłat jest wyższa od 3 000 zł SELECT Miasto, SUM(Pensja) AS SUMA FROM NAZWISKA GROUP BY Miasto Wynik zapytania HAVING SUM(Pensja) > 3000 ORDER BY SUM(Pensja) DESC;

Filtrowanie wyników zapytań z użyciem HAVING Funkcje agregujące są użyte w dwóch miejscach, w klauzuli SELECT oraz HAVING W HAVING musi się znajdować takie samo wyrażenie jak na liście klauzuli SELECT Nazwy kolumn, które nie pojawiają się na liście klauzuli SELECT, nie mogą być w ogóle użyte w klauzuli GROUP BY Klauzula HAVING pojawia się przed ORDER BY ale za GROUP BY W obrębie klauzuli HAVING, można używać złożonych wyrażeń Jedyne ograniczenie polega na tym, ze wszystkie wyrażenia w części HAVING musza mieć swój odpowiednik na liście klauzuli SELECT HAVING i WHERE mogą być stosowane w jednym zapytaniu

ZAPYTANIA GRUPUJĄCE Rozszerzona składnia SELECT SELECT [DISTINCT] [TOP n [PERCENT] ] Lista kolumn FROM Źródło Listy [ WHERE Warunek wybierający] [ GROUP BY Warunek grupowania] [ HAVING Szczegóły grupowania] [ ORDER BY Wyrażenie [ASC DESC]]

KWERENDA KRZYŻOWA TRANSFORM Count(Studenci_uczelnia.ID_albumu) AS LICZBA_STUDENTOW SELECT Kierunki.kierunek FROM Kierunki INNER JOIN Studenci_uczelnia ON Kierunki.KOD_kierunku = Studenci_uczelnia.KOD_kierunku GROUP BY Kierunki.kierunek PIVOT Studenci_uczelnia.Rok_studiow;