KWALIFIKACJA INF3 - TEST WIEDZY NR 4

PYTANIE NR 30.
Załóż, że masz plik CSV z danymi, które chcesz zaimportować do bazy danych SQL. Które z poniższych poleceń jest poprawne do określenia separatora kolumn w pliku CSV?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
W MySQL/MariaDB separator kolumn w pliku CSV podczas importu ustawia się klauzulą FIELDS TERMINATED BY, np. FIELDS TERMINATED BY ','. Polecenie LOAD DATA INFILE służy do ładowania danych z pliku do tabeli i pozwala jawnie zdefiniować delimiter pól.

Pełne wyjaśnienie:

W imporcie danych z pliku CSV kluczowe jest wskazanie, jakim znakiem rozdzielone są pola (kolumny). W MySQL oraz MariaDB służy do tego mechanizm importu oparty o polecenie LOAD DATA INFILE. To polecenie pozwala załadować rekordy z pliku do wskazanej tabeli i skonfigurować sposób interpretacji danych.

Separator pól w wierszu CSV określa się w MySQL/MariaDB przez klauzulę FIELDS TERMINATED BY. Zapis FIELDS TERMINATED BY ',' oznacza, że kolejne kolumny w wierszu są oddzielone przecinkiem, co odpowiada najczęstszemu wariantowi CSV. Dzięki temu silnik bazy prawidłowo rozbije każdy wiersz na wartości kolumn.

Pozostałe propozycje są typowymi "pułapkami":

  • Składnia w rodzaju IMPORT INTO ... SEPARATED BY nie jest standardowym poleceniem SQL dla popularnych silników i zwykle nie zadziała.
  • W PostgreSQL do importu używa się polecenia COPY i tam spotyka się parametr DELIMITER, ale jest to inna rodzina składni niż MySQL/MariaDB. To częsty błąd: mieszanie poleceń z różnych baz.
  • Użycie SELECT * FROM 'file.csv' sugeruje traktowanie pliku jak tabeli, co nie jest typowym sposobem importu CSV w SQL; import realizuje się dedykowanymi poleceniami/ narzędziami.

W praktyce (INF.3) warto zapamiętać: MySQL/MariaDB → LOAD DATA INFILE + FIELDS TERMINATED BY, a w innych silnikach (np. PostgreSQL) mechanizm importu może mieć inną nazwę i inne parametry.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Separator kolumn (delimiter) to znak rozdzielający kolejne wartości w jednym wierszu CSV, np. przecinek lub średnik. Baza danych musi znać ten znak, aby poprawnie podzielić wiersz na pola i przypisać je do odpowiednich kolumn tabeli.
W MySQL/MariaDB używa się polecenia LOAD DATA INFILE i klauzuli FIELDS TERMINATED BY. Przykład: FIELDS TERMINATED BY ',' ustawia przecinek jako separator pól. To podstawowy sposób sterowania formatem CSV.
Ponieważ w PostgreSQL import danych z CSV często wykonuje się poleceniem COPY i tam faktycznie ustawia się DELIMITER. To jednak składnia specyficzna dla PostgreSQL, więc w MySQL/MariaDB nie jest poprawnym zamiennikiem LOAD DATA INFILE.
Nie. SQL jako język ma standard, ale import plików CSV zwykle realizuje się poleceniami specyficznymi dla silnika (np. MySQL/MariaDB: LOAD DATA INFILE, PostgreSQL: COPY) lub narzędziami zewnętrznymi. Na egzaminie trzeba rozpoznawać właściwą składnię.
Najczęściej spotkasz przecinek lub średnik. Wiele polskich ustawień regionalnych w arkuszach kalkulacyjnych domyślnie eksportuje CSV ze średnikiem (ze względu na przecinek w liczbach dziesiętnych). Dlatego przy imporcie warto sprawdzić plik i dobrać właściwy delimiter.
Wskazówki to nazwy poleceń i parametrów: MySQL/MariaDB często używa LOAD DATA INFILE oraz FIELDS TERMINATED BY, a PostgreSQL kojarzy się z COPY i opcją DELIMITER. Ucz się par "silnik → komenda", bo to częsty motyw w INF.3.
Silnik bazy może wczytać cały wiersz do jednej kolumny, "poprzestawiać" dane między kolumnami lub zgłosić błąd liczby pól. Skutkiem są błędne rekordy i konieczność czyszczenia danych. Zawsze weryfikuj delimiter oraz ewentualne cudzysłowy otaczające wartości.
Gdy plik ma nietypowe zakończenia wierszy (np. Windows CRLF vs Linux LF) albo zawiera puste wiersze. W MySQL/MariaDB można wtedy doprecyzować parametry linii (np. terminator linii), aby każdy rekord był rozpoznany poprawnie i nie łączył się z następnym wierszem.
Najczęstsze są: mieszanie składni różnych baz (COPY vs LOAD DATA), mylenie separatora pól z separatorem linii, ignorowanie cudzysłowów w CSV oraz założenie, że plik CSV jest "tabelą" i da się go odczytać poleceniem SELECT. Pomaga nauka konkretnych przykładów składni.
Ćwicz rozpoznawanie składni dla najpopularniejszych silników i narzędzi: MySQL/MariaDB (LOAD DATA INFILE), PostgreSQL (COPY), oraz import przez GUI (np. kreatory w narzędziach administracyjnych). Utrwal pojęcia: delimiter, nagłówek, kodowanie, cudzysłów.
info

To pytanie poprawnie rozwiązuje 47% zdających egzamin. trudne

Eksperci podkreślają: "W MySQL/MariaDB separator kolumn w pliku CSV podczas importu ustawia się klauzulą FIELDS TERMINATED BY, np. FIELDS TERMINATED BY ','."

Źródła:

  • MySQL 8.0 Reference Manual – "LOAD DATA Statement", https://dev.mysql.com/doc/refman/8.0/en/load-data.html (dostęp: 2026-03-01)
  • MariaDB Knowledge Base – "LOAD DATA INFILE", https://mariadb.com/kb/en/load-data-infile/ (dostęp: 2026-03-01)
  • PostgreSQL Documentation – "COPY", https://www.postgresql.org/docs/current/sql-copy.html (dostęp: 2026-03-01)

Materiały:

  • Dokumentacja MySQL: LOAD DATA INFILE
  • Dokumentacja MariaDB: LOAD DATA INFILE
  • Dokumentacja PostgreSQL: COPY (dla porównania podejść)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego