SQL Structured Query Language

Podobne dokumenty
SQL Structured Query Language

SQL Structured Query Language

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

Przestrzenne bazy danych Podstawy języka SQL

Systemy GIS Tworzenie zapytań w bazach danych

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

Relacyjne bazy danych. Podstawy SQL

Wprowadzenie do języka SQL

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

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Relacyjne bazy danych. Podstawy SQL

mail: strona: konsultacje: na stronie (po wcześniejszym umówieniu drogą mailową)

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

Paweł Rajba

Bazy danych. Dr inż. Paweł Kasprowski

Język SQL podstawy zapytań

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

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

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

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

Język SQL. Rozdział 2. Proste zapytania

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

27 lutego Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład I. dr inż.

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

Model relacyjny. Wykład II

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

SQL (ang. Structured Query Language)

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Microsoft SQL Server Podstawy T-SQL

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Grupowanie i funkcje agregujące

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

Model relacyjny. Wykład II

Projektowanie systemów baz danych

Autor: Joanna Karwowska

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

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

3. Podzapytania, łączenie tabel i zapytań

Podstawy języka SQL cz. 2

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

Wykład 6. SQL praca z tabelami 3

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

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

Oracle11g: Wprowadzenie do SQL

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

Język SQL, zajęcia nr 1

1 Wstęp do modelu relacyjnego

Autor: Joanna Karwowska

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Współczesne systemy baz danych

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

Współczesne systemy baz danych

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

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

RBD Relacyjne Bazy Danych

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

PODZAPYTANIE (SUBSELECT)

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

040 STRUCTURED QUERY LANGUAGE. Prof. dr hab. Marek Wisła

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

Bazy danych i systemy zarzadzania

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

Wykład 5 Charakterystyka języka SQL. Elementy obliczeń relacyjnych.

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

Autor: Joanna Karwowska

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

Wykład XII. optymalizacja w relacyjnych bazach danych

Widok Connections po utworzeniu połączenia. Obszar roboczy

Język SQL, zajęcia nr 2

Wykład 5. SQL praca z tabelami 2

STANDARDY JĘZYKA SQL CECHY JĘZYKA SQL WADY I ZALETY

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Wprowadzenie do SQL Użycie kwerend i SQL

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

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

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

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

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

Wykład 8. SQL praca z tabelami 5

Ref. 7 - Język SQL - polecenia DDL i DML

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

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

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

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

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Zadania z SQLa (MS SQL Server)

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

Bazy danych i usługi sieciowe

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

2. Język SQL SQL jest językiem deklaratywnym (Charakterystyczną cechą języków

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

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

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

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Wykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

LITERATURA. C. J. Date; Wprowadzenie do systemów baz danych WNT Warszawa 2000 ( seria Klasyka Informatyki )

PODSTAWY BAZ DANYCH 13. PL/SQL

Technologie baz danych

Transkrypt:

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 przez IBM w 1973 r wykorzystujący SEQUEL pierwszy komercyjny SZBD stworzony przez Relational Software ( obecnie Oracle ) w 1979 r dla amerykańskiej marynarki wojennej, CIA i kilku agencji rządowych od 1986 r SQL jest oficjalnym standardem ( ANSI ), od 1987 ( ISO ) aktualny standard SQL: 2011 Cechy SQL: język deklaratywny język interpretowany dostęp do danych z poziomu tabel zbliżony konstrukcją do języka naturalnego wykorzystuje logikę trójwartościową bazuje na algebrze relacyjnej nie jest w pełni zgodny z modelem relacyjnym Możliwości SQL wyszukiwanie danych dopisywanie, usuwanie i modyfikacja danych tworzenie, usuwanie i modyfikowanie obiektów bazo_danowych zarządzanie transakcjami zarządzanie bazą danych Formy języka SQL interakcyjny ( autonomiczny ) statyczny kod SQL ( Static SQL ) dynamiczny kod SQL ( Dynamic SQL ) Składowe SQL DML ( Data Manipulation Language ) do manipulacji danymi, zawierający polecenia SELECT, UPDATE, INSERT, DELETE itp. DDL ( Data Definition Language ) do definiowania obiektów baz danych; polecenia CREATE, DROP, ALTER itp. DCL ( Data Control Language ) do zarządzania bazą danych polecenia COMMIT, ROLLBACK, GRANT, REVOKE itp. 1

Wady SQL standard nie jest przestrzegany przez różnych producentów narzędzi do baz danych nie określa zachowań bazy danych w wielu sytuacjach ( np.: indeksowanie, składowanie ) zbliżenie SQL'a do języka mówionego spowodowało większą złożoność składni czasem brak konsekwencji w składni wynikająca z pozostawienia starych form zbyt łatwe uzyskiwanie wyniku iloczynu kartezjańskiego Składniki polecenia ( instrukcji ) SQL klauzule, niektóre opcjonalne wyrażenia predykaty określające warunki średnik kończący polecenie wielkość liter w składni nie ma znaczenia Składnia zapytania SELECT [ DISTICT ] < lista_wynikowa > FROM < źródło_danych > [ WHERE < warunek_logiczny_dla_wierszy > ] [ GROUP BY < kryterium_grupowania > [ HAVING < warunek_logiczny_dla_grup > ] ] [ ORDER BY < kryterium_porządkowania > ] ; Klauzule SELECT oraz FROM są obowiązkowe; kolejność poszczególnych klauzul jest ważna Klauzula SELECT określa schemat relacji wynikowej; słowo kluczowe DISTINCT ( bez duplikatów) stosujemy aby w wyniku otrzymać różne krotki ( wiersze ) praktykuje się użycie operatora * - lista wynikowa zawiera wszystkie atrybuty z relacji źródłowych lista wynikowa to elementy oddzielane przecinkiem element z listy może być atrybutem z relacji źródłowych, wyrażeniem typu liczbowego, tekstowego, datowego w szczególności funkcją istnieje możliwość stosowania aliasów ( przezwisk ) dla wyrażeń Klauzula FROM określa źródło danych; może to być jedna ( nazwana ) relacja, lub połączone relacje w szczególności ( nienazwana ) relacja jako wynik podzapytania Klauzula WHERE określa warunek logiczny jaki ma być spełniony przez krotki ( wiersze tabeli ) relacji wynikowej 2

Warunek logiczny budujemy używając operatory: porównania ( =, <>, <, <=, >, LIKE ) zawierania w przedziale ( BETWEEN... AND ) zawierania w zbiorze ( IN ) operatorów logicznych (ALL, AND, ANY, EXISTS, NOT, OR ) operatory do obsługi wartości NULL ( IS NULL, IS NOT NULL) oraz atrybuty z relacji źródłowych, literały, a także funkcje Klauzula GROUP BY umożliwia podzielenie relacji wynikowej na podzbiory agregację pojedynczy podzbiór/grupę stanowią krotki, dla których kryterium grupowania ma identyczną wartość. na liście wynikowej klauzuli SELECT mogą wystąpić jedynie elementy związane z kryterium grupowania, funkcje agregujące (COUNT, SUM, AVG, MIN, MAX i inne) Klauzula HAVING określa warunki dla podzbiorów/grup, które powstały w wyniku agregacji jest możliwa tylko z klauzulą GROUP BY Klauzula ORDER BY umożliwia posortowanie danych wynikowych według zadanego kryterium kryterium może to być lista atrybutów z relacji źródłowych, wyrażenie, alias lub liczba wskazująca pozycje na liście wynikowej klauzuli SELECT możliwy jest porządek sortowania; rosnący, malejący, losowy opcja (klauzula) ORDER BY występuje w składni tylko raz SELECT Count(*) FROM Studenci WHERE rodzaj_studiow='inż_st' AND rok IS NOT NULL; SELECT DISTINCT stanowisko FROM Pracownicy; SELECT Count(*) FROM Studenci WHERE rodzaj_studiow='inż_st' AND rok=2 AND imiona='jakub' GROUP BY imiona; SELECT kraj, Count(*), Sum(koszt) FROM Filmy GROUP BY kraj HAVING Count(*) > 2 AND Sum(koszt) > 1000000 ORDER BY kraj; Złączenia tabel w języku SQL Notacja w standardzie ANSI SQL FROM < tabela1> [ AS <alias> ] { CROSS JOIN [ NATURAL ] [ <rodzaj_połączenia> ] JOIN < tabela2 > [ AS < alias > ] { ON <warunek1> [ { AND OR } <warunek2> ] [... ] ] USING <atrybut1 > [,... ] ) } } 3

Typy połączeń Iloczyn kartezjański daje w wyniku tabelę składającą się ze wszystkich możliwych kombinacji wierszy obu łączonych tabel SELECT m.imiona,m.rok FROM Studenci k CROSS JOIN Studenci m WHERE k.nr_albumu = ' ' AND to_char(m.data_urodzenia,'yyyy') IN ('1988', '1989','1990') AND m.rodzaj_studiow=' INŻ_ST' AND m.imiona NOT LIKE '%A' ; Złączenia naturalne daje w wyniku iloczyn kartezjański łączonych tabel ograniczony do tych wierszy, dla których atrybuty o tych samych nazwach i typach w obu tabelach mają równe wartości SELECT nazwisko, imie, rola, tytul FROM Filmy NATURAL JOIN Obsady WHERE rezyser LIKE 'Wajda%' ; Złączenie warunkowe ( tetha złączenie ) daje w wyniku iloczyn kartezjański łączonych tabel ograniczony do tych wierszy, dla których został spełniony warunek tetha SELECT nazwa, nazwisko FROM Pracownicy JOIN Dzialy USING ( id_dzialu); stary zapis SELECT * FROM Pracownicy p, Dzialy d WHERE p.id_dzialu=d.id_dzialu; Złączenie zewnętrzne rozszerza rezultat złączenia równościowego o te wiersze jednej lub obu tabel, dla których nie odnaleziono odpowiedników w drugiej tabeli. Wiersze stanowiące rozszerzenie są wypełnione wartością NULL. Złączenia zewnętrzne dzielą się na lewostronne, prawostronne, pełne SELECT nazwa,count(nr_akt) Liczba, sum(placa+nvl(dodatek_funkcyjny,0)) Budzed FROM Pracownicy FULL JOIN Dzialy USING(Id_dzialu) GROUP BY Nazwa ; Samozłączenie złączenie relacji samej z sobą SELECT p.nazwisko AS Pracownik, s.nazwisko AS Kierownik FROM Pracownicy p LEFT JOIN Pracownicy s ON (p.kierownik = s.nr_akt ) --WHERE s.nazwisko='krol'; 4

Podzapytania mogą być zagnieżdżone w klauzulach SELECT, FROM, WHERE oraz HAVING SELECT nazwisko,placa FROM Pracownicy WHERE placa = ( SELECT min( placa ) FROM Pracownicy ); SELECT * FROM ( SELECT nazwisko, placa FROM Pracownicy ORDER BY 2 DESC ) WHERE rownum<=3 ; SELECT imiona,count(*) FROM Studenci WHERE rodzaj_studiow='inż_st' GROUP BY imiona HAVING count(*) = ( SELECT max(count(*)) FROM Studenci WHERE rodzaj_studiow='inż_st' GROUP BY imiona) ; SELECT a.plec "PŁEĆ", a.liczba, round(100*a.liczba/b.liczba,1) AS "% udział" FROM ( SELECT plec, count(*) liczba FROM Aktorzy GROUP BY plec ) a, ( SELECT count(*) liczba FROM Aktorzy ) b; SELECT nr_albumu, rok FROM Studenci s WHERE data_urodzenia = ( SELECT max(data_urodzenia) FROM Studenci WHERE rok = s.rok ) ; 5