Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

1 Tworzenie bazy danych – mySQL Sposób utworzenia bazy danych w mySQL: –uruchomienie programu: mysql –utworzenie bazy: CREATE DATABASE nazwa; –przełączenie.

Podobne prezentacje


Prezentacja na temat: "1 Tworzenie bazy danych – mySQL Sposób utworzenia bazy danych w mySQL: –uruchomienie programu: mysql –utworzenie bazy: CREATE DATABASE nazwa; –przełączenie."— Zapis prezentacji:

1 1 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.

2 2 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;

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

4 4 Typy danych Typy danych mySQL – liczby całkowite: –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

5 5 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

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

7 7 SQL – liczby i napisy Łańcuchy znaków: 'napis' lub "napis" użycie backslasha (\): 'napis \'03' Liczby całkowite: Liczby zmiennoprzecinkowe: e+10 Liczby szesnastkowe: x'4D C' 0x c Wartość pusta: NULL

8 8 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;

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

10 10 Operacje na tabelach Zmiana nazwy: 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;

11 11 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);

12 12 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

13 13 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')

14 14 AUTO_INCREMENT i DEFAULT CREATE TABLE wykonawcy { idINT NOT NULL AUTO_INCREMENT, wykonawcaVARCHAR(30), opisTEXT DEFAULT 'brak opisu' };

15 15 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.

16 16 INSERT INTO CZEKI (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); Co z polem nr_czeku ?

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

18 18 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;

19 19 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]

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

21 21 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

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

23 23 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;

24 24

25 25 # 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',

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

27 27 Wybieranie kolumn

28 28 Zapytania z rozróżnieniem

29 29 Zapytania z rozróżnieniem

30 30 Czy umiesz? Czy zdania są równoważne: SELECT * FROM CZEKI; 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

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

32 32 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)

33 33 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;

34 34

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

36 36 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';

37 37 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_';

38 38 Operator podobieństwa LIKE

39 39 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;

40 40 Sortowanie wyników wg pola kwota

41 41 Sortowanie wyników z frazą WHERE

42 42 Pytania, niejasności, powtórki

43 43 [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

44 44

45 45

46 46

47 47

48 48

49 49

50 50 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 ;

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

52 52

53 53

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

55 55

56 56 Porównywanie ciągów znakowych SELECT surname, forename, FROM Persons WHERE LIKE ; SELECT surname, forename, FROM Persons WHERE surname < 'N' ;

57 57

58 58 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

59 59 Połączenie typu każdy z każdym

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

61 61 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

62 62 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

63 63 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

64 64 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

65 65

66 66

67 67

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

69 69 Ile pieniędzy dostali odbiorcy na takie same okazje

70 70 Ile czeków wystawiono na tego samego odbiorcę:

71 71 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 !!!

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

73 73 Pytania, niejasności, powtórki

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

75 75 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

76 76 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

77 77

78 78 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;

79 79 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;

80 80 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;

81 81 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): Gatune k Ro k Alb um Wykona wca ID A Cza s Utwó r ID U SELECT * FROM albumy, utwory;

82 82 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; Gatune k Ro k Alb um Wykona wca ID A Cza s Utwó r ID U

83 83 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;

84 84 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;


Pobierz ppt "1 Tworzenie bazy danych – mySQL Sposób utworzenia bazy danych w mySQL: –uruchomienie programu: mysql –utworzenie bazy: CREATE DATABASE nazwa; –przełączenie."

Podobne prezentacje


Reklamy Google