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

Podobne dokumenty
Przestrzenne bazy danych Podstawy języka SQL

Systemy GIS Tworzenie zapytań w bazach danych

Autor: Joanna Karwowska

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

Paweł Rajba

Relacyjne bazy danych. Podstawy SQL

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

Wprowadzenie do języka SQL

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

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

Autor: Joanna Karwowska

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

Język SQL podstawy zapytań

Bazy danych. Dr inż. Paweł Kasprowski

SQL (ang. Structured Query Language)

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

Relacyjne bazy danych. Podstawy SQL

Wykład 5. SQL praca z tabelami 2

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

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

Widok Connections po utworzeniu połączenia. Obszar roboczy

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Wykład 8. SQL praca z tabelami 5

Język SQL. Rozdział 2. Proste zapytania

Projektowanie systemów baz danych

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

Język SQL, zajęcia nr 1

Język SQL, zajęcia nr 2

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

Oracle11g: Wprowadzenie do SQL

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

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

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

SQL Structured Query Language

Wykład 6. SQL praca z tabelami 3

Wykład :45 BD-1 W_3

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

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

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

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

Wprowadzenie do baz danych

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

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

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

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

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

BAZY DANYCH algebra relacyjna. Opracował: dr inż. Piotr Suchomski

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

Wykład 05 Bazy danych

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

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

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

LAB 3 (część 1 Projektu)

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Bazy danych 7. SQL podstawy

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

Autor: Joanna Karwowska

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

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

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

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

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

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

SQL Structured Query Language

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

ACESS- zadania z wykorzystaniem poleceń SQL

Bazy danych. Polecenia SQL

Wykład 2. SQL 1 Structured Query Lenguage

Bazy danych - Materiały do laboratoriów VIII

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

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

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

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

Podstawowe informacje o bazach danych. Technologie Informacyjne

Jerzy Nawrocki, Wprowadzenie do informatyki

Teoretyczne podstawy informatyki

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

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

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Kurs. Podstawy MySQL

SIECI KOMPUTEROWE I BAZY DANYCH

Bazy danych Język SQL część 1 Wykład dla studentów matem

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

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

Bazy danych 2. Wykład 5 Structured Query Language (SQL) c.d. DDL

Współczesne systemy baz danych

Współczesne systemy baz danych

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

Model relacyjny. Wykład II

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

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

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

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

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

Bazy danych 6. Klucze obce. P. F. Góra

Grupowanie i funkcje agregujące

Transkrypt:

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

Wprowadzenie Język SQL używany jest do pracy z relacyjną bazą danych. Jest to język nieproceduralny, należący do grupy języków deklaratywnych. Semantyka SQL wyraża, co ma być zrobione, a nie jak. Problem jak przeniesiony został na poziom systemu zarządzania bazą danych. Historia SQL a rozpoczęła się w zeszłym stuleciu. W ramach prac w firmie IBM nad językiem do obsługi baz danych powstał język SEQUEL (Structured English Query Language). Język następnie został rozwinięty i nazwany jako SQL (Structured Query Language - Strukturalny Język Zapytań)

Standardy języka Istnieje wiele różnych dialektów języka SQL. Najważniejsze z nich to ANSI SQL oraz zmodyfikowany w 1992 standard SQL-92 (SQL2), później SQL-99(SQL3). Jedną z ostatnich wersji standardu jest SQL:2003 (ISO/IEC 9075-X:2003). Ponadto istnieje wiele wersji języka SQL implementowane przez wiodących producentów systemów baz danych. Wszystkie zgodne są ze standardem ANSI. Oprócz tego mają wiele dodatkowych funkcji.

Struktura języka Język definiowania danych (DDL Data Definition Language) CREATE TABLE tworzy nowe tabele CREATE VIEW tworzenie widoku CREATE INDEX tworzy indeks ALTER TABLE modyfikuje (zmienia) tabele DROP TABLE usuwa tabele DROP VIEW usuwa widok DROP INDEX usuwa indeks

Struktura języka cd. Język manipulowania danymi (DML Data Manipulation Language) SELECT pozwala wydobyć dane z bazy danych UPDATE uaktualnia/modyfikuje dane w bazie danych DELETE usuwa dane z bazy danych INSERT INTO wstawia nowe dane do tabeli bazy danych Język kontroli danych (DCL Data Control Language) GRANT nadawanie uprawnień REVOKE odbieranie uprawnień

Tworzenie tablic Aby utworzyć nową tablicę w bazie danych należy wykonać polecenie CREATE TABLE, w którym należy określić: Nazwę tablicy (unikalną w całej bazie danych), Nazwy kolumn (unikalne w tablicy), Typ danych każdej kolumny. CREATE TABLE <nazwa tablicy> {<nazwa kolumny> <typ danych>[opcje], [<nazwa kolumny> <typ danych> [opcje] ] [UNIQUE {<nazwa kolumny>,[<nazwa kolumny>]}] }

Tworzenie tablic - opcje NOT NULL w kolumnie zawsze musi być wartość, UNIQUE wartości zapisywane w kolumnie muszą być unikatowe dla każdego wiersza, PRIMARY KEY ma znaczenie jak połączenie NOT NULL i UNIQUE, CHECK(warunek) w czasie wprowadzania wartości sprawdza zadany warunek DEFAULT wartość możliwość zdefiniowania wartości domyślnej, REFERENCES określenie ograniczeń dla klucza obcego, wymaga aby wskazywana wartość była unikatowa.

Tworzenie tablic - przykład CREATE TABLE Zamówienia { }; zam_id serial, klient_id integer NOT NULL, data_zam date NOT NULL, data_wys date, CONSTRAINT zam_info PRIMARY KEY(zam_id), CONSTRAINT zam_klient_info FOREIGN KEY(klien_id) REFERENCES Klienci(klient_id)

Zmiana schematu tablicy Niestety zazwyczaj nie udaje się zaprojektować tak schematu bazy danych aby nie wymagała późniejszej modyfikacji. Modyfikacja struktury tabeli jest możliwa za pomocą ALTER TABLE: ALTER TABLE nazwa tabeli ADD COLUMN nazwa kolmny typ kolumny ALTER TABLE nazwa tabeli DROP COLUMN nazwa kolumny ALTER TABLE nazwa tabeli RENAME stara_nazwa_kolumny TO nowa nazwa ALTER TABLE stara_nazwa_tabeli RENAME TO nowa_nazwa_tabeli W nowych wersjach języka można praktycznie modyfikować każdy parametr. Należy pamiętać, że taka przebudowa jest często kosztowną i ryzykowną operacją.

Wprowadzanie danych do tabeli Do wstawiania nowego wiersza danych do tablicy służy polecenie INSERT INTO: INSERT INTO nazwa_tabeli VALUES(lista wartości) INSERT INTO nazwa_tabeli(lista nazw kolumn) VALUES(lista wartości) Druga forma mimo, że jest dłuższa, to jest bezpieczniejsza. INSERT INTO Nauczyciele VALUES(30389, Piotr, Suchomski, dr, multimedia ); INSERT INTO Nauczyciele(id, nazwisko, stopien) VALUES(30389, Suchomski, dr );

Zapytania w języku SQL Zapytania w SQL służą do wybierania krotek pewnej relacji, które spełniają określony w zapytaniu warunek. Zapytania są realizacją operacji selekcji w algebrze relacyjnej. Konstrukcja typowego zapytania składa się z sekwencji trzech słów kluczowych SELECT, FROM,WHERE.

Zapytania w języku SQL Klauzula FROM służy do określenia relacji, których zapytanie dotyczy, Klauzula WHERE określa warunek, który odpowiada warunkowi selekcji w algebrze relacyjnej. Definiuje on ograniczenia, jakie muszą spełniać krotki, aby zostały wybrane w danym zapytaniu, W klauzuli SELECT zostaje określona lista atrybutów, których wartości z krotek spełniających warunek zapytania są dołączone do odpowiedzi (znak * oznacza wszystkie atrybuty relacji, cała krotka jest umieszczona w odpowiedzi)

Sposób czytania/pisania zapytania Na ogół jest łatwiej sprawdzać zapytania selectfrom-where, zaczynając od klauzuli FROM, dzięki czemu dowiadujemy się, których relacji dotyczy dane zapytanie. Następnie sprawdzamy klauzulę WHERE, aby wiedzieć, które krotki są w zapytaniu istotnie. Dopiero na samym końcu przeglądamy klauzulę SELECT, gdzie określa się wyjście. Tak samo postępuje się w czasie pisania zapytań

Składnia SELECT SELECT[DISTINCT] <lista kolumn/wyrażeń> FROM <lista tablic> [WHERE <warunek>] [GROUP BY <lista kolumn>] [HAVING <warunek>] [UNION <instrukcja SELECT>] [ORDER BY <lista kolumn>

Rzutowanie w języku SQL W języku SQL projekcja jest realizowana przez wskazanie, które kolumny maja być pokazane w wyniku. Znak * oznacza, że w wyniku mają być wyświetlone wszystkie kolumny analizowanych tablic. SELECT id, nazwisko FROM Nauczyciele WHRE id = 30890; Można zażądać aby nazwy wyświetlanych kolumn były inne używając konstrukcji,nazwa kolumny> AS <nazwa wyświetlana> SELECT id AS numer ewidencyjny, nazwisko FROM Nuaczyciele

Selekcja w języku SQL Klauzula WHERE ma nieco szersze znaczenie niż w algebrze relacyjnej. Można w języku SQL używać wyrażeń znanych z języków programowania. Porównując wartości można użyć jednego z sześciu operatorów: =, <>, <, >, <=, >=. W wyrażeniach można używać operatorów logicznych jak AND, OR, NOT. W wyrażeniu warunku mogą występować stałe wartości jak i atrybuty tych relacji, które są wymienione w klauzuli FROM.

Inne przydatne wyrażenia IN sprawdza czy wartość kolumny znajduje się na zadanej liście wartości. SELECT nazwisko, miasto FROM Osoby WHERE miasto IN( Gdańsk, Wrocław, Kraków ); BETWEEN sprawdza czy wartość w kolumnie znajduje się w zadanym przedziale. SELECT nazwisko, wiek FROM Osoba WHERE wiek BETWEEN 18 AND 30 W sql dostępne są również operatory pozwalające porównywać z wartością pustą NULL i NOT NULL.

Funkcje agregujące COUNT() oblicza ilość wierszy w kolumnie dla wartości różnych od NULL. MIN() wyznacza najmniejszą wartość w kolumnie, MAX() wyznacza wartość maksymalną w kolumnie, SUM() oblicza sumę wszystkich wartości w kolumnie, AVG() oblicza wartość średniej arytmetycznej wszystkich wartości w danej kolumnie. Zarówno SUM() jak AVG() mogą być użyte z

Porządkowanie wyniku Krotki będące wynikiem zapytania można posortować za pomocą klauzuli ORDER BY. Domyślnie porządkowanie jest rosnące (ascending ASC), ale można zmienić na porządkowanie malejące (descending DESC. SELECT imie, nazwisko, wiek FROM Osoby ORDER BY nazwisko, imie, wiek DESC W wyniku rzutowania i selekcji w wyniku zapytania mogą pojawić się powtórzenia krotek, aby tego uniknąć można użyć konstrukcji SELECT DISTINCT, ale w przypadku dużych zbiorów danych jest to mało efektywna metoda.

Iloczyn kartezjański i złączenie W języku SQL w łatwy sposób można tworzyć zapytania dotyczące wielu relacji. Wystarczy nazwy tych relacji umieścić po klauzuli FROM. Wówczas klauzule SELECT i WHERE mogą odnosić się do dowolnej relacji umieszczonej po słowie FROM. Analogicznie jak w algebrze relacji niejednoznaczność nazw kolumn można rozwiązać przez stosowanie zapisu z nazwą tablicy i nazwą kolumny po kropce.

Suma, iloczyn, różnica Jeśli w wyniku zapytań SQL powstają relacje o takich samych zbiorach atrybutów, to można do wyników tych zapytań stosować operatory, które odpowiadają teoriomnogościowym operatorom algebry relacyjnej. W języku SQL do oznaczenia tych operatorów używa się odpowiednio słów kluczowych: UNION (suma), INTERSECT (przecięcie) i EXCEPT (różnica). (SELECT nazwisko, miasto FROM Osoby) INTERSECT (SELECT nazwisko, miasto FROM Studenci)

Grupowanie Grupowanie polega na łączeniu ze sobą krotek wynikowych z instrukcji SELECT w grupy wierszy, w których wskazane we frazie GROUP BY kolumny mają tą samą wartośc. Następnie każda gupa redukowana jest do jednego wiersza, w którym występują kolumny z frazy GROUP BY oraz ewentualnie wyniki funkcji agregujących. Na koniec eliminowane są grupy nie spełniające warunku HAVING. GROUP BY <nazwa kolumny> [<nazwa kolumny>] [HAVING <warunek>]

Grupowanie cd. Funkcje agregujące działają dla każdej grupy osobno. Każda kolumna występująca w frazie GROUP BY musi wystąpić w klauzuli SELECT i na odwrót. W warunku HAVING może wystąpić funkcja agregująca

Kolejność klauzul Generalnie w zapytaniach SQL może występować sześć klauzul : SELECT, FROM, WHERE, GRUP BY, HAVING, ORDER BY. Tylko dwie pierwsze klauzule są potrzebne do poprawnego zbudowania zapytania. Jeśli w zapytaniu występują pozostałe klauzule to muszą one być w podanej wyżej kolejności.