W MySQL/MariaDB standardowym sposobem szybkiego załadowania danych z pliku tekstowego (w tym CSV) do tabeli jest polecenie LOAD DATA INFILE. Pozwala ono importować wiele rekordów w jednym kroku, bez ręcznego wykonywania wielu instrukcji INSERT.
Jeżeli plik CSV zawiera nagłówki kolumn w pierwszym wierszu, to ten wiersz nie jest danymi i nie powinien trafić do tabeli. Właśnie temu służy fragment IGNORE 1 LINES — informuje serwer, aby pominąć pierwszy wiersz wejścia.
Dlaczego pozostałe opcje są niepoprawne w kontekście MySQL/MariaDB:
- IMPORT INTO ... — taka instrukcja nie jest standardową komendą SQL w MySQL; wygląda "intuicyjnie", ale jest składniowo fikcyjna.
- COPY ... WITH HEADER — polecenie COPY jest charakterystyczne dla PostgreSQL. W MySQL nie działa w tej postaci, więc nie jest poprawną odpowiedzią, jeśli pytanie dotyczy komend typu LOAD DATA.
- SELECT * FROM 'file.csv' INTO ... — SELECT działa na tabelach/widokach, a nie na plikach CSV podanych jako literał. Taka składnia nie opisuje realnego importu CSV do tabeli.
W praktyce przy imporcie warto pamiętać, że LOAD DATA INFILE bywa ograniczone konfiguracją serwera (np. lokalizacja pliku, uprawnienia, tryb bezpiecznego importu). Na egzaminie kluczowe jest jednak rozpoznanie mechanizmu: import pliku + pominięcie nagłówka.
LOAD DATA INFILE 'file.csv'
INTO TABLE table_name
IGNORE 1 LINES;