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

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

Systemy GIS Tworzenie zapytań w bazach danych

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

Bazy danych. Dr inż. Paweł Kasprowski

Paweł Rajba

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

Relacyjne bazy danych. Podstawy SQL

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

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

Wprowadzenie do języka SQL

Model relacyjny. Wykład II

Model relacyjny. Wykład II

Relacyjne bazy danych. Podstawy SQL

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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

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

Język SQL podstawy zapytań

Autor: Joanna Karwowska

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

Współczesne systemy baz danych

Język SQL. Rozdział 2. Proste zapytania

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

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

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

Współczesne systemy baz danych

Wykład 6. SQL praca z tabelami 3

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

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

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

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

Dr Michał Tanaś(

Microsoft SQL Server Podstawy T-SQL

Język SQL, zajęcia nr 1

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

Grupowanie i funkcje agregujące

Projektowanie systemów baz danych

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

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

1 Wstęp do modelu relacyjnego

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

Podstawy języka SQL cz. 2

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

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

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

Widok Connections po utworzeniu połączenia. Obszar roboczy

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

1 Wprowadzenie do języka SQL 1. 2 Podstawowe elementy języka 3. 3 DML - zapytania, część I 6. 4 Źródła 12

SQL (ang. Structured Query Language)

Autor: Joanna Karwowska

ACESS- zadania z wykorzystaniem poleceń SQL

Bazy danych 7. SQL podstawy

SQL w praktyce. Miłej i owocnej nauki!!!

Oracle11g: Wprowadzenie do SQL

Po prawidłowym podłączeniu do serwera MySQL należy wybrać bazę, na której będziesz pracować:

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

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

Wykład 2. SQL 1 Structured Query Lenguage

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

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

Wykład 05 Bazy danych

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

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

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

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

Wykład 8. SQL praca z tabelami 5

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

Autor: Joanna Karwowska

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

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

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

Wykład 5. SQL praca z tabelami 2

Ćwiczenie 7 - DDL. Relacje i ograniczenia integralnościowe. Ćwiczenie 7 DDL. Wymagania: Bazy Danych

Wykład XII. optymalizacja w relacyjnych bazach danych

Wykład :45 BD-1 W_3

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

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

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

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

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

Bazy danych. Informacje podstawowe

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

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

Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych.

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

SIECI KOMPUTEROWE I BAZY DANYCH

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

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

Wykład 4. SQL praca z tabelami 1

3. Podzapytania, łączenie tabel i zapytań

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

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

Język SQL. Rozdział 8. Język manipulowania danymi DML

Przydatne sztuczki - sql. Na przykładzie postgres a.

Transkrypt:

Terminy, określenia: Relacja tabela Krotka wiersz ( rekord ) Atrybut kolumna (pole ) Stopień relacji liczba atrybutów Klucz główny relacji jednoznaczny identyfikator krotki Dziedzina zbiór dopuszczalnych wartości danego atrybutu Schemat relacji R( A 1, A 2,...,A n ) Baza danych zbiór relacji 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 pod język danych dostęp do danych z poziomu relacji zbliżony konstrukcją do języka naturalnego wykorzystuje logikę trójwartościową wykorzystuje algebrę relacyjną 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 ) osadzony SQL ( Embedded SQL ) język modułów dynamiczny kod SQL ( Dynamic SQL ) 1

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. 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 Podstawowe typy danych SQL wg ANSI CHARACTER( n ), CHAR( n ) - ciąg znaków o stałej długości określone przez rozmiar n CHARACTER VARYING( n ), CHAR VARYING( n ) - ciąg znaków o zmiennej długości, nie przekraczającej podanego rozmiaru n NUMERIC( p, s ), DECIMAL( p, s ) - liczby o ustalonej precyzji p i skali s INTEGER, INT, SMALLINT liczby całkowite FLOAT( b ), DOUBLE PRECISION, REAL liczby zmiennoprzecinkowe DATE data w formacie: YYYY-MM-DD TIME czas w formacie: HH:MI:SS TIMESTAMP data wraz z czasem znacznik czasu w formacie : YYYY-MM-DD HH:MI:SS INTERVAL przedział czasu BLOB dane binarne CLOB dane znakowe XML dane w formacie XML 2

Przedziały czasu i arytmetyka czasu Wyróżnia się dwa typy przedziałów czasowych: lata do miesięcy dni do sekundy Przykłady : INTERVAL '3-5' YEAR TO MONTH przedział 3 lat i 5 miesięcy INTERVAL '5' YEAR przedział 5 lat INTERVAL '5 10:12' DAY TO MINUTE - przedział 5 dni 10 godzin i 12 minut na przedziałach czasu, datach, liczbach można wykonywać operacje: dodawania, odejmowania a nawet mnożenia 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 wynik podzapytania Klauzula WHERE określa warunek logiczny jaki ma być spełniony przez krotki ( wiersze tabeli ) relacji wynikowej Warunek logiczny budujemy używając operatory: porównania ( =, <>, <, <=, >, LIKE, NOT 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 3

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 Nr_albumu, Rok, Gr_dziekan FROM Studenci WHERE rodzaj_studiow='mgr_st_uzup' AND Specjalnosc LIKE 'Z%' ORDER BY 2, 3 ; SELECT Rok, Semestr, Specjalnosc, Gr_dziekan, Count(*) FROM Studenci WHERE rodzaj_studiow='mgr_st_uzup' GROUP BY Rok, Semestr,Specjalnosc,Gr_dziekan ORDER BY Rok, Specjalnosc ; Operatory zbiorowe UNION, INTERSECT, EXCEPT/MINUS używane są do przeprowadzenia operacji ( z teorii zbiorów ) sumy, przecięcia, różnicy na dwóch lub więcej zgodnych relacjach będących wynikami zapytań SELECT Imiona, Nazwisko FROM Studenci WHERE rok=1 UNION SELECT Imie, Nazwisko FROM Aktorzy ORDER BY 2; SELECT Imiona FROM Studenci WHERE rok=1 INTERSECT SELECT upper(imie) FROM Aktorzy WHERE kraj='pl' ; 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 > [,... ] ) } } 4

Typy połączeń Iloczyn kartezjański daje w wyniku relację składającą się ze wszystkich możliwych kombinacji krotek obu łączonych relacji SELECT k.imiona,k.rok,m.imiona,m.rok FROM Studenci k CROSS JOIN Studenci m WHERE k.imiona IN ('AGNIESZKA','KATARZYNA') AND to_char(k.data_urodzenia,'yyyy')='1991' AND m.imiona IN ('PATRYK','ŁUKASZ','KAROL') AND to_char(m.data_urodzenia,'yyyy')='1989' ; Złączenia naturalne daje w wyniku iloczyn kartezjański łączonych relacji ograniczony do tych krotek, dla których atrybuty o tych samych nazwach i typach w obu relacjach miały 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 relacji ograniczony do tych krotek, dla których został spełniony warunek tetha SELECT Nazwa, Nazwisko FROM Pracownicy [ INNER ] JOIN Zespoly USING ( Id_zesp); SELECT Nazwisko, Placa_min, Placa, Placa_max FROM Pracownicy [ INNER ] JOIN Etaty ON Nazwa=Etat; stary zapis SELECT * FROM Pracownicy p, Zespoly z WHERE p.id_zesp=z.id_zesp; Złączenie zewnętrzne rozszerza rezultat złączenia równościowego o te krotki jednej lub obu relacji, dla których nie odnaleziono odpowiedników w drugiej relacji. Krotki stanowiące rozszerzenie są wypełnione wartością NULL. Złączenia zewnętrzne dzielą się na lewostronne, prawostronne, pełne SELECT Nazwa,Count(Numer) Liczba, sum(placa+nvl(dodatek,0)) Budzed FROM Pracownicy [ OUTER ] FULL JOIN Zespoly USING(Id_zesp) GROUP BY Nazwa ; 5

Samozłączenie złączenie relacji samej z sobą SELECT p.nazwisko AS Pracownik, s.nazwisko AS Kierownik FROM Pracownicy p JOIN Pracownicy s ON (p.szef = s.numer ); 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='mgr_st_uzup' GROUP BY Imiona HAVING count(*) = ( SELECT max(count(*)) FROM Studenci WHERE rodzaj_studiow='mgr_st_uzup' GROUP BY Imiona) ; SELECT Nr_albumu, Rok FROM Studenci s WHERE Data_urodzenia = ( SELECT max(data_urodzenia) FROM Studenci WHERE Rok = s.rok ) ; Wykorzystano Wykłady dr inż. Olga Siedlecka-Lamch - Systemy baz danych z roku 2012 6