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

Podobne dokumenty
Systemy GIS Tworzenie zapytań w bazach danych

Autor: Joanna Karwowska

Przestrzenne bazy danych Podstawy języka SQL

Autor: Joanna Karwowska

Relacyjne bazy danych. Podstawy SQL

Podstawy języka SQL cz. 2

3. Podzapytania, łączenie tabel i zapytań

SQL (ang. Structured Query Language)

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

Relacyjne bazy danych. Podstawy SQL

Autor: Joanna Karwowska

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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

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

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

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

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

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

Język SQL. Rozdział 2. Proste zapytania

SQL Structured Query Language

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

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

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

Język SQL podstawy zapytań

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

Wykład 5. SQL praca z tabelami 2

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

Ćwiczenie zapytań języka bazy danych PostgreSQL

Podstawowe zapytania SELECT (na jednej tabeli)

Microsoft SQL Server Podstawy T-SQL

PODZAPYTANIE (SUBSELECT)

Wykład 6. SQL praca z tabelami 3

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

Wprowadzenie do języka SQL

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

Model relacyjny. Wykład II

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

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

Laboratorium Bazy danych SQL 2

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

Technologie baz danych

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

Zadania z SQLa (MS SQL Server)

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

Paweł Rajba

Bazy danych SQL Server 2005

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Wprowadzenie do baz danych

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

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

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

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

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

Grupowanie i funkcje agregacji

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

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

Bazy danych wykład trzeci. Konrad Zdanowski

Oracle11g: Wprowadzenie do SQL

SQL praca z tabelami 4. Wykład 7

Współczesne systemy baz danych

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

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

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

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

Model relacyjny. Wykład II

Współczesne systemy baz danych

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

RBD Relacyjne Bazy Danych

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

LAB 3 (część 1 Projektu)

Technologie baz danych

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

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

Grupowanie i funkcje agregujące

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

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

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

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

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

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

SQL Structured Query Language

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

SQL Structured Query Language

SIECI KOMPUTEROWE I BAZY DANYCH

Wykład XII. optymalizacja w relacyjnych bazach danych

Agregacja i Grupowanie Danych. Funkcje Agregacji. Opcje GROUP BY oraz HAVING

SQL do zaawansowanych analiz danych część 1.

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

Bazy danych. Informacje podstawowe

Podzapytania. Podzapytania nieskorelowane i skorelowane

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

050 SQL ELEMENTY ZAAWANSOWANE. Prof. dr hab. Marek Wisła

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

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

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Konstruowanie Baz Danych DQL agregacja danych

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

Transkrypt:

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. Decyzję o sposobie przechowywania i pobrania danych pozostawia się systemowi zarządzania bazą danych (DBMS). W bazach danych Microsoft Access, Libre Base SQL pozwala na wykonanie zapytań szybciej i bardziej efektywnie. 1. Podstawowe komendy, funkcje i klauzule: a. Wybieranie danych: SELECT SELECT [DISTINCT] wyrażenie [AS nazwa_kolumny] [,...] [FROM źródło_elementów] [WHERE warunek] [GROUP BY wyrażenie [,...]] [HAVING warunek] [{UNION INTERSECT EXCEPT} instrukcja_select] [ORDER BY wyrażenie [ASC DESC] SELECT * FROM studenci SELECT * FROM oceny WHERE pid = 0001 SELECT * FROM studenci NATURAL JOIN oceny SELECT * FROM studenci NATURAL JOIN oceny WHERE pid='0017 SELECT DISTINCT studenci.nazwisko, studenci.imie, oceny. przedmiot, oceny.ocena, oceny.data FROM studenci, oceny WHERE oceny. przedmiot = OiSA' AND studenci.pid = oceny.pid ORDER BY studenci.nazwisko Klauzula SELECT określa wynikowe kolumny i może zawierać: Nazwy kolumn wynikowych Wyrażenia zawierające funkcje, nazwy kolumn i stałe Stosując AS można nadać wynikowym kolumnom nazwy inne od domyślnych Symbol * oznacza wszystkie kolumny Dyrektywę DISTINCT likwidującą powtórzenia wierszy Aby odwołać się do nazwy kolumny możemy użyć: nazwa_tabeli.nazwa_kolumny lub nazwa_kolumny jeśli nazwa kolumny jednoznacznie określa tabelę, z której pochodzi. 1

2. Wyrażenia arytmetyczne: Operatory: +, -, *, / Funkcje matematyczne: ABS(x), POWER(x,y), SQRT(x), RAND() generuje liczbę losową z zakresu od 0 do 1 Funkcje zaokrąglania liczb: a) CEILING(x) funkcja zaokrągla swój argument w górę do najbliższej liczby całkowitej (Oracle CEIL(x)) b) FLOOR(x) funkcja zaokrągla swój argument w dół do najbliższej liczby całkowitej c) ROUND(x,n) zaokrągla liczbę x do n miejsc po przecinku Jeśli w wyrażeniu matematycznym choć jeden z argumentów jest NULL, to wynik tego wyrażenia zawsze jest NULL 3. Wyrażenia tekstowe: Operatory: +, & 'tekst' + NULL = NULL lub 'tekst' & NULL = 'tekst' LOWER(x), UPPER(x) CHARACTER_LENGTH(x), LENGTH(x) SUBSTRING(x FROM n FOR m) POSITION(x1 IN x) TRIM(ltb wzorzec FROM napis) ltb LEADING, TRAILING, BOTH 4. Konwersja typów CAST(wyrażenie AS typ_danych) CAST(ocena AS NUMERIC(2, 1)) SELECT ocena, CASE WHEN ocena > 4 THEN 'gratuluję' WHEN ocena > 3 THEN 'dobrze' WHEN ocena > 2 THEN 'nienajlepiej' WHEN ocena = 2 THEN 'może następnym razem' END AS "komentarz 1", CASE ocena WHEN 5 THEN 'gratuluję' WHEN 4.5 THEN 'też gratuluję' WHEN 4 THEN 'dobrze' WHEN 3.5 THEN 'no średnio' WHEN 3 THEN 'nienajlepiej' ELSE 'może następnym razem' END AS "komentarz 2" FROM oceny 2

5. Funkcje agregujące: Wyznaczają jedną wartość z grupy wartości w kolumnie grupy wierszy określa klauzula GROUP BY a) COUNT zlicz ilość wszystkich wartości (w kolumnie) różnych od NULL i. COUNT(*) zlicza wszystkie wiersze b) AVG oblicza średnią ze wszystkich wartości c) SUM sumuje wartości d) MAX zwraca wartość największą e) MIN zwraca wartość najmniejszą 6. Klauzula FROM Klauzula FROM zawiera wyrażenie tabelowe określające źródło danych dla zapytania Wyrażenie tabelowe klauzuli FROM może zawierać listę tabel i perspektyw źródłowych albo np.a, B oznacza iloczyn kartezjański (złączenie krzyżowe) tabel A i B A, B = A CROSS JOIN B Złączenia tabel: A NATURAL [typ] JOIN B złączenie naturalne (po kolumnach o tych samych nazwach w obu tabelach) A [typ] JOIN B ON warunek A [typ] JOIN B USING (kolumna [,...]) Typy złączeń zewnętrznych: {LEFT RIGHT FULL} [OUTER] Podzapytania umieszczone w nawiasach i z nadanymi aliasami Tabelom można nadać zastępcze nazwy nazywane: aliasami, nazwami skorelowanymi i zmiennymi zakresu format: nazwa_tabeli_źródłowej [AS] alias nadawanie aliasów tabelom źródłowym stosuje się przy samozłączeniach tabel alias trzeba nadać wynikowi podzapytania, które może być użyte w zastępstwie tabeli np. select "PRACOWNICY"."FIRST_NAME" as "Imię", "PRACOWNICY"."LAST_NAME" as "Nazwisko", "SZEFOWIE"."FIRST_NAME" as "Imię(szefa)", "SZEFOWIE"."LAST_NAME" as "Nazwisko(szefa)" from "EMPLOYEES" "PRACOWNICY" LEFT JOIN "EMPLOYEES" "SZEFOWIE" ON "PRACOWNICY"."MANAGER_ID"="SZEFOWIE"."EMPLOYEE_ID" 3

7. Klauzula WHERE: Zawiera warunek selekcji wierszy tabeli wynikowej nazywany często wyrażeniem ograniczającym Warunek (predykat) jest wyrażeniem logicznym (funkcją zdaniową) w tabeli wynikowej znajdą się tylko wiersze spełniające warunek Predykat może zawierać: nazwy kolumn, wyrażenia logiczne, operatory porównań, funkcje i zagnieżdżone instrukcje SELECT (podzapytania) Predykaty mogą mieć wartość logiczną TRUE, FALSE lub NULL Na logicznym rachunku predykatów opiera się rachunek relacyjny w przypadku języka SQL jest to rachunek relacyjny na krotkach Predykaty: Porównania : =, <, >, <=, >=, <> a >= b; a <b; itp. BETWEEN: x BETWEEN 23 AND 143 x >= 23 AND x <= 143 IN : x IN (1, 2, 3); x IN (SELECT y FROM tabela_a) LIKE : nazwisko LIKE Kowal% _ zastępuje dowolny pojedynczy znak % zastępuje ciąg pusty lub składający się z dowolnej ilości znaków W programie MS Access znaki _, % są zastąpione przez?, * NULL : x IS NULL; y IS NOT NULL EXISTS : EXISTS (SELECT * FROM zakupy WHERE id_klienta= 0123 ) OVERLAPS 8. Klauzule GROUP BY i HAVING: Klauzula GROUP BY jest używana do definiowania grup wyjściowych wierszy Dla grup wierszy można używać funkcji agregujących (COUNT, MIN, MAX,SUM, AVG) Klauzula HAVING (podobnie jak WHERE) odrzuca grupy wierszy nie spełniające warunku (predykatu) SELECT studenci.nazwisko studenci.imie AS student, srednie."średnia" FROM (SELECT oceny.id_studenta, AVG(oceny.ocena) AS "średnia" FROM oceny GROUP BY oceny.id_studenta) srednie NATURAL JOIN studenci 9. UNION, INTERSECT, EXCEPT, ORDER BY UNION operator sumowania wyników dwóch instrukcji SELECT INTERSECT operator przecięcia wyników dwóch instrukcji SELECT EXCEPT operator różnicy wyników dwóch instrukcji SELECT ORDER BY klauzula określająca kryterium sortowania ASC oznacza kolejność sortowania rosnącą (domyślna) DESC oznacza kolejność sortowania malejącą 4

SELECT 'student' AS funkcja, nazwisko AS "Nazwisko", imie AS "Imię" FROM studenci UNION SELECT "Stopien_naukowy", "Nazwisko", "Imie" FROM wykladowcy ORDER BY 2 10. Aktualizacja danych UPDATE nazwa_tabeli SET nazwa_kolumny = wyrażenie [, ] WHERE wyrażenie_ograniczające UPDATE płace SET płaca = płaca * 2 WHERE nazwisko = Kowalski UPDATE płace SET płaca = płaca + 10 WHERE nazwisko LIKE Kow% Rodzaj zgodności Wzorzec Zgodność (zwraca True) Brak zgodności (zwraca False) Wiele znaków a*a aa, aba, abbb abc *ab* abc, AABB, Xa Znak specjalny a[*]a a*a Wiele znaków ab* abaaa aba ab Jeden znak a?a aaa, a3a, aba Jedna cyfra a#a a0a, a1a, a2a Zakres znaków [a & z] f, p, j 2, & Poza zakresem [!a & z] 9, &, % b, a Nie cyfra [!0 & 9] A, a, &, ~ 0, 1, 9 Połączenie a[!b & m]# An9, az0, a99 abc, aj0 5

ZADANIA Otwórz bazę danych Cukiernia Wyświetl zawartość tabeli: a) Wyświetl wszystkie rekordy z tabeli Czekoladki (wszystkie atrybuty). b) Wyświetl dane (wszystkie atrybuty) wszystkich klientów. c) Wyświetl wszystkie rekordy z tabeli Klienci (wszystkie atrybuty) posortowane alfabetycznie według miasta, a następnie według nazwiska. d) Wyświetl wszystkie rekordy z tabeli Czekoladki (wszystkie atrybuty) posortowane malejąco według ceny jednostkowej (koszt). e) Wyświetl nazwę, opis i cenę poszczególnych opakowań czekoladek posortowane alfabetycznie według nazwy i ceny. f) Wypisz pierwsze 4 pudełka czekoladek i ich opis. g) Wyświetl wszystkie informacje na temat 5 najdroższych opakowań Czekoladek. h) Wypisz pierwsze 25% wszystkich zamówień. i) Wyświetl wszystkie Pudełka czekoladek, których stan magazynowy jest mniejszy niż 400. j) Wyświetl nazwy, adresy Klientów z Katowic posortowane według Nazwy Klientów. k) Wyświetl wszystkie czekoladki których koszt jest między 30 a 40 groszy. l) Wyświetl informacje na temat wszystkich klientów, których nazwisko ma przedostatnią literę ó. m) Wypisz wszystkie miasta, z których pochodzą klienci (tak aby nazwa miasta się nie powtarzała. 6