890 likes | 1.18k Views
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.
E N D
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: • 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 • CREATE TABLE tabela (id INT, nazwa VARCHAR(30)); • Tworzenie tabeli (przykład): • Usuwanie tabeli: • Wyświetlenie istniejących baz danych: • Wyświetlenie struktury tabeli: • 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 • RENAME TABLE tabela TO nowa_tabela; • Zmiana nazwy: • Zmiana struktury tabeli – ALTER TABLE • Dodanie kolumny: • Usuwanie kolumny: • 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 TIMESTAMPjest 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.
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: • SELECTktóre_kolumny • FROMz_której_tabeli • WHEREktó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;
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
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 • exprBETWEENminANDmax (NOT BETWEEN) • exprIN (lista) (NOT IN)
Wyszukiwanie – wybór wierszy • SELECT tytuł FROM albumyWHERE wykonawca = 'Pink Floyd'; • SELECT wykonawca, rok FROM albumyWHERE tytuł = 'The Best Of' AND rok < 1970;
Operatory • SELECT * FROM albumyWHERE 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 albumyWHERE wykonawca LIKE 'The %s';
Symbole wieloznaczne • Symbole wieloznaczne używane w instrukcji WHERE: • Operator symboli wieloznacznych: LIKE, NOT LIKE • SELECT * FROM albumyWHERE album NOT LIKE 'The Best in 197_';
Sortowanie wyników • Sortowanie wyników wg zadanej kolumny: • ORDER BYpole – w porządku rosnącym • ORDER BYpoleASC– jw. • ORDER BYpoleDESC – w porządku malejącym • SELECT * FROM albumyORDER BY rok DESC, wykonawca;
[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 • FROMtabela lub tabele do których jest zapytanie • WHEREwarunki wyboru;