Podyplomowe Studium Programowania i Baz Danych

Podobne dokumenty
Podyplomowe Studium Programowania i Baz Danych

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

Język SQL, zajęcia nr 1

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

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

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Bazy danych. Dr inż. Paweł Kasprowski

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

Bazy danych. Polecenia SQL

Relacyjne bazy danych. Podstawy SQL

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Projektowanie systemów baz danych

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

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

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

Relacyjne bazy danych. Podstawy SQL

Bazy Danych i Usługi Sieciowe

Bazy danych i usługi sieciowe

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

Wykład 05 Bazy danych

Bazy danych 7. SQL podstawy

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

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

Wykład 4. SQL praca z tabelami 1

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

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

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

SIECI KOMPUTEROWE I BAZY DANYCH

Instalacja MySQL.

Wykład 5. SQL praca z tabelami 2

Wykład 5: PHP: praca z bazą danych MySQL

Autor: Joanna Karwowska

Administracja bazami danych

CREATE USER

Administracja bazami danych. dr inż. Grzegorz Michalski

Bazy danych 5. Samozłaczenie SQL podstawy

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Dr Michał Tanaś(

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

PHP: bazy danych, SQL, AJAX i JSON

Przestrzenne bazy danych Podstawy języka SQL

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

Baza danych. Modele danych

Wykład 6: PHP: praca z bazą danych MySQL, cz.2

Podstawowe informacje o bazach danych. Technologie Informacyjne

NARZĘDZIA WIZUALIZACJI

Systemy GIS Tworzenie zapytań w bazach danych

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Wykład 6. SQL praca z tabelami 3

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

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Bazy danych - wykład wstępny

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

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

Wykład 2. SQL 1 Structured Query Lenguage

SIECI KOMPUTEROWE I BAZY DANYCH

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

Instytut Teleinformatyki

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

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

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

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

Komunikacja z bazą danych psql

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

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

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

Systemy internetowe. Wykład 4 mysql. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Internetowe bazy danych

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

Wykład 8. SQL praca z tabelami 5

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

2. Podstawy języka SQL

Oracle11g: Wprowadzenie do SQL

NARZĘDZIA WIZUALIZACJI

Wprowadzenie do baz danych

Po instalacji serwera MYSQL dostępne jest konto o nazwie root. Domyślnie nie ma ono przypisanego hasła, aczkolwiek podczas procesu konfiguracji jest

Bazy danych - Materiały do laboratoriów VIII

Internetowe bazy danych

Kurs. Podstawy MySQL

WPROWADZENIE DO BAZ DANYCH

Bazy danych. dr Radosław Matusik. radmat

Widok Connections po utworzeniu połączenia. Obszar roboczy

Wdrożenie modułu płatności eservice. dla systemu Magento

Paweł Cieśla. Dokumentacja projektu

Typy tabel serwera MySQL

Zarządzanie systemami informatycznymi. Zarządzanie internetową bazą danych MySQL

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Internetowe bazy danych

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Laboratorium nr 1. Temat: Wprowadzenie do MySQL-a

Wykład 2. Relacyjny model danych

Bazy danych Ćwiczenia projektowe

15. Funkcje i procedury składowane PL/SQL

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

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

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Transkrypt:

Podyplomowe Studium Programowania i Baz Danych Wybrany system baz danych MySQL 15 godz. wykładu / 30 godz. laboratorium dr inż. Paweł Syty, 413GB, pawel.syty@pg.edu.pl, http://sylas.info Literatura P. DuBois, MySQL. Vademecum profesjonalisty. Wydanie V. Helion, 2014 M. Stucky, MySQL. Budowanie interfejsów użytkownika. Vademecum profesjonalisty. Helion, 2003 R.J. Yarger, G. Reese, T. King, MySQL i msql. O'REILLY, 2001 M. Zandstra, PHP. Obiekty, wzorce, narzędzia. Wydanie IV. Helion, 2014 Materiały dydaktyczne http://students.sylas.info 1

Zakres materiału Podstawowe definicje i terminologia. Rodzaje systemów baz danych. Podstawowe systemy bazy danych. Instalacja bazy MySQL. Administracja bazą danych. Projektowanie baz danych. Podstawowa praca z bazami. Operatory. Relacje między tablicami. Transakcje i blokowanie. Backup bazy. Dostęp do bazy z różnych języków programowania (C++, Java, PHP). Specyficzne znaki narodowe. Język PHP, podstawy języka, połączenie z bazą danych MySQL (MariaDB) i SQLite, prosta strona WWW przechowująca informacje w bazie danych, wyszukiwarka informacji. Java + Android + SQLite, prosta aplikacja (o ile wystarczy czasu). 2

Bazy danych Uporządkowany zbiór danych, pozwalający na efektywne przechowywanie, wyszukiwanie, sortowanie oraz pozyskiwanie informacji. Relacyjna baza danych Baza danych oparta na relacjach. Relacja (tablica, tabela) Podzbiór iloczynu kartezjańskiego dwóch wybranych zbiorów, reprezentujących dopuszczalne wartości. W bazach danych relacja przedstawiana jest w postaci tabeli. Relacja jest zbiorem krotek posiadających taką samą strukturę, lecz różne wartości. Krotka Każda krotka odpowiada jednemu wierszowi tablicy i posiada co najmniej jeden atrybut odpowiadający pojedynczej kolumnie tablicy. 3

Właściwości tabeli Tabela (relacja) jest tabelarycznym zbiorem danych, podobnie jak w arkuszu kalkulacyjnym. Przykład: tabela Customers wiersze (krotki, rekordy, obserwacje) są unikalne kolejność wierszy nie ma znaczenia, są rozróżnialne przez tzw. klucz główny każdy wiersz zawiera cały zestaw indywidualnych wartości, które odpowiadają poszczególnym kolumnom tabeli kolumny (atrybuty, pola, zmienne) są również unikalne 4

każdej kolumnie przyporządkowana jest niepowtarzalna nazwa oraz pewien fragment danych kolejność kolumn nie ma znaczenia kolumny maja atomowe wartości (nie są dalej dzielone) typ danych określonej wartości musi być zgodny z typem danych kolumny, w której znajduje się ta wartość Klucze Musimy dysponować sposobem, który umożliwiłby jednoznaczna identyfikacje każdego rekordu. W przykładzie, dane osobowe niezbyt dobrze się do tego celu nadają, ponieważ wielokrotnie spotykamy osoby o tych samych nazwiskach i imionach. W naszym przypadku problem ten został rozwiązany dzięki przypisaniu każdemu klientowi niepowtarzalnego identyfikatora CustomerID. 5

Takie numery jednoznacznie identyfikujące każdy wiersz tabeli, upraszczają proces zarówno przechowywania, jak i wyszukiwania danych w bazie. Kolumna, która zawiera dane jednoznacznie identyfikujące wiersze tabeli, określana jest mianem klucza lub klucza głównego (primary key). Klucz może się składać z kilku kolumn. Zazwyczaj bazy danych składają się z kilku tabel, które powiązane są ze sobą za pomocą kluczy. Układ tabel to tzw. schemat (baza danych). Kolejna tabela (Orders): CustomerID klucz obcy (foreign key) w tabeli Orders 6

MySQL (wymowa: maj-es-kju-el) https://www.mysql.com/ Jeden z najpopularniejszych systemów bazodanowych. Bardziej formalnie: szybki i solidny systemem zarzadzania relacyjnymi bazami danych (Relational Database Management System RDBMS). MySQL został oficjalnie opublikowany w roku 1996. Stworzony został przez szwedzką firmę MySQL AB, później sprzedany firmie Sun, która z kolei została przejęta przez Oracle. Jest dostępny na licencji GPL (dostępne źródła systemu), lecz jeśli jest to konieczne, można zakupić jego wersje komercyjną. Serwer MySQL steruje dostępem do danych, udostępnia je równocześnie dla wielu użytkowników oraz zapewnia możliwość jak najszybszego z nich korzystania. 7

Serwer steruje uwierzytelnianiem użytkowników, które pozwala operować na danych jedynie osobom upoważnionym. Korzysta ze standardu języka SQL, dzięki któremu możliwe jest zadawanie zapytań do bazy danych. SQL jest najczęściej używanym, ustandaryzowanym językiem dostępu do bazy danych. Doskonale nadaje się do współpracy z wieloma popularnymi językami programowania. Często wykorzystuje się ją do budowania dynamicznych stron internetowych w połączeniu z językiem np. PHP. 8

Instalacja https://dev.mysql.com/downloads/mysql/ MySQL jest dostępny dla: Windows Linux Mac OS X FreeBSD Dostępny jest również kod źródłowy. Uwaga! Ze względu na przejęcie rozwoju MySQL-a przez Oracle i niepewną przyszłość jego licencji, powstała alternatywa na wolnej licencji, całkowicie zgodna z MySQL: MariaDB. https://mariadb.org/ 9

Logowanie do bazy danych shell> mysql -u login -h nazwa_hosta p Na przykład, gdy nie ma jeszcze innych użytkowników i na hoście lokalnym: shell> mysql -u root (logowanie bez hasła) Po zalogowaniu przechodzimy to tzw. trybu interaktywnego MySQL, w którym możemy wydawać polecenia SQL. UWAGA! Wyrażenie shell> oznacza umowny znak zachęty systemu operacyjnego działającego w trybie linii komend w Windows w pracowniach komputerowych może to być np. C:\users\student lub #. Jeżeli przed daną komendą nie ma shell>, to oznacza że należy ją wykonywać w trybie interaktywnym MySQL (znak zachęty będzie wyglądał mysql> lub mariadb> ). exit opuszczenie trybu interaktywnego i powrót do linii komend systemu 10

Przykładowe, podstawowe operacje w trybie interaktywnym: Utworzenie nowego użytkownika: CREATE USER 'user'@'host' IDENTIFIED BY 'password'; Zmiana hasła użytkownika (można też inaczej patrz następny slajd): SET PASSWORD FOR user = PASSWORD('new_password'); lub (drugi wariant od wersji MySQL 5.7.6) ALTER USER user IDENTIFIED BY 'new_password'; Przykłady: CREATE USER 'ktos'@'%' IDENTIFIED BY 'haslo'; SET PASSWORD FOR root = PASSWORD('mojetajnehaslo'); 11

Plik konfiguracyjny MySQL /etc/mysql/my.cnf (Linux) mysql/bin/my.ini (Windows) Fizyczne położenie plików z danymi /var/lib/mysql (Linux) mysql/data (Windows) Program zarządzający mysqladmin shell> mysqladmin variables wypisanie ustawień systemu shell> mysqladmin -u user [-p] password new_password ustawienie hasła new_password dla istniejącego użytkownika user. Więcej poleceń administracyjnych kolejne wykłady 12

Kolejne przykłady shell> mysql nazwa_bazy -u login p logowanie do trybu interaktywnego wraz z wyborem bazy W trybie interaktywnym: SELECT VERSION(); wersja MySQL SELECT USER(); bieżący użytkownik SELECT CURRENT_TIME(); bieżący czas SELECT CURRENT_DATE(); bieżąca data EXIT opuszczenie systemu Polecenia MySQL nie są czułe na wielkość liter, ale nazwy i dane tekstowe oczywiście tak (w zasadzie nazwy są uzależnione od systemu plików w systemie operacyjnym) 13

Przydatne narzędzia MySQL Workbench Graficzne środowisko do projektowania https://www.mysql.com/products/workbench/ phpmyadmin Środowisko do zarządzania bazami MySQL z poziomu przeglądarki WWW, przez sieć https://www.phpmyadmin.net/ 14

XAMPP Pakiet serwera WWW, zawierający Apache (serwer WWW), MariaDB (wcześniejsze wersje zawierały MySQL), PHP (język programowania) i kilka innych narzędzi https://www.apachefriends.org/pl/index.html Program XAMPP jest przykładem zestawu oprogramowania typu LAMP: Linux (choć niekoniecznie) Apache MySQL (MariaDB) PHP (Perl, Python) LAMP jest łatwym w konfiguracji zestawem startowym do tworzenia dynamicznych stron WWW. 15

Podstawy języka SQL Lista istniejących baz danych Składnia SHOW DATABASES; Przełączenie się na daną bazę danych Składnia USE <nazwa-bazy-danych>; Przykład USE MOJA_BAZA; 16

Tworzenie nowej bazy danych Składnia CREATE <nazwa-bazy-danych> DEFAULT CHARACTER SET <zestaw-znaków> DEFAULT COLLATE <sortowanie>; Przykład CREATE Forum DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_polish_ci; 17

Najważniejsze typy danych INT liczba całkowita, odpowiednik long w C++ BIGINT liczba całkowita duża, często jest kluczem głównym FLOAT liczba zmiennoprzecinkowa DECIMAL(n,p) liczba zmiennoprzecinkowa o długości n i zawierająca p cyfr po przecinku DATE data TIME czas TIMESTAMP data i czas VARCHAR(n) ciąg znaków o zmiennej długości, max n znaków BLOB dane binarne 18

Atrybuty danych NOT NULL kolumna nie może być pusta, wymagane jest podanie wartości (za wyjątkiem kolumny, dla której podano DEFAULT lub AUTO_INCREMENT) DEFAULT wartość domyślna wartość AUTO_INCREMENT automatyczna inkrementacja (zwykle dla kluczy głównych) PRIMARY KEY klucz główny UNIQUE nie są dopuszczalne duplikaty wartości 19

Dyrektywy ENGINE = <nazwa-silnika> Najczęściej wykorzystuje się silniki: - InnoDB zaawansowane możliwości blokowania/transakcji; do niedawna nie pozwalał jednak na przeszukiwanie pełnotekstowe; jest domyślny silnik w najnowszych wersjach MySQL - MyISAM szybszy, ale nie obsługuje transakcji, do pewnego momentu był to domyślny silnik w MySQL. W przyszłych wersjach MySQL zostanie zmarginalizowany. 20

Tworzenie tabel Składnia CREATE TABLE <nazwa-tabeli> ( <nazwa-kolumny> <typ> [atrybuty] [, ] ) [atrybuty dyrektywy]; Przykład CREATE TABLE Users ( userid BIGINT AUTO_INCREMENT PRIMARY KEY, login VARCHAR(20) UNIQUE NOT NULL ) ENGINE = InnoDB; 21

Opis struktury tabeli DESCRIBE <nazwa-tabeli>; Przykład DESCRIBE Users; 22

Usuwanie tabel i baz danych Składnia DROP TABLE <nazwa-tabeli>; DROP <nazwa-bazy-danych>; Przykład DROP TABLE Users; DROP Forum; 23

Wprowadzanie danych Składnia INSERT INTO <nazwa-tabeli> VALUES (wartość, wartość, ); INSERT INTO <tabela> (kolumna, kolumna, ) VALUES (wartość, wartość, ); Przykład INSERT INTO Users (login, passwd) VALUES ('root', 'jakieshaslo'); 24

Pobieranie danych jedna tabela Składnia SELECT <co?> FROM <tabela> [ WHERE <warunki> ]; Do określania warunków można użyć: - operatorów relacji (=, <>, >, >=, <, <=) - operatora IS NULL - operatora LIKE (w rodzaju: LIKE '<znaki>%') Przykład SELECT * FROM Users WHERE login LIKE 'r%'; SELECT passwd FROM Users WHERE login='root'; 25

Łączenie wyrażeń warunkowych Składnia SELECT <co?> FROM <tabela> [ WHERE <warunki> ]; Wyrażenia warunkowe można łączyć używając operatorów - AND koniunkcja - OR alternatywa Przykład SELECT * FROM Posts WHERE author='ktostam' AND thread=5; 26

Określanie zbioru oraz zakresu wartości w warunkach Składnia SELECT <co?> FROM <tabela> [ WHERE <warunki> ]; W wyrażeniach warunkowych można stosować operatory: - IN <zbiór-wartości> - BETWEEN <wartość> AND <wartość> Przykład SELECT * FROM Users WHERE userid IN (1, 3, 5); SELECT * FROM Posts WHERE date BETWEEN '2009-01-01' AND NOW(); 27

Pobieranie danych więcej tabel Składnia SELECT <co?> FROM <tabela> [, <tabela>, ] [ WHERE <warunki> ]; Domyślnie tworzony jest iloczyn kartezjański tabel, dlatego warunki trzeba podać Przykład SELECT login, date, msg FROM Users, Posts WHERE Users.userid = Posts.userid; 28

Pobieranie danych użycie dyrektyw Składnia SELECT <co?> FROM <tabela> [ WHERE <warunki> ] [ dyrektywy ]; - ORDER BY <kolumna> [ASC DESC] [, <kolumna>, ] - LIMIT n, m wiersze od n do m (numeracja od zera!) Przykład SELECT login, date, msg FROM Users, Posts WHERE Users.userid = Posts.userid ORDER BY date DESC, login ASC LIMIT 0, 20; 29

Modyfikacja danych Składnia UPDATE <tabela> SET <kolumna> = <wartość> [, <kol>=<wart>] [ WHERE <warunki> ]; Przykład UPDATE Users SET passwd = 'mojetajnehaslo' WHERE login = 'root'; 30

Usuwanie danych Składnia DELETE FROM <tabela> [ WHERE <warunki> ]; Do określania warunków można użyć: - operatorów relacji (=, <>, >, >=, <, <=) - operatora LIKE (w rodzaju: LIKE '<znaki>%') Przykład DELETE FROM Users WHERE login = 'ktostam'; DELETE FROM Posts WHERE msg LIKE '%costam%'; DELETE FROM Posts; (Usuwa wszystkie rekordy!) 31

Inne Logowanie komend do pliku: TEE nazwapliku; Wykonanie komend z pliku: SOURCE nazwapliku; (albo shell> mysql < nazwapliku) 32