Import i eksport SQL oraz CSV
Przenieś dane świadomie: wybierz format, sprawdź kodowanie i cel importu, a potem potwierdź kompletność tabel. Pobierz wspólną bazę wszystkich ćwiczeń.
Część bazodanowa INF.03SQL, CSV i kopia bazy nie oznaczają tego samego
Skrypt SQL
Tekst poleceń wykonywanych przez SZBD. Może tworzyć strukturę, dodawać dane, zmieniać uprawnienia lub usuwać obiekty. Przed wykonaniem czytaj jego zawartość.
CSV
Wiersze i pola rozdzielone separatorem. Zwykle przenosi dane jednej tabeli lub wynik zapytania; nie zapisuje relacji, indeksów i pełnej definicji typów.
Eksport
Proces zapisania wybranego zakresu do pliku. Może być składnikiem kopii zapasowej, lecz sam komunikat „eksport zakończony” nie potwierdza poprawnego odtworzenia.
Pobierz wspólną bazę kursu
Pobierz dane ćwiczeniowe SQL — ZIP
Archiwum zawiera README.txt, mysql-mariadb.sql, sql-server.sql, oracle-19c.sql, access-ace.sql, sqlite.sql i produkty.csv. Dane są syntetyczne. Adresy w domenie example.invalid nie służą do kontaktu.
Wybierz jeden skrypt właściwy dla silnika. Nie importuj pakietu do bazy działającej strony ani systemowej. Skrypty MySQL/MariaDB i SQL Server tworzą nową bazę cn_sql_cwiczenia_2026. Jeżeli ta nazwa już istnieje, wybierz nową w instrukcjach CREATE DATABASE i USE. Zatrzymaj import na pierwszym błędzie; nie kontynuuj po błędzie tworzenia bazy.
Pakiet nie jest wynikiem testów na wszystkich wymienionych serwerach. Różnice typów i ograniczeń opisuje README: m.in. SQL Server używa filtrowanego indeksu unikalnego dla niepustych e-maili, a Access wymaga ustawienia reguł poprawności ceny i ilości w projekcie tabel.
Import w phpMyAdmin krok po kroku
- Otwórz lokalny phpMyAdmin i sprawdź nazwę oraz wersję serwera. XAMPP może dostarczać MariaDB mimo napisu MySQL w panelu.
- Rozpakuj archiwum i przeczytaj
mysql-mariadb.sql. Upewnij się, że wskazana nazwa nowej bazy jest wolna. - Na poziomie serwera wybierz Import, plik SQL i kodowanie UTF-8. Ten plik sam zawiera CREATE DATABASE i USE. Gdy pracujesz z innym plikiem bez tych instrukcji, najpierw wybierz właściwą bazę docelową.
- Wykonaj import. Odczytaj komunikat i ewentualny numer błędnej instrukcji; nie traktuj częściowo wykonanego pliku jako sukcesu.
- Sprawdź strukturę, klucze obce i liczby wierszy. Kontroluj również apostrof w O’Neil, NULL i zapis dat.
SELECT COUNT(*) AS liczba FROM klienci; -- 5
SELECT COUNT(*) AS liczba FROM produkty; -- 4
SELECT COUNT(*) AS liczba FROM zamowienia; -- 4
SELECT COUNT(*) AS liczba FROM pozycje; -- 6Te same cztery zapytania kontrolne działają w omawianych silnikach, ale Access uruchamia się zwykle po jednym poleceniu w oknie kwerendy. Dla kompletności sprawdź też wartości danych i więzy, bo poprawna liczba rekordów nie dowodzi poprawnego importu.
CSV: małe ustawienia, duże różnice
id,nazwa,cena
1,Klawiatura,120.00
2,Mysz,60.00
3,Monitor,800.00
4,Kabel,25.00Plik produkty.csv ma kodowanie UTF-8, przecinek jako separator, kropkę dziesiętną i nagłówki w pierwszym wierszu. Importuj go do nowej tabeli produkty_import, aby nie powtórzyć rekordów w produkty. Ustal typy: identyfikator całkowity, nazwa tekstowa i cena dziesiętna. Nie polegaj bez kontroli na automatycznym rozpoznaniu typów.
Tekst zawierający separator wymaga odpowiedniego cytowania, np. "Kabel, 2 m". Cudzysłów wewnątrz pola jest zwykle podwajany. Puste pole CSV nie ma jednej uniwersalnej interpretacji: może zostać pustym napisem albo NULL, zależnie od konfiguracji importera. Ustal tę regułę przed przeniesieniem danych. Sprawdź także format dat i zakończenia linii.
Eksportując dane do arkusza kalkulacyjnego, uwzględnij, że tekst zaczynający się od znaków formuły może zostać potraktowany jak formuła. Używaj trybu importu tekstowego i świadomej ochrony przed interpretacją formuł; samo cytowanie CSV nie zawsze ją wyłącza.
Eksport i różnice narzędzi
W phpMyAdmin wybierz bazę ćwiczeniową, zakładkę Eksport i format SQL. Dla przeniesienia bazy wybierz strukturę oraz dane wszystkich czterech tabel. Przejrzyj opcje DROP i CREATE DATABASE: polecenia usuwające mogą nadpisać istniejące obiekty podczas odtwarzania. CSV wybieraj wtedy, gdy potrzebujesz danych tabeli lub wyniku, a nie pełnego schematu.
| Środowisko | Praca ze skryptem / wymiana danych |
|---|---|
| MySQL / MariaDB | phpMyAdmin lub klient mysql/mariadb. Eksport logiczny: mysqldump/mariadb-dump. Wersje, kodowanie i składnia muszą pasować. |
| SQL Server | SSMS wykonuje partie oddzielone GO. GO jest instrukcją klienta, nie SQL wysyłanym przez aplikację. Kreator importu/eksportu i narzędzia bcp/BULK INSERT mają własne wymagania dostępu do pliku. |
| Oracle 19c | Skrypt pakietu wymaga oddzielnego schematu ćwiczeniowego. Data Pump służy do eksportu/importu obiektów i danych; SQL*Loader lub narzędzia klienta pomagają w imporcie danych tekstowych. |
| Access / ACE | Nowy plik .accdb, każde polecenie SQL osobno, bez komentarzy –. CSV przez Dane zewnętrzne i kreator, z kontrolą typów oraz nagłówków. |
| SQLite | Skrypt do nowej pustej bazy SQLite. Edytor strony ma własny reset danych; nie jest klientem importującym pliki na obcy serwer. |
SQL nie jest przenośnym formatem bez ograniczeń: AUTO_INCREMENT, IDENTITY, typy, kolacje, daty i uprawnienia wymagają dostosowania. Przeniesienie danych i przeniesienie całej aplikacji to osobne zadania.
Ćwiczenia z rozwiązaniami
1. Po imporcie jest 8 produktów zamiast 4. Co sprawdzić?
Czy import wykonano dwa razy, czy plik zawiera powtórzenia oraz czy identyfikator ma klucz główny. Nie usuwaj danych w ciemno. Zachowaj komunikaty i powtórz ćwiczenie w nowej, pustej bazie.
2. CSV daje jedną szeroką kolumnę. Dlaczego?
Najpierw sprawdź separator: przecinek, średnik lub tabulator. Potem ustaw cytowanie i nagłówki. Sprawdź podgląd importu przed zapisaniem tabeli.
3. Wykonaj pełny obieg eksport–import
Zaimportuj SQL do nowej bazy, sprawdź liczby 5/4/4/6, wyeksportuj strukturę i dane, a następnie odtwórz w jeszcze innej bazie ćwiczeniowej. Przed importem usuń lub dostosuj dyrektywy USE/CREATE DATABASE w kopii pliku tak, aby cel był jednoznaczny. Porównaj liczby, wartości i relacje. Zapisz wersję silnika, format i wynik kontroli.
Zapamiętaj
Dobry import ma ustalony cel, zgodny format i kontrolę wyniku. CSV nie przenosi pełnego schematu, a skrypt SQL może zmieniać znacznie więcej niż same dane. Następna część pokazuje, jak z eksportu przejść do sprawdzonej strategii kopii zapasowych.
Dokumentacja phpMyAdmin: import i eksport · SQL Server: separator GO · Oracle 19c: Data Pump

