MySQL wykład 3. autor:anna Sasak-Okoń 18.09.2010



Podobne dokumenty
Wykład 05 Bazy danych

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

Relacyjne bazy danych. Podstawy SQL

Wykład 5. SQL praca z tabelami 2

Język SQL, zajęcia nr 1

SQL (ang. Structured Query Language)

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

Relacyjne bazy danych. Podstawy SQL

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

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

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

Przestrzenne bazy danych Podstawy języka SQL

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

Systemy GIS Tworzenie zapytań w bazach danych

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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

Wykład 6. SQL praca z tabelami 3

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

Przykładowa baza danych BIBLIOTEKA

Język SQL, zajęcia nr 2

Bazy danych 7. SQL podstawy

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

Bazy danych. Polecenia SQL

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

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Wprowadzenie do baz danych

Paweł Rajba

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

Grupowanie i funkcje agregujące

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

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

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

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

Dr Michał Tanaś(

Ćwiczenie zapytań języka bazy danych PostgreSQL

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

Autor: Joanna Karwowska

Autor: Joanna Karwowska

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

Bazy danych. Dr inż. Paweł Kasprowski

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

Wykład 8. SQL praca z tabelami 5

SIECI KOMPUTEROWE I BAZY DANYCH

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

Widok Connections po utworzeniu połączenia. Obszar roboczy

Autor: Joanna Karwowska

TEST E.14 BAZY DANYCH

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

Bazy danych - wykład wstępny

Wprowadzenie do języka SQL

Zadania z SQLa (MS SQL Server)

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

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

Kurs. Podstawy MySQL

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

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

Podstawowe zapytania SELECT (na jednej tabeli)

Wykład 4. SQL praca z tabelami 1

Technologie baz danych

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

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

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

SQL Structured Query Language

Autor: Joanna Karwowska

Bazy danych 5. Samozłaczenie SQL podstawy

Fizyczna struktura bazy danych w SQL Serwerze

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

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

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

Laboratorium Bazy danych SQL 2

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

Podstawy języka SQL cz. 2

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

1. Tworzenie tabeli. 2. Umieszczanie danych w tabeli

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

WPROWADZENIE DO BAZ DANYCH

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

Język SQL. Rozdział 2. Proste zapytania

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

SIECI KOMPUTEROWE I BAZY DANYCH

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

Bazy danych. dr Radosław Matusik. radmat

Współczesne systemy baz danych

SQL praca z tabelami 4. Wykład 7

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

Optymalizacja poleceń SQL Metody dostępu do danych

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

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

ACESS- zadania z wykorzystaniem poleceń SQL

Struktura drzewa w MySQL. Michał Tyszczenko

korzyści finansowe przewaga pomysłu nad kapitałem tworzenie nowych branż tworzenie mechanizmów pochodnych (np. serwis snip).

Internetowe bazy danych

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

Współczesne systemy baz danych

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

Transkrypt:

MySQL wykład autor:anna Sasak-Okoń 8.09.00

Literatura SQL Praktyczny kurs. D.Mendrala, M.Szeliga PHP i MySQL Księga przykładów, E.Quigley, M.Gargenta http://www.phpmyadmin.net/home_page/ http://www.mysql.com/

Relacyjny model baz danych Dane przechowywane są w wielu odrębnych, ale powiązanych ze sobą tabelach

Tabele jako zbiory danych Podstawowym obiektem bazy danych jest tabela(relacja) dwuwymiarowa konstrukcja zbudowana z pionowych kolumn i poziomych wierszy (rekordów, krotek), na przecięciu których znajdują się komórki Id Imie Nazwisko Miasto Email Wiek Anna Guzik Lublin anna@wp.pl Karol Wrona Zamość karol@onet.pl 45

KLUCZ GŁÓWNY/PODSTAWOWY Każda tabela powinna posiadać klucz podstawowy, który jest unikalny w celu identyfikacji rekordu w bazie danych Klucz musi być unikalny, nigdy nie może zostać zmieniony, w danej tabeli może wystąpić tylko jeden raz i zwykle jest rodzaju liczbowego PRIMARY KEY atrybut ustwiający klucz główny AUTO_INCREMENT atrybut automatycznej numeracji dla wartości pola klucza głównego

KLUCZ OBCY Operacja dopasowywania wierszy jednej tabeli do wierszy drugiej tabeli za pomocą jednej lub więcej kolumn nosi nazwę złączenia Tabele powinny być powiązane ze sobą za pomocą kluczy. Klucz podstawowy w jednej tabeli zawiera wartości unikalne. Kolumna drugiej tabeli dopasowana wartościami do tego klucza będzie nosiła nazwę klucza obcego Dzięki połączonym kluczom można łączyć dane między tabelami bez konieczności powtarzania tych samych danych w każdej tabeli

Przykład (..n) AUTORZY #IdAutor Imie Nazwisko Adam Mickiewicz Zenon Iksiński KSIAZKI #IdKsiazka *IdAutor Tytul RokWydania Pan Tadeusz 009 Zachód 00 Maki 980 4 Wieś 999

Przykład (..n) #IdKategoria *IdRodzic Nazwa 0 0 Książki DVD Romanse Książki Romanse DVD Sensacja Horror 4 Sensacja 5 Horror

Przykład (n..n) AUTORZY #IdAutor Imie Nazwisko Adam Anna Zenon KSIAZKI #IdKsiazka Tytul Mickiewicz Maj Iksiński RokWydania AutorKsiazka IdKsiazka IdAutor 4 Pan Tadeusz Zachód Maki Wieś 009 00 980 999

INDEX Organizuje dane w sposób umożliwiający ich wydajne odczytywanie i modyfikowanie, nawet wielokrotnie skracając czas takich operacji Budowa i działanie indeksu zależy od konkretnego serwera bazodanowego Zaleta: ograniczenie odczytywanych z dysków danych Zaleta: uzyskanie posortowanych danych Wada: muszą być na bieżąco aktualizowane Wada: zajmują dodatkowe miejsce Wniosek: indeksuj te kolumny które zawierają mało powtarzających się danych, występują w kluzulach WHERE, klucze obce, są uzywane do sortowania lub grupowania wierszy Uwaga: klucze główne są automatycznie indeksowane

Zasady Wybierz odpowiedni rodzaj pól dla tabeli Kolumny powinny posiadać nazwy zwięzłe i sensowne oraz być unikalne w tabeli Przechowuj tylko jedną wartość w każdej kolumnie rekordu Dla każdej grupy powiązanych elementów tworzymy oddzielne tabele oraz nadajemy każdemu rekordowi unikalną kolumnę zwaną kluczem podstawowym, oraz ewentualne połączenia zwane kluczami obcymi

IdKsiazka Autor Adam Mickiewicz Anna Maj Tytul Pan Tadeusz, Dziady, Konrad Wallenrod Zachód #IdAutor AUTORZY Imie Adam Anna Nazwisko Mickiewicz Maj #IdKsiazka *IdAutor KSIAZKI Tytul RokWydania Pan Tadeusz 009 Dziady 00 Konrad Wallenrod 980 4 Zachód 999

Wprowadzenie do języka SQL

Structured Query Language Zaprojektowany tak aby przypominać język angielski 970 E.F.Codd publikuje artykuł stanowiący podstawy teorii relacyjnych baz danych oraz języka do komunikacji z nimi (SEQUEL)

SELECT Wykorzystywane do pobierania danych z tabeli bazy danych na podstawie podanych kryteriów SELECT nazwy_kolumn FROM tabela SELECT * FROM tabela

przykład IdProdukt IdKategoria Nazwa Cena Ilosc Zeszyt,50 50 Ołówek 0,90 90 Długopis 4,50 4 5 Linijka 0,0 SELECT Nazwa,cena FROM produkt;

LIMIT Ogranicza liczbę wyników zapytania do rządanego zakresu Select * from tabela LIMIT offset, ile Select * from tabela LIMIT ile

IdProdukt IdKategoria Nazwa Cena Ilosc Zeszyt,50 50 Ołówek 0,90 90 Długopis 4,50 4 5 Linijka 0,0 SELECT Nazwa,cena FROM produkt LIMIT,; SELECT IdProdukt FROM produkt LIMIT ;

DISTINCT Służy wyeliminowaniu powtarzających się wierszy (!!całych wierszy a nie pojedynczych kolumn!!) W danym zapytaniu może wystąpić tylko raz SELECT DISTINCT nazwy_kolumn FROM tabela

IdProdukt IdKategoria Nazwa Cena Ilosc Zeszyt,50 50 Ołówek 0,90 90 Ołówek 0,90 45 4 Długopis 4,50 5 5 Linijka 0,0 SELECT DISTINCT Nazwa,cena FROM produkt;

WHERE Kluzula WHERE służy do zawężania zbioru wyników poprzez nałożenie na nie warunku/warunków logicznych Warunek może być bardzo rozbudowany SELECT nazwy_kolumn FROM tabela WHERE warunek_logiczny

OPERATORY SQL Operator = <> (różny) >, <, <=, >= IS NULL, IS NOT NULL BETWEEN LIKE, NOT LIKE NOT, OR, AND, XOR przykład Where kraj= Polska Where kraj<> Niemcy Where pensja>500 Where urodziny IS NOT NULL Where nazwisko BETWEEN Kowalski AND Nowak Where nazwisko LIKE No% Where telefon like 40_40_40_ Where wiek> AND urodziny IS NOT NULL

IdProdukt IdKategoria Nazwa Cena Ilosc Zeszyt,50 50 Ołówek 0,90 90 Ołówek automatyczny,90 45 4 Długopis 4,50 5 5 Linijka 0,0 SELECT Nazwa FROM produkt where cena>,00; SELECT IdKategoria FROM produkt WHERE cena<,00 AND IdKategoria BETWEEN AND ; SELECT nazwa FROM produkt WHERE nazwa LIKE Ołówek%

ORDER BY Wyświetlenie wyników w określonej kolejności: rosnącej ASC (domyślnie), lub malejącej DESC Select imie, nazwisko from pracownicy ORDER BY nazwisko Select imie, nazwisko from pracownicy ORDER BY nazwisko ASC Select imie, nazwisko from pracownicy ORDER BY DESC

Kolejność klauzul SELECT nazwy_kolumn FROM tabela WHERE warunki GROUP BY kolumna ORDER BY kolumna LIMIT start, ile

INSERT Używane podczas wstawiania nowych rekordów do bazy danych INSERT INTO tabela (kol, kol, ) VALUES (wart, wart, ) INSERT INTO tabela VALUES (wart, wart, )

przykład IdProdukt IdKategoria Nazwa Cena Ilosc Zeszyt,50 50 Ołówek 0,90 90 Ołówek 0,90 45 4 Długopis 4,50 5 5 Linijka 0,0 INSERT INTO produkty (IdKategoria, Nazwa, Ilosc, Cena) VALUES (, Długopis,,4.50) INSERT INTO tabela VALUES (, Długopis,4.50,);

UPDATE Służy do modyfikowania danych w tabeli UPDATE tabela SET kol=wart, kol=wart, WHERE warunek_logiczny

przykład IdProdukt IdKategoria Nazwa Cena Ilosc Zeszyt,50+ 50 Kartka 0,90+ 90 Ołówek,50 00 4 Długopis 4,50 5 5 Linijka 0,0 UPDATE produkty SET cena=cena+.0 WHERE idkategoria=; UPDATE produkty SET Ilosc=00, cena=,50 WHERE nazwa LIKE Ołówek%

DELETE Używane do usuwania rekordów z tabeli. Jego wartością zwrotną jest liczba usuniętych rekordów DELETE FROM tabela WHERE warunek_logiczny

IdProdukt IdKategoria Nazwa Cena Ilosc Zeszyt,50 50 Ołówek 0,90 90 Ołówek 0,90 45 4 Długopis 4,50 5 5 Linijka 0,0 DELETE FROM produkty where ilosc<50;

GROUP BY Umożliwia podział wierszy na logiczne grupy Wiersz klasyfikowany jest do danej grupy na podstawie wartości pewnej kolumny, najczęściej innej niż ta dla której wywoływana jest funkcja grupująca Np. aby obliczyćśrednią cenę produktu w danej kategorii, należy pogrupować wyniki według identyfikatora kategorii, a funkcję AVG nałożyć na cenę produktu SELECT kolumna, funkcja_agregująca(kolumna) FROM tabela WHERE warunek GROUP BY kolumna; Uwaga: w klauzuli select nie mogą wystąpić kolumny luzem których nie ma w klauzuli GROUP BY, ale w GROUP BY mogą wystąpić kolumny których nie ma w klauzuli SELECT

FUNKCJE LICZBOWE - AGREGUJĄCE AVG(kol) średnia z wartości danej kolumny COUNT(*)- liczba rekordów będących wynikiem zapytania MIN(kol), MAX(kol) minimalna i maksymalna wartość w kolumnie SUM(kol)- suma wszystkich wartości w kolumnie Uwaga: funkcji agregujących nie wolno uzywać w klauzuli WHERE

IdProdukt IdKategoria Nazwa Cena Ilosc Zeszyt,50 50 Ołówek 0,90 90 Ołówek 0,90 45 4 Długopis 4,50 5 5 Linijka 0,0 SELECT AVG(cena) FROM produkty GROUP BY IdKategoria; SELECT nazwa, sum(ilosc) FROM produkty GROUP BY Nazwa;

FUNKCJE DATY I CZASU NOW() bieżąca data i czas CURDATE() bieżąca data CURTIME() DAYOFYEAR(data) DAYOFMONTH(data) DAYOFWEEK(data) MONTHNAME(data) DAYNAME(data) YEAR(data)

ZŁĄCZENIA NATURALNE Kolumna klucza obcego przechowuje duplikat klucza podstawowego innej tabeli, dzięki czemu można połączyć dane przechowywane w obu tych tabelach Działanie operatora JOIN ON polega na wygenerowaniu wszystkich możliwych kombinacji wierszy łączonych tabel, a następnie usunięciu z tak otrzymanego zbioru wierszy nie spełniających warunku łączenia SELECT kolumny FROM tabela JOIN tabela ON tabela.klucz_glowny=tabela.klucz_obcy WHERE dodatkowe_warunki

AUTORZY #IdAutor Imie Adam Zenon Nazwisko Mickiewicz Iksiński SELECT nazwisko, tytul FROM autorzy A JOIN ksiazki K ON A.IdAutor=K.IdAutor WHERE A.IdAutor= #IdKsiazka KSIAZKI *IdAutor Tytul Pan Tadeusz RokWydania 009 Iksiński Ikśiński Iksiński Zachód Maki Wieś Zachód 00 Maki 980 4 Wieś 999

LEFT JOIN ON RIGHT JOIN ON?

PHPMyAdmin http://localhost/phpmyadmin

phpmyadmin Narzędzie z graficznym interfacem użytkownika, napisane w php, służy do administrowania bazą danych MySQL poprzez Internet Używane do tworzenia i usuwania baz danych, operacji na tabelach i polach, wykonywania poleceń SQL, zarządzania kluczami pól, zarządzania prawami dostępu oraz exportem danych do różnych formatów

Logowanie do serwera Pierwsze konto należy do użytkownika root, który ma uprawnienia do wszystkiego co w bazie można zrobić Po zalogowaniu jako root utwórz nowego użytkownika i nadaj mu prawa do odpowiedniej bazy danych Dane wszystkich użytkowników i ich prawa przechowywane są w bazie mysql

ZAKŁADANIE UŻYTKOWNIKA

ZAKŁADANIE BAZY DANYCH

ZAKŁADANIE TABEL

TYPY DANYCH PÓL RODZAJ DANYCH INTEGER SMALLINT, TINYINT FLOAT(m,d) m-liczba cyfr d-liczba cyfr po przecinku VARCHAR(wielkość) TEXT, TINYTEXT DATE DATETIME TIMESTAMP OPIS Liczby całkowite (4B) lub bajtowa liczba całkowita Liczba rzeczywista (zmiennoprzecinkowa) Napis o maxymalnej zadanej długości (max 6555) Ciąg tekstowy o maksymalnej długości 6555(55) znaków Dane w postaci (rrrr-mm-dd) Dane w postaci (rrrr-mm-dd gg:mm:ss)(8b) Dane w postaci (rrrr-mm-dd gg:mm:ss)(4b) Przechowywane w czasie UTC (..970 00:00:00)