KWALIFIKACJA INF3 - CZERWIEC 2023

PYTANIE NR 18.
Która z funkcji SQL nie pobiera argumentów?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Funkcja now jest rozumiana jako funkcja zwracająca bieżącą datę i czas i typowo nie wymaga przekazywania argumentów. Pozostałe nazwy wskazują na funkcje, które standardowo działają na danych wejściowych (np. długość tekstu, rok z daty, zmiana wielkości liter), więc przyjmują parametr.

Pełne wyjaśnienie:

Pytanie dotyczy rozróżnienia funkcji SQL, które można wywołać bez podawania parametrów, od funkcji wymagających argumentu wejściowego. Odpowiedź now odnosi się do funkcji zwracającej bieżącą datę i czas. W wielu popularnych systemach baz danych jest to funkcja bezargumentowa (wywoływana jako now() lub równoważna), ponieważ do wyliczenia wyniku nie potrzebuje danych z kolumny ani stałej.

Pozostałe propozycje dotyczą typowych funkcji przetwarzających wartość wejściową:

  • len – funkcja długości łańcucha znaków: aby policzyć długość, musi dostać tekst (np. wartość kolumny lub literał). Bez argumentu nie ma "czego liczyć".
  • year – funkcja wydzielająca rok z daty/czasu: wymaga daty, z której ma pobrać rok. Bez argumentu nie ma źródła, z którego wydobyć składową.
  • upper – funkcja zamieniająca litery na wielkie: musi dostać napis, który ma przekształcić. Bez argumentu nie jest zdefiniowane, jaki tekst miałby zostać zmieniony.

W praktyce egzaminacyjnej warto pamiętać o dwóch rzeczach: (1) różne dialekty SQL mają różne nazwy funkcji i czasem inne listy parametrów, (2) zapis wywołania zwykle zawiera nawiasy, nawet gdy argumentów nie ma. Dlatego przy rozwiązywaniu testów dobrze jest kojarzyć funkcję po jej celu: funkcje "systemowe" (np. bieżący czas) częściej są bezargumentowe, a funkcje "transformujące" (tekst, data z kolumny) zazwyczaj wymagają parametru.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
To znaczy, że można ją wywołać bez podawania parametrów wejściowych, bo wynik wynika z kontekstu systemu (np. bieżący czas) albo z wewnętrznego stanu bazy. W zapisie często nadal występują nawiasy, np. now().
Najczęściej są to funkcje przetwarzające konkretną wartość: tekst (np. zmiana wielkości liter), datę z kolumny (np. wydzielenie roku) albo liczbę. Jeśli funkcja ma coś "policzyć" lub "przekształcić", zwykle potrzebuje argumentu.
Ponieważ działają na dostarczonej wartości. LEN musi dostać napis, którego długość ma obliczyć, a UPPER musi dostać napis do zamiany na wielkie litery. Bez argumentu nie ma danych wejściowych do przetworzenia.
Nie zawsze. W SQL występują różnice między silnikami (dialektami), a ta sama nazwa funkcji może mieć inną składnię lub parametry opcjonalne. Na egzaminie warto kierować się dokumentacją/konwencją używaną w danym kursie i rozpoznawać funkcję po zastosowaniu.
Zależy od bazy danych. Często spotkasz funkcje lub wyrażenia zwracające bieżącą datę i czas, ale nazwy mogą być inne. Dlatego w zadaniach testowych kluczowe jest dopasowanie do konkretnego dialektu i zapamiętanie najczęściej używanych odpowiedników.
Gdy chcesz automatycznie zapisać moment utworzenia lub modyfikacji rekordu (np. w kolumnie typu data/czas), wygenerować raport "na teraz", albo porównać daty (np. rekordy z ostatnich 7 dni). To częsta praktyka w aplikacjach WWW.
Najczęściej: mylenie dialektów (np. przenoszenie funkcji z SQL Server do MySQL), pomijanie nawiasów przy wywołaniu, zakładanie że każda funkcja wymaga argumentu, oraz mylenie funkcji tekstowych z funkcjami daty/czasu.
W dokumentacji funkcje są podane w formie składni, np. NAZWA(arg1, arg2). Brak parametrów oznacza zapis typu NAZWA(). Czasem zobaczysz argumenty opcjonalne w nawiasach kwadratowych, co sygnalizuje różne warianty wywołania.
W wielu systemach tak, bo odróżniają wywołanie funkcji od identyfikatora/kolumny. Nawet jeśli funkcja nie ma parametrów, standardowy zapis to forma z nawiasami. Na egzaminie zwracaj uwagę, jak zapisano funkcję w danym dialekcie.
Najlepiej tworzyć krótkie zapytania na przykładowej tabeli (np. użytkownicy, zamówienia): wyświetl datę utworzenia, wyciągnij rok, policz długość pola, zamień tekst na wielkie litery. Ćwicz też na różnych silnikach, jeśli są omawiane.
info

Około 66% zdających odpowiada poprawnie na to pytanie. średnie

W praktyce zawodowej kluczowe jest to, że funkcja now jest rozumiana jako funkcja zwracająca bieżącą datę i czas i typowo nie wymaga przekazywania argumentów.

Źródła:

  • PostgreSQL Documentation: Date/Time Functions and Operators – function now() (current transaction time), https://www.postgresql.org/docs/current/functions-datetime.html (accessed 2026-03-01)
  • MySQL 8.0 Reference Manual: Date and Time Functions – NOW(), https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_now (accessed 2026-03-01)
  • Microsoft Learn: SQL Server string functions – LEN (Transact-SQL), https://learn.microsoft.com/en-us/sql/t-sql/functions/len-transact-sql (accessed 2026-03-01)

Materiały:

  • Dokumentacja wybranego silnika bazy danych używanego na zajęciach (funkcje daty/czasu i tekstowe)
  • Ściąga/lekcja: funkcje agregujące vs skalarne w SQL
  • Zestawy zadań z SQL: funkcje na datach i napisach

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego