Który ze sposobów komentowania nie jest stosowany w zapytaniach SQL w MySQL?
A.
// komentarzB.
# komentarzC.
-- komentarzD.
/* komentarz */W MySQL zapis // komentarz nie jest składnią komentarza w zapytaniach SQL. To jest ważne rozróżnienie, bo // kojarzy się mocno z JavaScriptem, PHP, C++, Javą i wieloma innymi językami, ale w samym SQL dla MySQL tak się komentarzy nie zapisuje. W praktyce, gdy wpiszesz coś takiego w zapytaniu, serwer MySQL nie potraktuje tego jako komentarza i może zgłosić błąd składni albo zinterpretować znaki w zupełnie innym kontekście. Poprawne formy komentarzy w MySQL to # komentarz, -- komentarz oraz /* komentarz */. Warto pamiętać, że przy -- w MySQL po dwóch minusach powinna być spacja lub znak sterujący, więc -- komentarz jest poprawne, ale --komentarz może już sprawiać problemy. Komentarz blokowy /* komentarz */ przydaje się, gdy opisujesz większy fragment zapytania, np. skomplikowany JOIN albo warunek WHERE. Moim zdaniem najlepiej w projektach bazodanowych używać komentarzy oszczędnie, ale konkretnie: opisywać nietypową logikę, założenia biznesowe i trudniejsze fragmenty procedur. Dobra praktyka jest taka, żeby komentarz pomagał utrzymać kod SQL, a nie powtarzał oczywistości typu wybieram dane z tabeli.
W tym pytaniu łatwo pomylić składnię SQL ze składnią języków programowania używanych obok bazy danych, zwłaszcza PHP albo JavaScriptu. W MySQL komentarz zaczynający się od # jest jak najbardziej poprawny i dość często spotykany w skryptach administracyjnych oraz krótkich notatkach w plikach .sql. Nie jest to uniwersalny standard we wszystkich systemach baz danych, ale w MySQL działa normalnie, więc odrzucanie go byłoby myleniem standardowego SQL z konkretną implementacją MySQL. Zapis -- komentarz także jest poprawny, tylko jest tu mały haczyk: w MySQL po dwóch minusach powinna wystąpić spacja albo znak kontrolny. Dlatego forma pokazana w pytaniu, czyli -- komentarz, jest prawidłowa i zgodna z praktyką pisania zapytań. Komentarz blokowy /* komentarz */ również jest stosowany, szczególnie gdy trzeba tymczasowo wyłączyć fragment zapytania albo opisać dłuższy kawałek logiki, na przykład część z kilkoma warunkami JOIN i filtrowaniem danych. Typowy błąd myślowy polega na tym, że ktoś widzi // i uznaje: skoro działa w JavaScripcie lub PHP, to pewnie w SQL też. Niestety nie, MySQL nie traktuje // jako komentarza w zapytaniu. Co najwyżej można spotkać // jako niestandardowy delimiter w kliencie MySQL, np. przy tworzeniu procedur składowanych po komendzie DELIMITER //, ale to nie jest komentarz. To tylko separator końca instrukcji w narzędziu klienckim, a nie składnia SQL wykonywana przez serwer. W codziennej pracy z bazą warto więc oddzielać sobie w głowie składnię języka aplikacji od składni SQL, bo takie drobne różnice potrafią narobić naprawdę głupich błędów.