Lekcja: Operacje na bazach danych MySQL: Pobieranie danych, importowanie z plików i silniki baz danych
Cel lekcji:
- Zrozumienie, jak pobierać dane z bazy MySQL.
- Nauczenie się importowania danych do MySQL z plików zewnętrznych.
- Poznanie różnych silników baz danych obsługiwanych przez MySQL.
Teoria:
1. Pobieranie informacji z bazy danych MySQL (SHOW)
Operacja SELECT służy do pobierania danych z tabel w bazie danych. Pozwala na wybieranie konkretnych kolumn, filtrowanie wyników, sortowanie i grupowanie danych.
Polecenie pokazujące kod tworzący tabelę:
SHOW CREATE TABLE nazwa_tabeli;
Pokazuje bazy danych na serwerze:
SHOW DATABASES;
Pokazuje tabele w bazie :
SHOW TABLES;
2. Importowanie danych do MySQL z plików zewnętrznych
MySQL umożliwia importowanie danych z różnych plików, takich jak pliki CSV, pliki tekstowe lub pliki generowane przez inne bazy danych.
Import danych z pliku CSV do tabeli:
Przykład importowania pliku CSV do istniejącej tabeli studenci:
- Plik CSV (students.csv) ma następującą strukturę:
imie,nazwisko,wiek
Jan,Kowalski,22
Anna,Nowak,20
- Importowanie pliku CSV do MySQL za pomocą komendy LOAD DATA INFILE:
LOAD DATA INFILE '/ścieżka/do/pliku/students.csv'
INTO TABLE studenci
FIELDS TERMINATED BY ','
LINES TERMINATED BY '
'
IGNORE 1 ROWS;
- FIELDS TERMINATED BY ',' – Określa, że kolumny w pliku CSV są oddzielone przecinkami.
- LINES TERMINATED BY ' ' – Oznacza, że wiersze są zakończone nową linią.
- IGNORE 1 ROWS – Ignoruje pierwszy wiersz, który zazwyczaj zawiera nagłówki kolumn.
Importowanie bazy danych z pliku SQL:
Jeśli masz cały plik SQL, który chcesz zaimportować do MySQL, możesz to zrobić za pomocą narzędzia mysql:
mysql -u user -p nazwa_bazy < /ścieżka/do/pliku/file.sql
3. Rodzaje silników obsługiwanych w MySQL
MySQL wspiera wiele różnych silników, które mogą być używane w zależności od wymagań aplikacji. Każdy silnik ma swoje unikalne cechy i zastosowania.
a. InnoDB
- Opis: Najczęściej używany silnik, zapewniający pełne wsparcie dla transakcji, kluczy obcych oraz ACID (Atomicity, Consistency, Isolation, Durability).
- Zalety: Wysoka wydajność, bezpieczeństwo danych i wsparcie dla blokowania rekordów.
- Zastosowania: Aplikacje wymagające transakcji, zarządzania relacjami między tabelami (klucze obce).
b. MyISAM
- Opis: Lżejszy silnik, który nie wspiera transakcji ani kluczy obcych, ale oferuje szybsze odczyty.
- Zalety: Szybkość w operacjach SELECT, mały narzut zasobów.
- Zastosowania: Aplikacje, w których szybkość odczytu jest priorytetem, np. serwisy do czytania danych (raporty, statystyki).
c. Memory
- Opis: Silnik, który przechowuje dane w pamięci RAM, co zapewnia bardzo szybkie operacje odczytu i zapisu.
- Zalety: Ekstremalna szybkość.
- Wady: Dane są przechowywane w pamięci RAM, więc są tracone po ponownym uruchomieniu serwera.
- Zastosowania: Tymczasowe tabele, przechowywanie wyników obliczeń na krótki czas.
d. CSV
- Opis: Przechowuje dane w formacie CSV (Comma Separated Values).
- Zastosowania: Używany do prostych importów i eksportów danych z tabel MySQL do plików tekstowych.
e. ARCHIVE
- Opis: Silnik przeznaczony do przechowywania dużych ilości danych, które rzadko są modyfikowane.
- Zastosowania: Idealny do logów lub archiwów.
Przykład: Sprawdzanie silnika bazy danych
a) Sprawdzenie jakiego silnika używa tabela klienci:
SHOW TABLE STATUS LIKE 'klienci';
b) Zmiana silnika tabeli klienci na MyISAM:
ALTER TABLE klienci ENGINE = MyISAM;