Tworzenie bazy danych – mySQL

Slides:



Advertisements
Podobne prezentacje
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Advertisements

Indeksy w bazie danych Oracle
Podział i zastosowanie
POWIAT MYŚLENICKI Tytuł Projektu: Poprawa płynności ruchu w centrum Myślenic poprzez przebudowę skrzyżowań dróg powiatowych K 1935 i K 1967na rondo.
SQL – Strukturalny język zapytań
Bazy danych II Instrukcja SELECT Piotr Górczyński 25/08/2001.
Liczby pierwsze.
BD-LAB4 Wojciech Pieprzyca
Domy Na Wodzie - metoda na wlasne M
Bazy danych 8. SQL podstawy P. F. Góra semestr letni 2004/05.
Język SQL ma ciekawe możliwości tworzenia zapytań
Komponenty bazy danych Baza danych Jest to uporządkowany zbiór powiązanych ze sobą danych charakterystycznych dla pewnej klasy obiektów lub zdarzeń,
MS Access 2003 Kwerendy Paweł Górczyński.
MS Access 2000 Kwerendy Piotr Górczyński 25/08/2001.
25/08/ Bazy danych II Piotr Górczyński MS Access – Action Query.
MS Access 2000 Tworzenie tabel Piotr Górczyński 2005.
Kwerendy, formularze, relacje, raporty i makra
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 7: Relacje i ograniczenia integralnościowe Język definiowania danych - DDL (Data Definition.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 2: Język bazy danych - SQL Proste zapytania.
Język definicji danych (Data Definition Language)
Język definicji danych (Data Definition Language)
Funkcje znakowe, liczbowe i obsługa dat Kolejny krok w poznaniu SQL-a.
SQL-owskie szlaki górskie
Funkcje znakowe ASCII(znak IN VARCHAR2) RETURN INTEGER
ASCII(znak IN VARCHAR2) RETURN INTEGER zwraca wartość numeryczną kod ascii znaku CHAR(n Integer)zwraca znak odpowiadający kodowi n CONCAT(tekst1, tekst2)zwraca.
SQL select kredytobiorca,bank, rodzaj, data_zawarcia, klasyfikacja,kwota, terminzapadalnosci-data_zawarcia iledni from tab_kredyt where (terminzapadalnosci-data_zawarcia)>1095.
BD-LAB6 Wojciech Pieprzyca
WYKONYWANIE ZAPYTAŃ Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka.
Język SQL – ciąg dalszy DML (Data Manipulation Language)
Język SQL (Structured Query Language) DDL (Data Definition Language)
Structured Query Language
PROJEKTOWANIE TABEL W PROGRAMIE: ACCESS
MS ACCESS Kwerendy.
SQL – zapytania posumowanie
SQL – Structured Query Language (3)
Ogólnopolski Konkurs Wiedzy Biblijnej Analiza wyników IV i V edycji Michał M. Stępień
SQL – podstawowe funkcje
Wyrażenia algebraiczne
Instrukcje: CREATE, INSERT, UPDATE, DELETE, DROP
SQL – Structured Query Language (1)
dr hab. Ryszard Walkowiak prof. nadzw.
MySQL bazy danych dla witryny
KOLEKTOR ZASOBNIK 2 ZASOBNIK 1 POMPA P2 POMPA P1 30°C Zasada działanie instalacji solarnej.
Andrzej Macioł Bazy danych – SQL – cz. 1. Andrzej Macioł Składowe SZBD Jądro SZBD realizuje podstawowe funkcje związane z przechowywaniem danych, kontrolą
SQL - Structured Query Language
1. Pomyśl sobie liczbę dwucyfrową (Na przykład: 62)
Analiza matury 2013 Opracowała Bernardeta Wójtowicz.
Wyprowadzanie informacji z bazy danych - kwerendy wybierające Marzena Nowakowska Katedra Informatyki Stosowanej, WZiMK, PŚk.
Komendy SQL do pracy z tabelami i bazami
EGZAMINU GIMNAZJALNEGO 2013
EcoCondens Kompakt BBK 7-22 E.
EcoCondens BBS 2,9-28 E.
User experience studio Użyteczna biblioteka Teraźniejszość i przyszłość informacji naukowej.
WYNIKI EGZAMINU MATURALNEGO W ZESPOLE SZKÓŁ TECHNICZNYCH
1 SBD, L.Banachowski Podstawy SQL - języka relacyjnych i obiektowo-relacyjnych baz danych (SQL2, SQL'1999, Oracle) Powtórzenie wyk ł adu 3.
Testogranie TESTOGRANIE Bogdana Berezy.
Jak Jaś parował skarpetki Andrzej Majkowski 1 informatyka +
1 Używanie alkoholu i narkotyków przez młodzież szkolną w województwie opolskim w 2007 r. Na podstawie badań przeprowadzonych przez PBS DGA (w pełni porównywalnych.
Autor: Damian Urbańczyk
Współrzędnościowe maszyny pomiarowe
Elementy geometryczne i relacje
Strategia pomiaru.
LO ŁobżenicaWojewództwoPowiat pilski 2011r.75,81%75,29%65,1% 2012r.92,98%80,19%72,26% 2013r.89,29%80,49%74,37% 2014r.76,47%69,89%63,58% ZDAWALNOŚĆ.
Komendy SQL do pracy z danymi
Wykład 3 Prowadzący: dr Paweł Drozda. Użytkownik bazy danych – osoba lub aplikacja, mająca dostęp do części danych zgromadzonych w bazie Uprawnienia –
TEMAT: ACCESS - KWERENDY.
Współpraca PHP i MySQL Wygodniejszym i wydajniejszym sposobem przechowywania i korzystania z danych zapisanych na serwerze jest współpraca z relacyjna.
S Q L
1 Definicja danych: Do utworzenia tabeli służy instrukcja CREATE TABLE, wymagająca podania nazwy tworzonej tabeli, nazwy każdej kolumny w tej tabeli, typu.
Widoki (views) - Perspektywy:
Zapis prezentacji:

Tworzenie bazy danych – mySQL Sposób utworzenia bazy danych w mySQL: uruchomienie programu: mysql utworzenie bazy: CREATE DATABASE nazwa; przełączenie się do bazy: USE nazwa; teraz można utworzyć tabele – utworzenie tabeli wymaga podania nazw pól (kolumn) oraz ich typów.

Operacje na bazach danych Tworzenie bazy danych: Usuwanie całej bazy: Wyświetlenie istniejących baz danych: Przełączenie się na inną bazę danych: CREATE DATABASE baza; DROP DATABASE baza; SHOW DATABASES; USE baza;

Tworzenie bazy danych – mySQL CREATE DATABASE SQL_w_3_tygodnie; Use SQL_w_3_tygodnie; DROP DATABASE ............;

Typy danych Typy danych mySQL – liczby całkowite: Dodatkowe atrybuty: TINYINT (1 bajt) SMALLINT (2 bajty) MEDIUMINT (3 bajty) INT (4 bajty) BIGINT (8 bajtów) Dodatkowe atrybuty: UNSIGNED – liczba bez znaku ZEROFILL – dopełnienie zerami (M) – wyświetlenie M cyfr

Typy danych Typy danych mySQL – liczby zmiennoprzecinkowe: FLOAT (n) – pojedyncza precyzja, n liczb DOUBLE (M,D) – podwójna precyzja DECIMAL (M,D) – liczba zapisywana jako tekst Dodatkowe atrybuty: UNSIGNED – liczba bez znaku ZEROFILL – dopełnienie zerami (M) – wyświetlenie M cyfr (M,D) – wyświetlenie M cyfr, D cyfr po przecinku

Typy danych Typy danych mySQL – data i czas: DATETIME – data + czas (2003-10-15 15:00:12) DATE – data (2003-10-15) TIME – czas (15:00:12) YEAR – rok (2003 lub 03) TIMESTAMP (n) – znacznik czasu (n – liczba znaków)

SQL – liczby i napisy Łańcuchy znaków: 'napis' lub "napis" użycie backslasha (\): 'napis \'03' Liczby całkowite: 1221 0 -32 Liczby zmiennoprzecinkowe: 294.42 -32032.6809e+10 Liczby szesnastkowe: x'4D7953514C' 0x5061756c Wartość pusta: NULL

Operacje na tabelach Tworzenie tabeli (przykład): Usuwanie tabeli: Wyświetlenie istniejących baz danych: Wyświetlenie struktury tabeli: CREATE TABLE tabela (id INT, nazwa VARCHAR(30)); DROP TABLE tabela; SHOW TABLES; DESCRIBE tabela;

Tworzenie tabeli MySQL CREATE TABLE czeki ( nr_czeku INT AUTO_INCREMENT, odbiorca VARCHAR(30), kwota float, uwagi char(30), PRIMARY KEY (nr_czeku)); Usuń tabele ?

Operacje na tabelach Zmiana nazwy: RENAME TABLE tabela TO nowa_tabela; Zmiana struktury tabeli – ALTER TABLE Dodanie kolumny: Usuwanie kolumny: RENAME TABLE tabela TO nowa_tabela; ALTER TABLE tabela ADD (opis TEXT); ALTER TABLE tabela DROP opis;

Operacje na tabelach Modyfikacja typu kolumny (ograniczenia typu!): Zmiana nazwy kolumny: Za pomocą ALTER TABLE możliwe jest również dodawanie i usuwanie atrybutów pól. ALTER TABLE tabela MODIFY opis VARCHAR(50); ALTER TABLE tabela CHANGE opis info VARCHAR(50);

Atrybuty pól tabeli Przy tworzeniu lub zmianie tabeli można podać opcjonalne atrybuty pól (kolumn) tabeli: CREATE TABLE (pole typ atrybuty, ...); Dostępne atrybuty: NULL – można nie podawać wartości (domyślnie) NOT NULL – wartość musi być podana DEFAULT wartość – gdy nie podamy wartości AUTO_INCREMENT – automatycznie zwiększany licznik COMMENT 'opis' – komentarz PRIMARY KEY, KEY – indeksy główne

AUTO_INCREMENT i DEFAULT AUTO_INCREMENT – nie wpisujemy danych, baza wpisuje aktualny stan licznika i zwiększa go o 1. DEFAULT – jeżeli nie wprowadzimy danych, zostanie wpisana wartość domyślna Wynik: (1, 'XYZ', 'brak opisu')

AUTO_INCREMENT i DEFAULT CREATE TABLE wykonawcy { id INT NOT NULL AUTO_INCREMENT, wykonawca VARCHAR(30), opis TEXT DEFAULT 'brak opisu' };

TIMESTAMP Wartością domyślną dla kolumny o typie TIMESTAMP jest aktualny znacznik czasu (data i czas). Kolumna tego typu umożliwia zachowanie czasu wprowadzenia lub ostatniej modyfikacji rekordu. Jeżeli zostanie podana wartość – jest ona wpisywana. Jeżeli nie zostanie podana wartość (NULL) – wpisywany jest znacznik czasu.

(odbiorca, uwagi, kwota ) VALUES ('Ma Bell', 'Lepiej miec syna', 150); Wstawianie danych do tabeli INSERT INTO nazwa_tabeli (kolumna1, kolumna2,....) VALUES (wartość1, wartość2, wartość3); INSERT INTO CZEKI (odbiorca, uwagi, kwota ) VALUES ('Ma Bell', 'Lepiej miec syna', 150); Co z polem nr_czeku ?

Wypełnianie tabeli MySQL Tabela czeki : nr_czeku INT AUTO_INCREMENT PRIMARY KEY, odbiorca VARCHAR(30), kwota float, uwagi char(30), INSERT INTO CZEKI (odbiorca, uwagi, kwota ) VALUES ('Ma Bell', 'Lepiej miec syna', 150); Co z polem nr_czeku ?

Wyszukiwanie danych Wyszukiwanie danych w tabeli – instrukcja SELECT Ogólna postać instrukcji SELECT: SELECT które_kolumny FROM z_której_tabeli WHERE które_rekordy;

Wyszukiwanie danych SELECT [DISTINCT] { {funkcja agregująca | wyrażenie [ AS nazwa_kolumny ]} | {kwalifikator.*} | * INTO specyfikacja_obiektu_docelowego, ... FROM { {nazwa_tabeli [AS] {alias} [(nazwa_kolumny, ...]} | podzapytanie |tabela_złączona [ WHERE predykat]

Zdanie SELECT cd. [ GBROUP BY {nazwa tabeli | ALIAS }.nazwa kolumny] [HAVING predykat] [ORDER BY {{kolumna_wyjściowa {ASC | DESC]},..}];

Zdanie SELECT cd. INTO - określa obiekt docelowy FROM - wskazuje tabele z których zapytanie pobiera lub wylicza wartości WHERE - kryteria, których spełnienia wymaga się od wierszy wyjściowych GROUP BY - grupuje wyniki zapytania w oparciu o wartości w określonych kolumnach HAVING określa wymagania dotyczące grup wierszy określonych klauzulą GROUP BY ORDER BY - porządkuje wynik wg określonych kryteriów

Wyszukiwanie danych Najprostsza postać instrukcji SELECT Wyszukiwanie: w tabeli albumy wszystkich pól (kolumn) – „*” wszystkich rekordów (wierszy) – brak warunku WHERE SELECT * FROM albumy;

Wyszukiwanie – wybór kolumn Wyszukiwanie danych – wyświetlenie wybranych kolumn W ten sposób można uzyskać powtarzające się wyniki: Eliminacja powtórzeń wyników: SELECT rok, tytuł, wykonawca FROM albumy; SELECT wykonawca FROM albumy; SELECT DISTINCT wykonawca FROM albumy;

# Query: # select * from czeki # 'nr_czeku', ’odbiorca’, 'kwota', 'uwagi', '1', 'Ma Bell', '150', 'Lepiej miec syna', '2', 'Reading R.R', '245.34', 'pociag do Chicago', '3', 'Ma Bell', '200.32', 'telefon komórkowy', '4', 'Local utilities','98', 'Paliwo', '5', 'Joes Stale $ Dent','150', 'Artykuly spozywcze', '6', 'Cash', '25', 'Szalona noc', '7', 'Joan Gas', '25.1', 'Paliwo',

Jak pisać instrukcje select odbiorca, uwagi, kwota, nr_czeku from czeki; select odbiorca, uwagi, kwota, nr_czeku from czeki;

Wybieranie kolumn

Zapytania z rozróżnieniem

Zapytania z rozróżnieniem

Czy umiesz? Czy zdania są równoważne: SELECT * FROM CZEKI; Zapytania nie działają: Select * Select * from czeki Select kwota nazwisko odbiorca from czeki; Które zapytanie są dobre: select * from czeki; select * from czeki; select * from czeki

Wyszukiwanie – wybór wierszy Wyszukiwanie rekordów spełniających zadany warunek – instrukcja WHERE

Operatory Operatory używane w instrukcji SELECT ... WHERE: porównania: = <> < > <= >= <=> logiczne: NOT ! AND && OR || XOR IS NULL, IS NOT NULL expr BETWEEN min AND max (NOT BETWEEN) expr IN (lista) (NOT IN)

Wyszukiwanie – wybór wierszy SELECT tytuł FROM albumy WHERE wykonawca = 'Pink Floyd'; SELECT wykonawca, rok FROM albumy WHERE tytuł = 'The Best Of' AND rok < 1970;

Operatory SELECT * FROM albumy WHERE wykonawca IN ('Pink Floyd', ‘Dire Straits') AND (rok < 1975 OR rok BETWEEN 1979 AND 1983);

Symbole wieloznaczne Symbole wieloznaczne używane w instrukcji WHERE: % zastępuje dowolny ciąg znaków _ zastępuje jeden znak SELECT * FROM albumy WHERE wykonawca LIKE 'The %s';

Symbole wieloznaczne Symbole wieloznaczne używane w instrukcji WHERE: Operator symboli wieloznacznych: LIKE, NOT LIKE SELECT * FROM albumy WHERE album NOT LIKE 'The Best in 197_';

Operator podobieństwa LIKE

Sortowanie wyników Sortowanie wyników wg zadanej kolumny: ORDER BY pole – w porządku rosnącym ORDER BY pole ASC – jw. ORDER BY pole DESC – w porządku malejącym SELECT * FROM albumy ORDER BY rok DESC, wykonawca;

Sortowanie wyników wg pola ‘kwota’

Sortowanie wyników z frazą WHERE

Pytania, niejasności, powtórki

[1 1] ADD AGAINST ALL ALTER ANALYZE AND AS ASC BETWEEN BINARY BINLOG BOTH BY CASCADE CASE CHANGE CHARACTER COLUMN CONSTRAINT CREATE CROSS DATABASE DATABASES .... Syntax.txt: Należy podać lokalizację pliku i wtedy wybrane wyrazy pisze w kolorze niebieskim

Struktura zapytania (kwerendy) SELECT lista atrybutów wyświetlanych w odpowiedzi *, ALL wskazuje że wszystkie atrybuty mają być wyświetlone FROM tabela lub tabele do których jest zapytanie WHERE warunki wyboru;

Tabela Persons ( ahv, surname, forename, phone, fax, email, www) SELECT surname, email FROM Persons WHERE surname='Smith' AND forename='John' ; ze zmianą nazw atrybutów SELECT surname AS name, email AS contact

Eliminacja duplikatów SQL nie eliminuje duplikatów, chyba że użyjemy instrukcji DISTINCT Persons ( ahv, surname, forename, phone, fax, email, www) SELECT DISTINCT forename FROM Persons WHERE surname='Smith' ;

Porównywanie ciągów znakowych SELECT surname, forename, email FROM Persons WHERE email LIKE '%@inf.ethz.ch' ; WHERE surname < 'N' ;

System aliasów System aliasów można wykorzystać, jeśli chcemy porównywać zmienne z tej samej tabeli. jest wygodny, gdy chcemy uniknąć dwuznaczności używając powtarzających się nazw atrybutów. SELECT p1.surname, p2.surname FROM Persons p1, Persons p2 WHERE p1.phone = p2.phone

Połączenie typu ‘każdy z każdym’

Grouping Specify list of grouping attributes in GROUP BY clause Aggregate operations in SELECT clause applied within groups Persons ( ahv, surname, forename, phone, fax, email, www) SELECT forename, COUNT(ahv) FROM Persons GROUP BY forename ;

Funkcje agregujące COUNT - zwraca liczbę rekordów spełniających warunek SUM - zwraca sumę wartości w kolumnie AVG - znajduje wartość średnią w kolumnie MAX - zwraca wartość maksymalną MIN - zwraca wartość minimalną VARIANCE - zwraca kwadrat odchylenia standardowego STDDEV - podaje odchylenie standardowe

Funkcje arytmetyczne ABS - wartość bezwzględna CEIL - zaokrągla w górę FLOOR - zaokrągla w dół COS, COSH, SIN, SINH, TAN, TANH - funkcje trygonometryczne EXP, LN, LOG - funkcje logarytmiczne MOD - reszta z dzielenia SQRT - pierwiastek kwadratowy POWER - podnoszenie liczby do potęgi

Funkcje znakowe CHR - zwraca znak odpowiadający podanej liczbie w kodzie ASCII CONCAT - łączy dwa łańcuchy znakowe UPPER - wyświetla WIELKIMI LITERAMI LOWER - wyświetla małymi literami LPAD - dodaje tekst z lewej strony RPAD - dodaje tekst z prawej strony LTRIM - usuwa wybrany znak z tekstu z lewej strony RTRIM - usuwa wybrany znak z tekstu z prawej strony SUBSTR - wyjmuje ciąg znaków ze łańcucha

Frazy w SQL WHERE - wybiera rekordy z tabeli STARTING WITH - działa podobnie jak LIKE(wyrażenie) ORDER BY - określa kolumnę sortującą wyniki Group BY - pozwala wyświetlać i obliczać informacje dotyczące kilku rekordów HAVING - wybiera dane zwracane przez „GROUP BY’

Więcej niż jedna funkcja agregująca... Ile pieniędzy dostali odbiorcy i ile czeków wystawiono

Ile pieniędzy dostali odbiorcy na takie same okazje

Ile czeków wystawiono na tego samego odbiorcę:

Fraza WHERE wybiera REKORDY spełniające określone kryterium Fraza HAVING umożliwia wybieranie ROZWIĄZAŃ spełniających określone kryterium Fraza WHERE nie działa z funkcjami agregującymi !!!

Persons ( ahv, surname, forename, phone, fax, email, www) SELECT forename, COUNT(ahv) FROM Persons GROUP BY forename HAVING surname < 'N' ; ) ;

Pytania, niejasności, powtórki

Joins Persons ( ahv, surname, forename, phone, fax, email, www) Organisations ( orgname, phone, fax, email, www) Worksfor ( ahv, orgname) SELECT orgname, surname, forename FROM Persons, Worksfor, Organisations WHERE Persons.ahv=Worksfor.ahv AND Worksfor.orgname=Organisations.orgname

JOIN operations SQL standard also supports various JOIN operators r1 CROSS JOIN r2 cross product r1 JOIN r2 ON p theta-join with condition p r1 NATURAL JOIN r2 natural join

JOIN operations ... Various forms of OUTERJOIN operations also supported r1 NATURAL FULL OUTER JOIN r2 r1 NATURAL LEFT OUTER JOIN r2 r1 NATURAL RIGHT OUTER JOIN r2 r1 FULL OUTER JOIN r2 ON p r1 LEFT OUTER JOIN r2 ON p r1 RIGHT OUTER JOIN r2 ON p

Grupowanie wyników Tworzenie zestawień przez grupowanie wyników: użycie funkcji, np. COUNT, SUM, MAX, MIN, AVG nazwanie kolumny z wynikami (opcjonalnie) – AS zgrupowanie wyników – ORDER BY Przykład – obliczenie ilości albumów wszystkich wykonawców: SELECT wykonawca, COUNT(*) FROM albumy GROUP BY wykonawca; SELECT wykonawca, COUNT(*) AS ilosc FROM albumy GROUP BY wykonawca ORDER BY ilosc DESC;

Grupowanie wyników Ograniczenie rekordów uzyskanych w wyniku grupowania – operator HAVING Nie należy mylić instrukcji WHERE i HAVING! Przykład – obliczenie ilości albumów wszystkich wykonawców, wyświetlenie tylko tych, którzy mają więcej niż 5 albumów: SELECT wykonawca, COUNT(*) AS ilosc FROM albumy GROUP BY wykonawca HAVING ilosc > 5;

Ograniczenie liczby wyników Ograniczenie liczby zwracanych wyników – LIMIT LIMIT n – n pierwszych wyników LIMIT m,n – n wyników, pomijając m pierwszych Przykład: 10 wykonawców o największej liczbie albumów: 20 następnych wyników (11-30): SELECT wykonawca, COUNT(*) AS ilosc FROM albumy GROUP BY wykonawca LIMIT 10; SELECT wykonawca, COUNT(*) AS ilosc FROM albumy GROUP BY wykonawca LIMIT 10,20;

Wyszukiwanie w wielu tabelach Pobieranie danych w więcej niż jednej tabeli Przykład bazy danych – dwie tabele: albumy utwory Wybranie wszystkich możliwych kombinacji rekordów z obu tabel (iloczyn kartezjański): Gatunek Rok Album Wykonawca IDA IDA Czas Utwór IDU SELECT * FROM albumy, utwory;

Wyszukiwanie w wielu tabelach Uwzględnienie relacji między tabelami: Łączy ze sobą rekordy obu tabel mające takie same dane w polach, które są połączone relacją: albumy utwory SELECT * FROM albumy, utwory WHERE albumy.IDA = utwory.IDA; Gatunek Rok Album Wykonawca IDA IDA Czas Utwór IDU

Wyszukiwanie w wielu tabelach Wybór kolumn: Krótsza wersja – aliasy nazw tabel: SELECT albumy.wykonawca, albumy.album, utwory.utwor, utwory.czas FROM albumy, utwory WHERE albumy.IDA = utwory.IDA; SELECT a.wykonawca, a.album, u.utwor, u.czas FROM albumy a, utwory u WHERE a.IDA = u.IDA;

Wstawianie danych – inne metody Wstawianie do tabeli danych uzyskanych w wyniku zapytania: Wstawianie danych z pliku na komputerze klienta (pola rozdzielone tabulatorami, rekordy – znakiem nowej linii) – komenda mySQL (nie standard): INSERT INTO nowa (autor, dzielo) SELECT DISTINCT wykonawca, album FROM albumy; LOAD DATA LOCAL INFILE ‘dane.txt’ INTO nowa_tabela;