KWALIFIKACJA INF3 - CZERWIEC 2020

PYTANIE NR 17.
Która z funkcji SQL nie pobiera argumentów?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Funkcja NOW() zwraca bieżącą datę i czas systemowy i standardowo wywołuje się ją bez parametrów. Pozostałe funkcje wymagają argumentu: LEN() liczy długość wskazanego tekstu, YEAR() wyodrębnia rok z daty, a UPPER() zamienia litery w podanym łańcuchu na wielkie.

Pełne wyjaśnienie:

W SQL argument (parametr) to wartość przekazywana do funkcji w nawiasach, np. UPPER('ala') lub YEAR(data_urodzenia). Funkcje tekstowe i "wycinające" fragment informacji zwykle muszą dostać dane wejściowe, bo bez nich nie mają z czego obliczyć wyniku.

Odpowiedź "now" jest poprawna, ponieważ funkcja NOW() w popularnych systemach (np. MySQL, PostgreSQL) zwraca aktualną datę i czas i typowo jest wywoływana bez podawania argumentów (np. w SELECT lub przy domyślnej wartości kolumny czasowej).

Dlaczego pozostałe odpowiedzi są niepoprawne:

  • "len" – służy do wyznaczania długości tekstu, więc potrzebuje wskazania łańcucha znaków/kolumny tekstowej. Bez argumentu nie ma czego mierzyć.
  • "year" – zwraca rok z przekazanej daty/czasu. Musi otrzymać datę (kolumnę lub wartość), z której ma wydobyć rok.
  • "upper" – zamienia litery w przekazanym tekście na wielkie. Bez przekazanego tekstu nie da się wykonać transformacji.

Wskazówka egzaminacyjna: jeśli w odpowiedziach są funkcje "przekształcające" dane (tekst/data), szukaj takiej, która może działać jako "źródło wartości" (np. bieżący czas) – to częsty wzorzec funkcji bezargumentowych. Jednocześnie pamiętaj, że nazwy i dostępność funkcji zależą od dialektu SQL, więc warto kojarzyć także odpowiedniki w innych DBMS.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Oznacza to, że funkcję można wywołać bez przekazywania wartości w nawiasach. Taka funkcja zwraca wynik "sama z siebie", np. na podstawie czasu systemowego lub kontekstu sesji. W praktyce zapis wygląda jak NOW() lub podobnie, bez dodatkowych parametrów.
NOW() zwraca aktualną datę i czas. Ponieważ źródłem danych jest zegar systemu/serwera bazy, użytkownik nie musi przekazywać wejścia. W wielu DBMS można ją wywołać bez parametrów w SELECT, w warunkach WHERE lub jako wartość wstawianą do kolumny.
Zwykle nie, ponieważ YEAR() ma wydobyć rok z konkretnej daty/czasu. Musi więc dostać argument: kolumnę typu data/czas albo wartość daty. Jeśli chcesz rok bieżący, najpierw pobierasz bieżący czas (np. NOW()), a dopiero potem wyciągasz rok z tej wartości.
Najprościej kierować się znaczeniem funkcji: jeśli coś "przerabia" tekst lub datę (zamiana na wielkie litery, długość, wyciągnięcie roku), potrzebuje danych wejściowych. Funkcje "źródłowe" (np. zwracające bieżący czas) często nie wymagają parametrów. Ostatecznie potwierdza to dokumentacja DBMS.
Do typowych funkcji tekstowych należą m.in. UPPER() (zamiana na wielkie litery) oraz LEN()/LENGTH() (długość tekstu). One prawie zawsze wymagają wskazania tekstu lub kolumny, bo muszą wiedzieć, na jakim łańcuchu znaków mają wykonać operację.
Nie. SQL ma różne dialekty, więc nazwy i szczegóły funkcji mogą się różnić między DBMS. Przykładowo w części systemów spotkasz LEN(), a w innych LENGTH(); podobnie różnią się funkcje daty i czasu. Na egzaminie warto zwracać uwagę na kontekst używanego systemu.
Zależy od DBMS. Często używa się NOW() albo CURRENT_TIMESTAMP. Najpierw wybierz funkcję właściwą dla danej bazy, a potem używaj jej w SELECT/INSERT/UPDATE. W projektach webowych istotne jest też, czy czas ma pochodzić z serwera aplikacji czy z serwera bazy.
Najczęściej przy zapisie zdarzeń: data utworzenia konta, czas złożenia zamówienia, logowanie, rejestracja wpisu w dzienniku zdarzeń. NOW() pozwala nadać znacznik czasu bez obliczeń po stronie aplikacji i zapewnia spójność czasu w obrębie bazy danych.
Typowe błędy to pomijanie wymaganego argumentu (np. UPPER() bez tekstu), mylenie nazw funkcji między dialektami oraz zakładanie, że "podobnie brzmiąca" funkcja działa tak samo w każdej bazie. Pomaga nawyk sprawdzania składni w dokumentacji i testowania krótkich zapytań.
Utrwal podstawowe grupy funkcji: tekstowe, daty/czasu, liczbowe oraz agregujące. Ćwicz krótkie zapytania SELECT z funkcjami na przykładowej tabeli. Dodatkowo zapamiętaj, że funkcje "transformujące" zwykle biorą argument, a funkcje zwracające bieżący czas często można wywołać bez parametrów.
info

Statystycznie 73% uczniów zna prawidłową odpowiedź. średnio łatwe

Eksperci podkreślają: "Funkcja NOW() zwraca bieżącą datę i czas systemowy i standardowo wywołuje się ją bez parametrów."

Źródła:

  • 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 (dostęp: 2026-03-02)
  • PostgreSQL Documentation: 9.9 Date/Time Functions and Operators – now(), https://www.postgresql.org/docs/current/functions-datetime.html (dostęp: 2026-03-02)
  • Microsoft Learn: T-SQL String functions – LEN (opis wymaga argumentu wyrażenia), https://learn.microsoft.com/en-us/sql/t-sql/functions/len-transact-sql (dostęp: 2026-03-02)

Materiały:

  • Dokumentacja używanego systemu DBMS: sekcja funkcji daty/czasu oraz funkcji tekstowych
  • Materiały kursowe z SQL dla aplikacji webowych (SELECT, funkcje skalarne)
  • Ćwiczenia praktyczne: pisanie zapytań używających funkcji NOW/YEAR/UPPER/LEN na przykładowych tabelach

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego