Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl



Podobne dokumenty
Bazy danych. Dr inż. Paweł Kasprowski

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

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

Projektowanie systemów baz danych

Język SQL, zajęcia nr 1

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

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

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

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

Wykład 05 Bazy danych

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

Systemy GIS Tworzenie zapytań w bazach danych

Paweł Rajba

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

Bazy danych 7. SQL podstawy

Wykład 5. SQL praca z tabelami 2

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

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

Relacyjne bazy danych. Podstawy SQL

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

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

Przestrzenne bazy danych Podstawy języka SQL

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

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

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

Relacyjne bazy danych. Podstawy SQL

Autor: Joanna Karwowska

Bazy danych i usługi sieciowe

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

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

Bazy danych 5. Samozłaczenie SQL podstawy

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

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

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

Podstawowe informacje o bazach danych. Technologie Informacyjne

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

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

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

Wykład 8. SQL praca z tabelami 5

Bazy danych. Polecenia SQL

SQL Structured Query Language

Tworzenie baz danych i tabel

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

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

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Wykład 4. SQL praca z tabelami 1

Aspekty aktywne baz danych

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

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

Widok Connections po utworzeniu połączenia. Obszar roboczy

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

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

Wykład 2. SQL 1 Structured Query Lenguage

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

Język SQL podstawy zapytań

BAZY DANYCH. Wykład 1: Wprowadzenie do baz danych. Marcin Czajkowski. Przygotowanie wykładu: Małgorzata Krętowska

Bazy danych - Materiały do laboratoriów VIII

SQL Structured Query Language

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

Wykład :45 BD-1 W_3

Bazy danych 4. SQL- podstawy

Bazy Danych i Usługi Sieciowe

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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

SQL - DDL. 1 Tabele systemowe. 2 Typy danych

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Wprowadzenie do języka SQL

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

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

Bazy danych i usługi sieciowe

Bazy danych 4. SQL podstawy. P. F. Góra

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

SIECI KOMPUTEROWE I BAZY DANYCH

Bazy danych Ćwiczenia projektowe

Bazy danych Ćwiczenia projektowe

Aplikacje bazodanowe. Laboratorium 1. Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, / 37

Wstęp do relacyjnych baz danych. Jan Bartoszek

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

Dr Michał Tanaś(

ACESS- zadania z wykorzystaniem poleceń SQL

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

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z

Instrukcja CREATE TABLE

WPROWADZENIE DO JĘZYKA SQL

Wykład 6. SQL praca z tabelami 3

Bazy danych 10. SQL Widoki

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

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

SIECI KOMPUTEROWE I BAZY DANYCH

BAZY DANYCH. CREATE TABLE dbo.wydzialy (ID INT, Akronim VARCHAR(4) NOT NULL, Wydzial VARCHAR(30) NOT NULL, CONSTRAINT Kluczyk PRIMARY KEY(ID) )

Podyplomowe Studium Programowania i Baz Danych

Język SQL. Rozdział 2. Proste zapytania

Komunikacja z bazą danych psql

1. Sprawdzenie ustawień konfiguracyjnych. Uruchomienie wiersza poleceń:..\ścieżka\bin>mysqladmin variables

Co to jest Baza Danych

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

SQL Structured Query Language

Transkrypt:

Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl

Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność dostępu do danych Projektowanie schematu bazy danych (ERD)

Literatura Jeffrey D. Ullman, J. Widom Podstawowy wykład z systemów baz danych WNT 2001 Ramez Elmasri, Shamkant B. Navathe Wprowadzenie do systemów baz danych Helion 2004 Marcin Szeliga ABC języka SQL Helion 2002

Sposób przechowywania danych Plik zawiera rekordy (dane pracowników) Rekord składa się z pól (pracownik Kowalski) Pole zawiera pojedynczą wartość (nazwisko, imie, data urodzenia) Pola mogą być różnych typów: tekstowe numeryczne daty i czasu

Nomenklatura Plik > tablica Rekord > wiersz Pole > kolumna

Przykład Pracownicy nazwisko imie adres dataur pensja

Dodanie nazwy zespołu Pracownicy nazwisko imie adres dataur pensja nazwa Problemy: redundancja danych problem ze zmianą nazwy zespołu zespół bez pracowników nie istnieje co jeśli chcemy przechować więcej informacji o zespołach?

Przykład Pracownicy nazwisko imie adres dataur pensja nazwa

Rozwiązanie druga tabela Pracownicy nazwisko imie adres dataur pensja Zespoły nazwa budynek telefon kierownik

Problem jak połączyć dwie tablice? Konieczna jest reguła mówiąca który wiersz "pasuje" do którego Każdy wiersz musi więc mieć identyfikator klucz Klucz to zbiór atrybutów unikalnych (różnych) dla każdego wiersza Możemy przechowywać pary kluczy z dwóch tablic w osobnej strukturze (model sieciowy)

Model relacyjny 1971 E.F. Codd laboratoria IBM Tylko dane brak innych struktur Nie ma specjalnych połączeń Połączenia wynikają z podobnych wartości atrybutów w różnych tabelach W przypadku związku 1-N wystarczy przechować klucz jednej tabeli w drugiej

Realizacja Dodajemy kolumnę nazwa zespołu do tablicy pracowników (czy można odwrotnie?) Co jeśli nazwa zespołu nie jest unikalna? Odpowiedź: należy w tablicy pracownicy umieścić klucz a więc zbiór kolumn zapewniający jednoznaczną identyfikację zespołu (np. nazwa, budynek, telefon) Jest to niewygodne znowu redundancja dlatego często tworzy się specjalną kolumnę kluczową (np. numer zespołu: idz)

Przykład Pracownicy nazwisko imie adres dataur pensja idz Zespoły idz nazwa budynek telefon kierownik

Przykład Pracownicy nazwisko imie adres dataur pensja idz Zespoły idz nazwa budynek telefon kierownik

Zalety rozwiązania Nie ma redundancji Łatwo znaleźć zespół w którym pracuje pracownik Łatwo znaleźć wszystkich pracowników zespołu Zmiana atrybutów zespołu (nie licząc idz!) jest bezproblemowa Baza składa się tylko z tablic żadnych dodatkowych struktur

Język SQL 1972 - Codd, model relacyjny 1974 - baza SYSTEM/R i język SEQUEL 1979 - Relational Software Inc. tworzy system Oracle 1986 - Ingres RDBMS język QUEL 1989 - standard ANSI SQL (SQL-89) 1992 - ANSI SQL-92 podstawowy standard stał się także standardem ISO 1999 - ANSI SQL-99 (6 części)

Język SQL Język deklaratywny składa się poleceń Elementy języka: DDL Data Definition Language CREATE, ALTER, DROP DML Data Manipulation Language INSERT, UPDATE, DELETE DQL Data Query Language SELECT DCL Data Control Language GRANT, REVOKE, DENY

Tworzenie tabeli CREATE TABLE <nazwa> (<kolumna> <typ> [<ograniczenia>] [,...]) Typy kolumn: - tekstowe - numeryczne - datowe Pomimo istnienia standardu istnieją różnice w dostępnych typach dla różnych serwerów

Najważniejsze typy danych Typy tekstowe CHAR(n) VARCHAR(n) Typy numeryczne INT, SMALLINT, BIGINT DECIMAL(m, n) FLOAT, DOUBLE Typy datowe DATE, DATETIME, TIME, INTERVAL Inne typy BIT, BYTE, BOOLEAN SERIAL, AUTOINCREMENT BLOB, TEXT

Rodzaje ograniczeń [ NOT ] NULL DEFAULT <wartość> UNIQUE CHECK (warunek) PRIMARY KEY FOREIGN KEY

Tworzenie tabeli CREATE TABLE prac ( idp int primary key, nazw varchar(20) not null, dataur date, pensja decimal(7,2) default 2000 );

Modyfikacja tabeli ALTER TABLE <nazwa> <opis_zmiany> Przykłady: ALTER TABLE prac ADD COLUMN idz INT ALTER TABLE prac MODIFY COLUMN nazw varchar(50) Składnia może się różnić dla różnych serwerów!

Usunięcie tabeli DROP TABLE <nazwa_tabeli> Usuwa tabelę ze wszystkimi danymi

Praca z danymi INSERT wstawienie wiersza/wierszy INSERT INTO <tabela>[(<kolumny>)] VALUES (<wartości>) UPDATE modyfikacja wiersza/wierszy UPDATE <tabela> SET <kolumna>=<wartość>[, <kolumna>=<wartość>...] WHERE <warunek> DELETE usunięcie wiersza/wierszy DELETE FROM <tabela> WHERE <warunek>

Wstawianie wierszy CREATE TABLE prac (idp int unique, nazw varchar(20) not null, dataur date, pensja decimal(7,2) default 2000 ); INSERT INTO prac VALUES(1,'Kowalski','1-1-1980',3000); INSERT INTO prac(idp,nazw) VALUES(1,'Nowak'); -- Błąd: idp nie jest unikalny! INSERT INTO prac(idp,nazw) VALUES(2,'Nowak'); -- OK: pola dataur=null, pensja=2000 INSERT INTO prac(idp,pensja) VALUES(3,5000); -- Błąd: nazw nie może być null! INSERT INTO prac(idp,nazw) <polecenie SELECT>

Modyfikacja wierszy UPDATE prac SET nazw='nowak' WHERE nazw='kowalski' -- Uwaga! Zmieni nazwiska WSZYSTKICH Kowalskich! UPDATE prac SET nazw='nowak' WHERE idp=8 UPDATE prac SET nazw='nowak, dataur='1-1-1975' WHERE pensja > 2000 Warunek WHERE nie jest obowiązkowy można zmodyfikować wszystkie wiersze. Można także używać wyrażeń: UPDATE prac SET pensja=pensja+100 -- globalna podwyżka! bardzo użyteczne

Usuwanie wierszy Usuń najlepiej zarabiających: DELETE FROM prac WHERE pensja>3000 Usuń najstarszych: DELETE FROM prac WHERE dataur<'1950' Usuń starych dobrze zarabiających: DELETE FROM prac WHERE dataur<'1950' AND pensja>3000 Warunek WHERE nie jest obowiązkowy DELETE FROM prac -- usuwa wszystkie rekordy z tablicy prac

Wyszukiwanie danych Najczęściej wykonywana operacja (wyrocznia!) Polecenie: SELECT Możliwości sporej rozbudowy tego polecenia Podstawowa składnia: SELECT <kolumny> FROM <tablice> WHERE <warunki>

Przykłady SELECT Podaj nazwiska i pensje pracowników zakładu nr 5 SELECT nazw,pensja FROM prac WHERE idz=5 -- wynik: tablica w dwóch kolumnach Podaj nazwisko pracownika nr 8 SELECT nazw FROM prac WHERE idp=8 -- wynik: jeden wiersz, jedna kolumna Zamiast listy kolumn można podać *, WHERE jest nieobowiązkowe: SELECT * FROM prac -- wynik: zawartość całej tablicy prac

Warunki Porównania: =,<>,<,>,>=,<= [NOT] BETWEEN a AND b [NOT] IN (<lista wartości>) [NOT] LIKE 'tekst' % - dowolny ciąg znaków _ - dowolny znak Warunki logiczne: AND, OR AND ma wyższy priorytet! Wyrażenia algebraiczne (pensja*2>1000)

Przykłady warunków select * from prac where idp between 2 and 5 select * from prac where nazw in ('Wolski','Niemczyk') select * from prac where nazw like 'Kro%' select * from prac where nazw like 'Kowalsk_' select * from prac where pensja/1000>2 select * from prac where nazw='wolski' OR nazwisko='niemczyk' select * from prac where nazw like 'A%' and pensja=1000 or pensja=3000

Złączenia w select Podaj nazwiska pracowników zespołu 'Oprogramowanie' Filtr na nazwę Zespoły idz nazwa kierownik Pracownicy idp nazw dataur idz wypisanie nazwisk Złączenie

Złączenia w select Podaj nazwiska pracowników zespołu 'Oprogramowanie' select nazwiska from prac join zesp on prac.idz = zesp.idz where nazwa= 'Oprogramowanie'

Złączenia w select Podaj nazwiska pracowników zespołu 'Oprogramowanie' select nazwiska from prac p join zesp z on p.idz = z.idz where nazwa= 'Oprogramowanie' warunek połączenia Jeśli nie ma warunku połączenia iloczyn kartezjański (każdy wiersz z każdym)

Dziękuję za uwagę Do zobaczenia... materiały dostępne pod adresem: www.kasprowski.pl