Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 8 czerwca 2026 20:37
  • Data zakończenia: 8 czerwca 2026 20:59

Egzamin zdany!

Wynik: 28/40 punktów (70,0%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Które dane zostaną wybrane w wyniku działania kwerendy na przedstawionych rekordach?

SELECT id FROM samochody WHERE rocznik LIKE "2%4";
idmarkamodelrocznik
1FiatPunto2016
2FiatPunto2002
3FiatPunto2007
4OpelCorsa2016
5OpelAstra2003
6ToyotaCorolla2016
7ToyotaCorolla2014
8ToyotaYaris2004
A. Brak danych.
B. Identyfikatory równe 7 oraz 8.
C. Wszystkie identyfikatory.
D. Tylko identyfikator równy 8.
Prawidłowa odpowiedź wskazuje, że w wyniku działania kwerendy zostaną wybrane rekordy z id równymi 7 oraz 8, ponieważ oba te roczniki zaczynają się cyfrą 2 i kończą na 4, co spełnia warunek LIKE '2%4'. W SQL operator LIKE umożliwia wyszukiwanie wzorców w danych tekstowych i jest bardzo użyteczny w sytuacjach, gdy nieznana jest pełna wartość, a tylko jej część. W praktycznych aplikacjach, takich jak systemy zarządzania bazami danych, często stosuje się ten operator do filtrowania wyników na podstawie niepełnych informacji. Na przykład, jeżeli chciałbyś zidentyfikować wszystkie pojazdy z określonym rocznikiem, użycie LIKE może szybko zawęzić wyniki. Używanie tego operatora w połączeniu z innymi funkcjami SQL, jak GROUP BY czy JOIN, pozwala na kompozycję bardziej złożonych zapytań, co jest standardem w analityce danych.

Pytanie 2

Który zestaw pojęć opisuje interfejs użytkownika strony internetowej?

A. szkic strony, diagram witryny, diagram przepływu informacji
B. obróbka danych, system zarządzania treścią, projektowanie informacji
C. przyciski, menu, interakcja użytkownika z aplikacją
D. wysyłanie zapytań do bazy, skrypty PHP
Interfejs użytkownika (UI - User Interface) to wszystko, przez co użytkownik komunikuje się ze stroną lub aplikacją: przyciski, menu, formularze, ikony, pola tekstowe oraz reakcje na jego działania (interakcja). Jego zadaniem jest sprawić, by obsługa była czytelna i wygodna. To warstwa widoczna w przeglądarce (front-end), w odróżnieniu od logiki serwerowej i baz danych. Dlatego interfejs użytkownika opisują przyciski, menu i interakcja z aplikacją.

Pytanie 3

Po zrealizowaniu polecenia użytkownik Jacek będzie miał możliwość

GRANT SELECT, INSERT ON baza1.mojaTabela TO 'Jacek'@'localhost';
A. modyfikować strukturę tabeli oraz dodawać nowe dane
B. usuwać tabelę i zakładać nową
C. przeglądać dane w tabeli i wstawiać nowe dane
D. usuwać rekordy z tabeli i przeglądać informacje
Polecenie GRANT SELECT, INSERT ON baza1.mojaTabela TO 'Jacek'@'localhost'; przyznaje użytkownikowi Jacek uprawnienia do przeglądania danych (SELECT) oraz wstawiania nowych danych (INSERT) do tabeli mojaTabela w bazie danych baza1. To oznacza, że Jacek nie ma możliwości usuwania tabeli ani zmiany jej struktury, co jest zarezerwowane dla uprawnień takich jak ALTER czy DROP. Zastosowanie tych uprawnień jest kluczowe w kontekście bezpieczeństwa i zarządzania danymi, ponieważ pozwala na kontrolowanie, kto może wykonywać określone operacje w bazie danych. Przykładem praktycznego zastosowania może być sytuacja, w której zespół programistów musi umożliwić pracownikom działu sprzedaży dostęp do danych klientów w tabeli, ale jednocześnie chce zapobiec przypadkowemu usunięciu lub modyfikacji struktury tabeli. W ten sposób, przyznając tylko uprawnienia SELECT i INSERT, administracja bazy danych może zapewnić odpowiedni poziom kontroli nad danymi, co jest zgodne z najlepszymi praktykami w zakresie zarządzania danymi i zabezpieczeń.

Pytanie 4

W CSS określono styl dla pola do edycji, które będzie miało tło w kolorze jasnozielonym po aktywacji.

input:focus { background-color: LightGreen; }
A. w każdej sytuacji
B. jeśli zostanie na nie najechane kursorem bez kliknięcia
C. gdy jest to pierwsze użycie tego elementu w dokumencie
D. po kliknięciu myszką w celu wprowadzenia tekstu
Odpowiedź "po kliknięciu myszą w celu zapisania w nim tekstu" jest poprawna, ponieważ reguła CSS `input:focus { background-color: LightGreen; }` definiuje styl, który ma zastosowanie, gdy pole edycyjne (input) jest w stanie "focus". Stan ten jest aktywowany, gdy użytkownik klika na pole, co pozwala na wpisywanie tekstu. To podejście jest zgodne z zasadami dostępności i użyteczności interfejsów, ułatwiając użytkownikom interakcję z formularzami. Przykładowo, w formularzach online, takie wizualne wskazanie na aktywne pole poprawia doświadczenie użytkownika, zwiększa czytelność oraz umożliwia łatwiejsze wprowadzanie danych. Warto również pamiętać, że dobrym standardem jest stosowanie kolorów tła, które są kontrastowe w stosunku do kolorów tekstu, aby zapewnić ich czytelność. Ponadto, w praktyce developerskiej, często wykorzystuje się dodatkowe efekty, takie jak animacje, które mogą poprawić interaktywność i wyrazistość reakcji na działania użytkownika. Właściwe stosowanie stylów CSS w kontekście stanu focus jest więc kluczowe dla tworzenia przyjaznych dla użytkownika interfejsów.

Pytanie 5

Co powinien umożliwiać edytor działający w trybie WYSIWYG?

A. publikację strony przez wbudowany klient FTP
B. uzyskanie wyglądu strony zbliżonego do jej obrazu w przeglądarce
C. tworzenie podstawowej grafiki wektorowej
D. obróbkę plików dźwiękowych
WYSIWYG dotyczy edycji z podglądem wyglądu, a nie innych funkcji. Tworzenie grafiki wektorowej, klient FTP do publikacji czy obróbka dźwięku to osobne narzędzia. Istotą WYSIWYG jest uzyskanie wyglądu zbliżonego do obrazu strony w przeglądarce.

Pytanie 6

Który program przekłada kod źródłowy na język maszynowy (komputera)?

A. debugger
B. kompilator
C. środowisko programistyczne
D. edytor kodu źródłowego
Kompilator tłumaczy cały kod źródłowy na język MASZYNOWY (kod wynikowy), który komputer może wykonać. Dlatego tym programem jest kompilator.

Pytanie 7

W CSS zapis

a[target="_blank"] {color: yellow;}
spowoduje, że tekst linków przybierze kolor żółty.
A. linków, które otwierają się w nowej karcie.
B. treści akapitu.
C. wszystkich linków.
D. linków, które otwierają się w tej samej karcie.
Odpowiedź 'odnośników, które otwierają się w osobnej karcie' jest poprawna, ponieważ w CSS selektor 'a[target="_blank"]' odnosi się do elementów <a> (odnośników), które mają atrybut 'target' ustawiony na '_blank'. Oznacza to, że te odnośniki są zaprojektowane do otwierania linków w nowej karcie lub oknie przeglądarki. Przykład zastosowania: jeśli tworzymy stronę internetową z odnośnikami do zewnętrznych zasobów, użycie atrybutu 'target="_blank"' pozwala użytkownikom na zachowanie otwartej strony w przeglądarce. W CSS, kolor czcionki tych odnośników został ustawiony na żółty, co jest praktycznym podejściem do wyróżnienia ich w stosunku do innych linków. Warto również zauważyć, że stosowanie kolorów w kontekście dostępności jest istotne, dlatego dobór kolorów powinien być przemyślany, aby nie wpłynąć negatywnie na czytelność. Dobre praktyki obejmują również dodanie wskazówki do odnośnika, na przykład poprzez użycie atrybutu 'title', co jeszcze bardziej ułatwia użytkownikom zrozumienie, czego mogą się spodziewać po kliknięciu w link.

Pytanie 8

Określ rodzaj powiązania pomiędzy tabelami: Tabela1 oraz Tabela3

Ilustracja do pytania
A. Wiele do jednego
B. Wiele do wielu
C. Jeden do jednego
D. Jeden do wielu
Zrozumienie typów relacji w bazach danych jest kluczowym aspektem projektowania efektywnych i zrównoważonych systemów informatycznych. Jednym z najczęstszych błędów jest mylenie relacji wiele do wielu z innymi rodzajami relacji, takimi jak jeden do wielu lub jeden do jednego. Relacja jeden do wielu oznacza, że jeden rekord w jednej tabeli jest powiązany z wieloma rekordami w innej tabeli, co w przypadku Tabela1 i Tabela3 nie jest stosowne, ponieważ wymagałoby to bezpośredniego połączenia między tymi tabelami bez użycia tabeli pośredniej. Z kolei relacja jeden do jednego implikuje, że każdy rekord w jednej tabeli odpowiada dokładnie jednemu rekordowi w drugiej tabeli, co ogranicza elastyczność danych i nie pasuje do struktur gdzie występuje wiele powiązań, jak w przypadku szkół, gdzie wielu uczniów może mieć zajęcia z tym samym nauczycielem. Wreszcie, relacja wiele do jednego jest odwrotnością relacji jeden do wielu, gdzie wiele rekordów w jednej tabeli odpowiada jednemu rekordowi w drugiej tabeli, co również nie znajduje odzwierciedlenia w przedstawionym schemacie, jako że nie opisuje wzajemnych powiązań uczniów i nauczycieli. Zrozumienie i prawidłowe zastosowanie relacji wiele do wielu eliminuje redundancję danych i umożliwia efektywne przechowywanie oraz przetwarzanie informacji w systemach zarządzania bazami danych. Kluczem do sukcesu jest tutaj wykorzystanie tabel pośrednich do prawidłowego mapowania powiązań między tabelami, co jest standardem w dobrych praktykach projektowania baz danych.

Pytanie 9

W podanym fragmencie zapytania w języku SQL, komenda SELECT jest używana do zwrócenia SELECT COUNT(wartosc) FROM …

A. ilości wierszy
B. średniej wartości z tabeli
C. summy w kolumnie wartosc
D. średniej w kolumnie wartosc
No, trochę jest tu pomyłka. Ludzie często mylą to zapytanie SELECT COUNT(wartosc) z sumowaniem wartości, co nie jest do końca poprawne. Funkcja COUNT nie sumuje wartości, ona tylko liczy, ile jest niepustych wierszy. Więc jeżeli ktoś twierdzi, że to daje średnią, to wprowadza w błąd – średnią liczymy z pomocą funkcji AVG, a nie COUNT. W kolumnie 'wartosc' mogą być różne liczby, a suma wartości nie ma wiele wspólnego z tym, ile jest wierszy. Dobrze jest pamiętać, że średnia to coś innego niż liczba wierszy, co jest ważne do zrozumienia, jak działają zapytania w SQL. Jeśli ktoś myli te funkcje, to może się zgubić w analizie danych. Więc ogólnie mówiąc, warto wiedzieć, czym różnią się COUNT, AVG i inne funkcje agregujące, bo to kluczowe do ogarnięcia pracy z bazami danych.

Pytanie 10

Aby wykonać kopię zapasową bazy danych na serwerze MS SQL, należy użyć polecenia:

A.
BACKUP DATABASE
B.
EXPORT DATABASE
C.
SAVE DATABASE
D.
UNBACKUP DATABASE
Pozostałe odpowiedzi nie tworzą kopii. EXPORT DATABASE, SAVE DATABASE i UNBACKUP DATABASE brzmią sensownie, ale w MS SQL takich poleceń nie ma - serwer odrzuciłby je jako błąd składni. Tworzenie kopii zapasowej to zadanie BACKUP DATABASE, a jej późniejsze odtwarzanie - RESTORE DATABASE. Do samego wykonania kopii właściwe jest więc BACKUP DATABASE.

Pytanie 11

Jak nazywa się proces przedstawienia, w formie właściwej dla danego środowiska, informacji zawartych w dokumencie elektronicznym?

A. renderowanie
B. mapowanie
C. teksturowanie
D. rasteryzacja
Renderowanie to proces przekształcenia opisu dokumentu (np. kodu HTML i CSS, modelu 3D czy pliku) w gotową, widoczną postać odpowiednią dla danego środowiska. W przeglądarce silnik renderujący zamienia znaczniki i style w faktyczny obraz strony, układając tekst, kolory i elementy. W grafice 3D renderowanie generuje obraz sceny na podstawie modeli, świateł i materiałów. Dlatego proces przedstawienia informacji z dokumentu we właściwej formie to renderowanie.

Pytanie 12

W tabeli pracownicy utworzono klucz główny typu INTEGER z atrybutami NOT NULL oraz AUTO-INCREMENT. Dodatkowo zdefiniowano pola imie oraz nazwisko. W przypadku użycia przedstawionej w ramce kwerendy SQL wprowadzającej dane, gdzie pominięto pole klucza, w bazie danych MySQL dojdzie do

Ilustracja do pytania
A. zignorowania polecenia, tabela nie ulegnie zmianie
B. wprowadzenia rekordu do tabeli, dla klucza głównego zostanie przypisana wartość NULL
C. błędu związane z nieprawidłową liczbą pól
D. wprowadzenia rekordu do tabeli, dla klucza głównego zostanie przypisana kolejna wartość naturalna
W przypadku bazy danych MySQL, klucz główny zdefiniowany z atrybutem AUTO-INCREMENT pełni ważną funkcję automatycznego przydzielania unikalnych wartości liczbowych dla każdego nowego rekordu. Jest to szczególnie przydatne w dużych bazach danych, gdzie ręczne przypisywanie wartości klucza mogłoby prowadzić do błędów czy konfliktów. W przedstawionym przypadku, query SQL typu INSERT INTO pracownicy (imie, nazwisko) VALUES ('Anna', 'Nowak'); pomija pole klucza głównego. Dzięki zastosowaniu AUTO-INCREMENT, MySQL automatycznie przydzieli nową wartość klucza głównego, która będzie kolejną w sekwencji, zapewniając integralność danych. Tego rodzaju mechanizm jest standardem w zarządzaniu relacyjną bazą danych, co pozwala na efektywne i bezpieczne operowanie danymi bez ryzyka wystąpienia błędów związanych z ręcznym zarządzaniem kluczami. Dobre praktyki sugerują, aby w takich przypadkach polegać na funkcji AUTO-INCREMENT, co nie tylko ułatwia pracę z bazą danych, ale również minimalizuje możliwość wystąpienia duplikatów czy niespójności w danych. To podejście jest szeroko stosowane w branży IT, szczególnie w przypadkach systemów wymagających dużego wolumenu danych.

Pytanie 13

W języku Javascript obiekt typu array służy do przechowywania

A. wielu wartości tylko liczbowych
B. wielu wartości tylko tekstowych
C. wielu wartości różnego rodzaju
D. wielu wartości lub funkcji
Obiekt typu array w języku JavaScript jest niezwykle elastycznym narzędziem, które pozwala na przechowywanie wielu wartości dowolnego typu. Arrays mogą zawierać liczby, stringi, obiekty, a nawet inne tablice, w ramach jednego zbioru. Taka struktura danych jest bardzo przydatna w programowaniu, szczególnie w kontekście pracy z danymi, gdyż umożliwia tworzenie kolekcji o zmiennej długości, które można łatwo przetwarzać. Na przykład, w aplikacjach webowych można wykorzystać tablice do grupowania danych z formularzy lub przechowywania wyników zapytań do bazy danych. Dzięki metody takim jak .push(), .pop() czy .map(), programiści mogą łatwo manipulować danymi w tablicach. Ważnym aspektem jest również to, że tablice są obiektami w JavaScript, co oznacza, że można do nich przypisywać dodatkowe właściwości i metody, zwiększając ich funkcjonalność. Przykładem zaawansowanego zastosowania tablic jest wykorzystanie ich do implementacji algorytmów, takich jak sortowanie czy przeszukiwanie danych. Zgodnie z dokumentacją MDN, tablice w JavaScript są dynamiczne, co oznacza, że ich rozmiar może być dostosowywany w czasie działania programu, co czyni je bardzo wszechstronnym narzędziem w pracy programisty.

Pytanie 14

Rozważ tabelę mieszkań, która zawiera kolumny: adres, metraż, ile_pokoi, standard, status, cena. Wykonanie poniższej kwerendy SQL SELECT spowoduje wyświetlenie:

SELECT metraz, cena FROM mieszkania WHERE ile_pokoi > 3;
A. metraż oraz cena tych mieszkań, które posiadają co najmniej 3 pokoje
B. wszystkie informacje, z wyjątkiem adresu, dotyczące mieszkań z więcej niż 3 pokojami
C. metraż oraz cena tych mieszkań, które mają więcej niż 3 pokoje
D. wszystkie dane mieszkań, które mają co najmniej 3 pokoje
Odpowiedzi, które sugerują, że kwerenda wyświetla wszystkie dane mieszkań z co najmniej 3 pokojami lub wszystkie dane oprócz adresu, są nieprawidłowe z kilku powodów. Przede wszystkim, operator '>' w kwerendzie oznacza, że zapytanie dotyczy jedynie mieszkań z większą liczbą pokoi niż 3, a więc tylko te, które mają 4 lub więcej pokoi będą brane pod uwagę. Odpowiedzi sugerujące, że zwracane są wszystkie dane mieszkań, nie uwzględniają, że kwerenda skupia się wyłącznie na kolumnach metraż i cena, co jest kluczowe w kontekście efektywności i przejrzystości zapytań. W kontekście SQL, wybór określonych kolumn jest bardzo istotny, ponieważ nie tylko zmniejsza objętość przesyłanych danych, ale również ułatwia ich analizę. Niezrozumienie tego aspektu może prowadzić do nieefektywnego korzystania z zasobów bazy danych. Ponadto, stwierdzenie, że kwerenda zwraca wszystkie dane oprócz adresu, jest mylne, ponieważ zapytanie w ogóle nie uwzględnia adresu ani innych informacji, a jedynie metraż i cenę. Tego typu nieprecyzyjne interpretacje mogą zniekształcić obraz tego, jak działa SQL i w jaki sposób można efektywnie zarządzać danymi.

Pytanie 15

W języku PHP uzyskano wyniki kwerend z bazy danych przy użyciu polecenia mysql_query. Aby wydobyć z otrzymanej kwerendy pojedynczy wiersz danych, konieczne jest użycie polecenia

A. mysql_fetch_lengths
B. mysql_field_len
C. mysql_list_fields
D. mysql_fetch_row
Odpowiedź mysql_fetch_row jest poprawna, ponieważ to funkcja, która pozwala na pobranie pojedynczego wiersza danych z zasobu zwróconego przez mysql_query. Zwraca ona tablicę, która zawiera wartości poszczególnych pól w wierszu, co umożliwia ich dalsze przetwarzanie. Dzięki tej funkcji programista może łatwo iterować przez wyniki kwerendy, co jest kluczowe w przypadku przetwarzania danych z baz danych. Na przykład, po wykonaniu kwerendy SELECT, można użyć pętli while, aby pobierać kolejne wiersze danych i je wyświetlać. Dobrą praktyką jest również sprawdzenie, czy zasób kwerendy jest poprawny przed użyciem tej funkcji, co pozwoli uniknąć błędów w czasie wykonywania skryptu. Warto dodać, że w nowszych wersjach PHP zaleca się korzystanie z rozszerzenia mysqli lub PDO, które oferują bardziej zaawansowane możliwości i większe bezpieczeństwo przy pracy z bazami danych.

Pytanie 16

Definicja stylu zaprezentowana w CSS odnosi się do odsyłacza, który

a:visited {color: orange;}
A. został wcześniej odwiedzony
B. jeszcze nie był odwiedzony
C. posiada błędny adres URL
D. wskaźnik myszy znajduje się nad nim
Odpowiedź "został wcześniej odwiedzony" jest prawidłowa, ponieważ definicja stylu CSS `a:visited {color: orange;}` dotyczy odsyłaczy, które zostały już odwiedzone przez użytkownika. W CSS pseudo-klasa `:visited` jest stosowana do stylizacji odsyłaczy, które prowadzą do stron, które użytkownik już otworzył. Dzięki tej możliwości, twórcy stron internetowych mogą wprowadzać różne kolory dla odwiedzonych i nieodwiedzonych linków, co pozwala na szybszą orientację użytkowników w treści strony. Na przykład, jeżeli na stronie znajduje się wiele linków, użytkownik może łatwiej zrozumieć, które z nich już kliknął, a które są nowe. Dobrą praktyką jest stosowanie kontrastowych kolorów dla odsyłaczy, aby zwiększyć ich dostępność i użyteczność. Warto również zauważyć, że przeglądarki mogą mieć różne ograniczenia dotyczące stylizacji odwiedzonych linków, co jest podyktowane względami prywatności użytkowników. Z tego powodu zaleca się, aby nie opierać funkcjonalności strony jedynie na wyglądzie odwiedzonych linków.

Pytanie 17

Kod źródłowy przedstawiony poniżej ma na celu wyświetlenie

Ilustracja do pytania
A. losowych liczb od 0 do 100, aż do wylosowania wartości 0
B. ciągu liczb od 1 do 100
C. wylosowanych liczb z zakresu od 1 do 99
D. liczb wprowadzonych z klawiatury, aż do momentu wprowadzenia wartości 0
Kod źródłowy przedstawiony w pytaniu inicjuje losowanie liczb w przedziale od 0 do 100 i wyświetla je na ekranie aż do momentu wylosowania liczby 0. Taki sposób działania jest możliwy dzięki zastosowaniu pętli while która wykonuje się dopóki warunek w niej zawarty jest spełniony. W tym przypadku warunek ten to różność zmiennej liczba od zera. Funkcja rand(0 100) generuje losowe liczby całkowite z zadanego przedziału. W momencie wylosowania wartości 0 pętla przestaje się wykonywać co skutkuje zakończeniem procesu wyświetlania liczb na ekranie. Tego typu pętle są często używane w programowaniu do tworzenia losowych zdarzeń np. w grach komputerowych gdzie potrzebne jest dynamiczne generowanie wartości. Warto zwrócić uwagę na to że funkcja rand jest standardową funkcją w wielu językach programowania pozwalającą na generowanie losowych liczb co jest przydatne w testowaniu algorytmów w różnych warunkach. Praktyka ta wspomaga proces nauki i doskonalenia umiejętności programistycznych dzięki możliwości symulacji losowych scenariuszy.

Pytanie 18

Na ilustracji przedstawiono rezultat stosowania stylów CSS oraz odpowiadający mu kod HTML, który generuje ten przykład. Przyjmując, że marginesy wewnętrzne mają wartość 50 px, natomiast zewnętrzne wynoszą 20 px, styl CSS dla tego obrazu wygląda następująco

Ilustracja do pytania
A. Odpowiedź C
B. Odpowiedź B
C. Odpowiedź A
D. Odpowiedź D
W niepoprawnych odpowiedziach pojawiają się pewne niedociągnięcia, które mogą prowadzić do nieodpowiedniego wyświetlania elementów na stronie. Przykładowo, ustawienie marginesów i paddingów w nieodpowiedni sposób zmienia przestrzenność wokół obrazu, co może wpłynąć na jego rozmieszczenie i estetykę na stronie. Wybór nieodpowiedniego stylu obramowania, jak np. linia przerywana zamiast solidnej, może znacząco wpłynąć na odbiór wizualny i profesjonalizm projektu. Takie aspekty mogą być istotne w przypadku projektowania stron dla branż, które kładą nacisk na elegancję i prostotę. Ponadto, niespójne użycie kolorów tła i ramki może wprowadzać wizualny chaos, co jest przeciwieństwem dobrych praktyk projektowych. Edukując się z zakresu CSS warto zwrócić uwagę na to, jak różne właściwości stylów interakcji wpływają na ogólną harmonię projektu. Uwzględnianie wszelkich standardów i konwencji pozwala na tworzenie stron internetowych, które nie tylko będą estetyczne, ale również funkcjonalne i zgodne z oczekiwaniami użytkowników.

Pytanie 19

Wskaż styl CSS za pomocą którego został uzyskany przedstawiony efekt.

  • psy
  • koty
  • chomiki
  • świnki morskie
  • rybki
A. ul li:hover { background-color: DodgerBlue; }
B. ul li:nth-child(even) { background-color: DodgerBlue; }
C. ul li:nth-child(odd) { background-color: DodgerBlue; }
D. ul li:active { background-color: DodgerBlue; }
Dokładnie tak, poprawna odpowiedź to 'ul li:nth-child(even) { background-color: DodgerBlue; }'. Użycie selektora :nth-child(even) pozwala na zastosowanie stylu CSS do każdego parzystego elementu listy, co można zaobserwować na załączonym obrazku - każdy drugi (parzysty) element ma niebieskie tło. Jest to praktyczne rozwiązanie stosowane m.in. w celu poprawy czytelności długich list danych, gdzie koloryzmowanie na przemian pozwala na łatwiejsze zlokalizowanie poszczególnych elementów. Pamiętaj, że CSS oferuje wiele innych pseudoklas pozwalających na zastosowanie różnych efektów w zależności od stanu lub położenia elementu na stronie. Przy wykorzystaniu pseudoklas CSS warto odwoływać się do standardów i dobrych praktyk branżowych, takich jak unikanie nadmiernego zagnieżdżania selektorów, co może utrudniać czytelność i utrzymanie kodu.

Pytanie 20

Co powinno znaleźć się w KAŻDEJ tabeli, aby baza działała poprawnie i spójnie?

A. klucze PRIMARY KEY i FOREIGN KEY
B. klucz FOREIGN KEY z NOT NULL
C. klucz obcy z NOT NULL i UNIQUE
D. klucz PRIMARY KEY (unikalny i niepusty)
Każda tabela powinna mieć klucz główny (PRIMARY KEY) - pole o wartościach UNIKALNYCH i NIEPUSTYCH, które jednoznacznie identyfikuje każdy wiersz. Bez niego trudno odróżnić rekordy i utrzymać spójność. Dlatego w każdej tabeli potrzebny jest klucz główny.

Pytanie 21

W stylu CSS ustalono obramowanie pojedyncze, które ma następujące kolory dla krawędzi:

border: solid 1px; border-color: red blue green yellow;
A. górna – czerwona, prawa – niebieska, dolna – zielona, lewa – żółta
B. lewa – czerwona, dolna – niebieska, prawa – zielona, górna – żółta
C. prawa – czerwona, dolna – niebieska, lewa – zielona, górna – żółta
D. górna – czerwona, lewa – niebieska, dolna – zielona, prawa – żółta
Definicja obramowania za pomocą stylu CSS z użyciem właściwości border-color pozwala na określenie kolorów każdej z krawędzi elementu w kolejności zgodnej ze wskazówkami zegara. Gdy podano cztery wartości jak w border-color: red blue green yellow; oznaczają one odpowiednio kolory krawędzi górnej prawej dolnej i lewej. Właściwość border: solid 1px; definiuje typ obramowania jako solidne i jego szerokość jako 1px. Warto zaznaczyć że podanie czterech wartości kolorów w border-color jest zgodne z zasadami CSS i umożliwia konfigurowanie wyglądu elementów w sposób szczegółowy i zindywidualizowany. Projektanci stron internetowych często używają tej techniki do tworzenia graficznych stylów które zwiększają czytelność i estetykę witryny. W praktyce wiedza o manipulacji stylem obramowania w CSS jest kluczowa dla tworzenia responsywnych i wizualnie atrakcyjnych interfejsów użytkownika. Takie podejście wspiera zachowanie spójności wizualnej co jest jedną z dobrych praktyk w projektowaniu front-endu.

Pytanie 22

Jaką rozdzielczość należy przyjąć, aby uzyskać proporcje obrazu 16:9, zakładając, że piksel ma formę kwadratu?

A. 1366 na 768 pikseli
B. 800 na 480 pikseli
C. 320 na 240 pikseli
D. 2560 na 2048 pikseli
Proporcje obrazu 16:9 są standardem szerokokątnym, powszechnie stosowanym w telewizji, filmach oraz w grach komputerowych. Przy rozdzielczości 1366 na 768 pikseli, stosunek szerokości do wysokości wynosi 16 do 9, co oznacza, że dla każdego 16 pikseli szerokości przypada 9 pikseli wysokości. Technicznie, aby obliczyć proporcje obrazu, należy podzielić szerokość przez wysokość. W tym przypadku 1366/768 daje wartość równą około 1.77, co odpowiada proporcji 16:9. Takie rozdzielczości są często używane w laptopach oraz monitorach HD, co czyni je idealnym wyborem do zastosowań multimedialnych. Standard 16:9 stał się powszechnie akceptowanym formatem, co wpływa na kompatybilność treści wizualnych, umożliwiając ich odpowiednie wyświetlanie na różnych urządzeniach. Użycie tej rozdzielczości zapewnia również lepszą jakość obrazu w porównaniu z niższymi rozdzielczościami, co jest kluczowe w kontekście nowoczesnych technologii wyświetlania.

Pytanie 23

W tabeli mieszkancy znajdują się dane o osobach z całej Polski. Aby zliczyć, ile różnych miast jest zawartych w tej tabeli, należy wykonać kwerendę

A. SELECT DISTINCT miasto FROM mieszkancy;
B. SELECT COUNT(DISTINCT miasto) FROM mieszkancy;
C. SELECT COUNT(miasto) FROM mieszkancy;
D. SELECT COUNT(miasto) FROM mieszkancy DISTINCT;
Wybrana kwerenda SELECT COUNT(DISTINCT miasto) FROM mieszkancy; jest poprawna, ponieważ pozwala na zliczenie unikalnych miast w tabeli mieszkancy. Funkcja DISTINCT eliminuje duplikaty, co oznacza, że tylko różne wartości miasto będą brane pod uwagę w procesie zliczania. Użycie COUNT w połączeniu z DISTINCT jest standardową praktyką w SQL, która zapewnia dokładne wyniki przy analizie danych. Taka metoda jest szczególnie przydatna w przypadku dużych zbiorów danych, gdzie wiele rekordów może odnosić się do tego samego miasta. Na przykład, jeśli mamy 1000 rekordów, z których 200 dotyczy Warszawy, 300 Krakowa oraz 500 Gdańska, kwerenda zwróci wynik 3, ponieważ tylko trzy różne miasta zostały uwzględnione. Tego typu zapytania są powszechne w raportach analitycznych, gdzie istotne jest zrozumienie dystrybucji danych oraz identyfikacja różnych kategorii w zbiorze, co jest niezbędne dla podejmowania decyzji biznesowych.

Pytanie 24

Jaką klauzulę należy wykorzystać w instrukcji CREATE TABLE w SQL, by dane pole rekordu pozostawało wypełnione?

A. DEFAULT
B. NULL
C. CHECK
D. NOT NULL
Odpowiedzi takie jak DEFAULT i CHECK sugerują nieporozumienia dotyczące funkcji tych klauzul. Klauzula DEFAULT jest używana do określenia wartości domyślnej dla pola, gdy nie została dostarczona żadna wartość. Nie rozwiązuje to problemu pustych danych, ponieważ nadal umożliwia dodawanie rekordów bez wartości, które są ostatecznie zastępowane przez wartość domyślną. Z kolei klauzula CHECK umożliwia wprowadzenie dodatkowych warunków walidacyjnych dla danych, ale nie blokuje możliwości wprowadzenia wartości NULL. Nie jest to zatem odpowiednie rozwiązanie, gdy celem jest zapewnienie, aby pole nigdy nie pozostawało puste. Klauzula NULL, z drugiej strony, nie ma zastosowania w kontekście tego pytania, gdyż definiuje ona, że pole może zawierać wartości NULL. W praktyce takie podejście prowadzi do braku wymuszenia wprowadzania danych, co może być szkodliwe dla integralności bazy danych. Te zrozumienia błędnie wpływają na jakość projektowania baz danych, gdyż niewłaściwe stosowanie klauzul może prowadzić do problemów z danymi, które są trudne do naprawienia w późniejszym etapie rozwoju systemu.

Pytanie 25

Który zapis służy do zdefiniowania klucza obcego w MySQL?

A.
UNIQUE KEY(ID)
B.
PRIMARY KEY(ID)
C.
FOREIGN KEY(ID)
D.
AUTO_INCREMENT(ID)
W MySQL klucz obcy definiuje się zapisem FOREIGN KEY(ID) - wiąże kolumnę z kluczem głównym tabeli nadrzędnej, zapewniając integralność relacji. Dlatego klucz obcy tworzy FOREIGN KEY(ID).

Pytanie 26

Na podstawie filmu wskaż, która cecha dodana do stylu CSS zamieni miejscami bloki aside i nav, pozostawiając w środku blok section?

A. aside {float: left; }
B. nav { float: right; } section { float: right; }
C. nav { float: left; } aside { float: left; }
D. nav { float: right; }
W tym zadaniu kluczowe jest zrozumienie, jak naprawdę działa float, a nie tylko samo skojarzenie, że „left to lewo, right to prawo”. Wiele osób myśli, że wystarczy ustawić jeden element na lewo, drugi na prawo i wszystko magicznie się poukłada. W praktyce przeglądarka trzyma się bardzo konkretnych reguł: najpierw liczy kolejność elementów w HTML, potem dopiero stosuje float i układa je możliwie jak najwyżej i jak najbliżej odpowiedniej krawędzi.

Jeśli nada się float tylko dla aside albo tylko dla nav, to zmienia się ich pozycja, ale układ trzech bloków nie spełni warunku z zadania: aside i nav nie zamienią się miejscami z pozostawieniem section w środku. Przykładowo, samo float: left na aside niczego nie „zamieni”, bo element i tak pojawia się jako pierwszy w kodzie, więc będzie u góry, tylko że „przyklejony” do lewej. Z kolei ustawienie nav na prawą stronę bez odpowiedniego floatowania section prowadzi do sytuacji, gdzie section nadal zachowuje się jak normalny blok, zwykle ląduje pod elementami pływającymi albo obok nich w sposób mało przewidywalny dla początkującego.

Częsty błąd myślowy polega też na tym, że ktoś próbuje wszystkim elementom dać float: left, licząc na to, że przeglądarka „ułoży je po swojemu”. Wtedy jednak wszystkie te bloki ustawiają się w jednym kierunku, w kolejności z HTML, więc nie ma mowy o świadomym „zamienianiu miejsc”. Brak zrozumienia, że float wyjmuje element z normalnego przepływu i wpływa na to, jak kolejne elementy zawijają się wokół niego, prowadzi właśnie do takich błędnych odpowiedzi. Z mojego doświadczenia lepiej jest najpierw narysować sobie prosty schemat: w jakiej kolejności idą znaczniki i które z nich mają pływać w prawo, a które zostać w naturalnym układzie. Dopiero wtedy dobiera się konkretne deklaracje CSS. Takie myślenie przydaje się nie tylko przy float, ale też przy nauce flexboxa czy grida, gdzie kolejność w DOM i własności układu też grają ogromną rolę.

Pytanie 27

Która kwerenda ustawi wartość 0 w kolumnie przebieg tabeli samochody?

A.
UPDATE samochody SET przebieg = 0;
B.
UPDATE przebieg SET 0 TABLE samochody;
C.
UPDATE samochody SET przebieg VALUE 0;
D.
UPDATE przebieg SET 0 FROM samochody;
Zmianę wartości w kolumnie wykonuje UPDATE tabela SET kolumna = wartość, więc wyzerowanie przebiegu to UPDATE samochody SET przebieg = 0; (bez WHERE obejmie wszystkie wiersze). Dlatego ta kwerenda jest poprawna.

Pytanie 28

W JavaScript wynik operacji przyjmie wartość NaN, gdy skrypt próbował wykonać:

A. sprawdzenie długości napisu, gdy zmienna była liczbą
B. operację arytmetyczną, gdy zmienna była napisem (nieliczbowym)
C. operację arytmetyczną na dwóch dodatnich liczbach
D. funkcję parseFloat zamiast parseInt na liczbie
Wartość NaN (Not a Number) to specjalny wynik oznaczający „to nie jest liczba”. Pojawia się, gdy JavaScript próbuje wykonać DZIAŁANIE ARYTMETYCZNE na czymś, czego nie da się zamienić na liczbę - np. "abc" * 2 albo parseInt("kot"). Co ważne, NaN jest „zaraźliwy”: każde kolejne działanie z jego udziałem też da NaN. Stąd nawyk sprawdzania danych z formularzy funkcją isNaN() przed liczeniem. Zapamiętaj: arytmetyka na nieliczbowym napisie = NaN.

Pytanie 29

Który obiekt bazy danych z graficznym interfejsem służy do wprowadzania danych?

A. encja
B. raport
C. kwerenda
D. formularz
Formularz to obiekt bazy danych z graficznym interfejsem, który ułatwia WPROWADZANIE i edycję danych - zamiast wpisywać je wprost do tabeli, użytkownik korzysta z czytelnych pól. Dlatego do wprowadzania danych służy formularz.

Pytanie 30

Aby podczas tworzenia tabeli zdefiniować klucz obcy na wielu kolumnach, należy użyć zapisu:

A.
CONSTRAINT fk_osoba_uczen FOREIGN KEY(nazwisko, imie) REFERENCES osoby (nazwisko, imie)
B.
CONSTRAINT fk_osoba_uczen FOREIGN KEY ON(nazwisko, imie) REFERENCES osoby (nazwisko, imie)
C.
CONSTRAINT (nazwisko, imie) FOREIGN REFERENCES KEY osoby (nazwisko, imie)
D.
CONSTRAINT (nazwisko, imie) FOREIGN KEY REFERENCES osoby (nazwisko, imie)
Pozostałe zapisy łamią składnię definicji klucza obcego. W dwóch brakuje listy kolumn zaraz po FOREIGN KEY albo przestawiono słowa kluczowe (FOREIGN REFERENCES KEY zamiast FOREIGN KEY ... REFERENCES) - serwer odrzuci je jako błąd. W jeszcze innym po FOREIGN KEY dopisano zbędne ON, którego w tej konstrukcji nie ma. Prawidłowy wielokolumnowy klucz obcy to CONSTRAINT nazwa FOREIGN KEY(kolumny) REFERENCES tabela(kolumny), dlatego to ten zapis jest poprawny.

Pytanie 31

W kontekście PGP zmienna $_GET jest zmienną

A. predefiniowaną, stosowaną do przesyłania informacji do skryptów PHP poprzez adres URL
B. zwykłą, stworzoną przez autora strony
C. zdefiniowaną przez autora strony, wykorzystywaną do przesyłania danych z formularzy przez adres URL
D. predefiniowaną, służącą do zbierania wartości z formularzy po nagłówkach zapytań HTTP (dane z formularzy nie są widoczne w URL)
Odpowiedzi dotyczące zmiennej $_GET zawierają szereg nieścisłości, które mogą wprowadzać w błąd. Pierwsza z nich sugeruje, że $_GET jest używana do gromadzenia wartości formularza po nagłówkach zlecenia HTTP. W rzeczywistości, $_GET jest używana do przesyłania danych poprzez adres URL, a nie z nagłówków formularza; to zmienna $_POST odpowiada za przesyłanie danych z formularza, których nie widać w adresie. Druga niepoprawna odpowiedź twierdzi, że $_GET jest zdefiniowana przez twórcę strony. Należy podkreślić, że $_GET jest zmienną predefiniowaną, co oznacza, że jest wbudowana w PHP i nie można jej zmienić ani zdefiniować na nowo. Ostatnia odpowiedź sugeruje, że $_GET jest zwykłą zmienną, co jest nieprecyzyjne, ponieważ zmienne predefiniowane, takie jak $_GET, mają specjalne znaczenie i funkcjonalność w kontekście aplikacji webowych. W związku z tym każda z tych odpowiedzi zawiera błędne zrozumienie roli zmiennej $_GET, co może prowadzić do nieprawidłowego użycia tej zmiennej w praktyce.

Pytanie 32

Aby w skrypcie JavaScript pobrać dane wpisane przez użytkownika, można posłużyć się oknem generowanym przez funkcję:

A.
prompt()
B.
alert()
C.
document.write()
D.
confirm()
Kluczowe jest to, czy dana funkcja faktycznie odbiera tekst od użytkownika, a robi to tylko jedna z nich. alert() wyświetla wyłącznie komunikat z przyciskiem OK - użytkownik może go jedynie przeczytać i zamknąć, więc do pobierania danych się nie nadaje. confirm() pokazuje pytanie z przyciskami OK i Anuluj, ale zwraca tylko wartość logiczną: true po kliknięciu OK lub false po Anuluj - nadaje się do potwierdzeń, nie do wpisywania tekstu. Z kolei document.write() działa w drugą stronę: wypisuje przekazaną treść bezpośrednio do dokumentu HTML, czyli generuje zawartość strony, a nie pozyskuje ją od odwiedzającego. Danymi wpisanymi przez człowieka zajmuje się prompt(), która wyświetla okno z polem tekstowym i zwraca wpisany ciąg znaków - dlatego to ona jest tu poprawną odpowiedzią.

Pytanie 33

Plik cookie utworzony przedstawionym poleceniem PHP:

setcookie("osoba", "Anna Kowalska", time() + (3600 * 24));
A. wygaśnie po jednej godzinie od jego utworzenia.
B. będzie przechowywany na serwerze przez jedną godzinę.
C. będzie przechowywany na serwerze przez jedną dobę.
D. wygaśnie po jednej dobie od jego utworzenia.
Kod z funkcją setcookie() w PHP bardzo często myli się z mechanizmami przechowywania danych po stronie serwera, dlatego łatwo tu o błędne skojarzenia. W tym przykładzie kluczowe są dwie rzeczy: po pierwsze, gdzie fizycznie przechowywane jest cookie, a po drugie, w jakiej jednostce podajemy czas. Ciasteczka HTTP są zawsze przechowywane po stronie klienta, czyli w przeglądarce użytkownika, w jej lokalnym magazynie. Serwer jedynie informuje przeglądarkę, jaki ma być czas życia takiego wpisu, wysyłając odpowiedni nagłówek Set-Cookie z datą wygaśnięcia. Stąd pomysł, że cookie „będzie przechowywane na serwerze” jest po prostu nietrafiony – serwer nie ma osobnego magazynu na ciasteczka użytkowników, on tylko je odczytuje z nagłówków przychodzących żądań i ewentualnie ustawia nowe. Druga częsta pomyłka dotyczy samego czasu. Funkcja time() zwraca aktualny timestamp w sekundach od 1.01.1970, a w wyrażeniu 3600 * 24 wyliczana jest liczba sekund w jednej dobie. Jeśli ktoś pobieżnie spojrzy na zapis, może skojarzyć 3600 z godziną i założyć, że cookie jest ważne tylko godzinę, ignorując mnożenie przez 24. To typowy błąd „czytania po łebkach” kodu. Tymczasem przeglądarka dostaje konkretny moment w przyszłości, przesunięty o 86400 sekund, i do tej chwili będzie wysyłać cookie przy każdym żądaniu do odpowiedniej domeny i ścieżki. Warto też pamiętać, że samo istnienie cookie nie oznacza trwałego przechowywania danych po stronie serwera. Dane z ciasteczka trafiają na serwer dopiero, gdy przeglądarka wyśle je w nagłówku HTTP. Dlatego planując logikę aplikacji, trzeba jasno rozróżniać dane sesyjne na serwerze (np. w $_SESSION) od danych w cookie, które użytkownik może modyfikować po swojej stronie i które wygasają dokładnie według tego timestampu, jaki podamy w setcookie().

Pytanie 34

Jaką instrukcją można zastąpić poniższy kod JavaScript, pełniącą tę samą funkcję?

for (i = 0; i < 100; i += 10)
  document.write(i + ' ');
while (i < 10) {
  document.write(i + ' ');
  i += 10;
}

Kod 1.
while (i < 100) {
  document.write(i + ' ');
}

Kod 2.
i = 0;
while (i < 100) {
  document.write(i + ' ');
  i += 10;
}

Kod 3.
i = 0;
while (i < 10) {
  document.write(i + ' ');
  i++;
}

Kod 4.
A. Kod 3
B. Kod 4
C. Kod 2
D. Kod 1
Odpowiedź Kod 3 jest prawidłowa ponieważ instrukcja while w tej formie jest równoważna z podaną pętlą for. W obu przypadkach pętla inicjuje zmienną i na wartości 0 i zwiększa ją o 10 w każdej iteracji aż do osiągnięcia wartości mniejszej niż 100. Pętla for jest skondensowaną formą pętli while i zapewnia bardziej czytelny zapis gdy wszystkie elementy inicjalizacja warunek i inkrementacja są blisko siebie. Taka konstrukcja jest używana w wielu językach programowania zorientowanych obiektowo takich jak JavaScript czy Java. W praktyce pętle te są używane do iteracji przez listy tablice lub do wykonywania powtarzalnych zadań w kodzie. Dobre praktyki zalecają wybór pętli for gdy zakres iteracji jest znany z góry co poprawia czytelność i utrzymanie kodu. Zrozumienie jak pętla while może być przekształcona w pętlę for i odwrotnie jest podstawową umiejętnością w programowaniu co pozwala na elastyczność w pisaniu kodu i lepsze dostosowanie do specyficznych potrzeb aplikacji.

Pytanie 35

Jaki jest cel procesu normalizacji tabel w bazie danych?

A. graficzne przedstawienie struktury bazy
B. uporządkowanie struktury w celu wyeliminowania nadmiarowości danych
C. dodawanie nowych rekordów do bazy
D. wyłącznie utworzenie tabel i relacji
Normalizacja to proces porządkowania struktury bazy danych tak, by ograniczyć nadmiarowość (powielanie) danych i zapobiec anomaliom przy ich wstawianiu, zmianie czy usuwaniu. Polega na podziale danych między tabele zgodnie z tzw. postaciami normalnymi (1NF, 2NF, 3NF) i powiązaniu ich kluczami. Dzięki temu każda informacja jest przechowywana w jednym miejscu, co ułatwia jej spójną aktualizację. Dlatego celem normalizacji jest uporządkowanie struktury i wyeliminowanie nadmiarowości danych.

Pytanie 36

<?php  
$pi = 3.14;
var_dump($pi);
?>
Jakie będzie wyjście po wykonaniu przedstawionego kodu PHP?
A. float(3.14)
B. int(314)
C. object(3.14)
D. string(3)
Odpowiedź 'float(3.14)' jest poprawna, ponieważ w kodzie PHP zmienna \$pi została zainicjalizowana jako liczba zmiennoprzecinkowa z wartością 3.14. Funkcja var_dump() służy do wyświetlania typu oraz wartości zmiennej, a w przypadku liczby zmiennoprzecinkowej wynik będzie wskazywał na typ float. Warto zauważyć, że PHP automatycznie rozpoznaje typy zmiennych, a liczby zmiennoprzecinkowe są powszechnie używane w obliczeniach wymagających precyzji, takich jak matematyka finansowa czy fizyka. W kontekście programowania w PHP, dobrym zwyczajem jest korzystanie z funkcji var_dump() podczas debugowania kodu, aby mieć jasny obraz typów danych i ich wartości w danym momencie. W praktyce, dobrze jest również implementować typowanie w PHP 7 i nowszych, co umożliwia lepszą kontrolę nad typami zmiennych, co z kolei prowadzi do bardziej stabilnego i czytelnego kodu. Warto także zwrócić uwagę na zasadę, że odpowiednie typy danych są kluczowe dla wydajności i niezawodności aplikacji, co czyni tę wiedzę szczególnie istotną dla każdego programisty."

Pytanie 37

W języku JavaScript zapisano kod, którego wynikiem działania jest?

var osoba=prompt("Podaj imię", "Adam");
A. pokazanie okna z pustym polem do edycji
B. bezpośrednie przypisanie do zmiennej osoba wartości "Adam"
C. uzyskanie z formularza wyświetlonego na stronie HTML imienia "Adam"
D. wyświetlenie okna z polem do edycji, w którym domyślnie znajduje się tekst "Adam"
W kodzie JavaScript zapisano wywołanie funkcji prompt, która jest standardową metodą do interakcji z użytkownikiem poprzez wyświetlenie okna dialogowego. Funkcja ta przyjmuje dwa argumenty: pierwszy to tekst, który będzie wyświetlony jako prośba o dane, a drugi to opcjonalna wartość domyślna, która pojawi się w polu edycyjnym okna dialogowego. W przykładzie użytkownik proszony jest o podanie imienia, a domyślną wartością, która jest predefiniowana w tym przypadku, jest 'Adam'. Działanie tego kodu spowoduje otwarcie okna z polem edycyjnym, w którym już znajduje się 'Adam', co ułatwia użytkownikowi wprowadzenie danych. Ponadto, gdy użytkownik kliknie 'OK' lub 'Anuluj', wynik (czyli wartość wpisana przez użytkownika lub null, jeśli anulował) zostanie przypisany do zmiennej 'osoba'. Warto zaznaczyć, że funkcja prompt jest powszechnie używana w aplikacjach webowych do szybkiego zbierania informacji od użytkowników. Dzięki temu kodowi programiści mogą efektywnie interactować z użytkownikami, co jest zgodne z duchem nowoczesnych aplikacji internetowych opartych na JavaScript.

Pytanie 38

Polecenie MySQL:

ALTER TABLE ksiazki
    MODIFY tytul VARCHAR(100) NOT NULL;
Przedstawione polecenie MySQL ma za zadanie
A. usunąć kolumnę tytul z tabeli ksiazki
B. zmienić typ kolumny tytul w tabeli ksiazki
C. zmienić nazwę kolumny w tabeli ksiazki
D. dodać do tabeli ksiazki kolumnę tytul
Polecenie ALTER TABLE w przedstawionym zapytaniu jest używane do modyfikacji struktury istniejącej tabeli w bazie danych MySQL. W szczególności, zapytanie zmienia typ kolumny 'tytul' w tabeli 'ksiazki' na VARCHAR(100) oraz ustawia ten typ jako NOT NULL, co oznacza, że ta kolumna nie może zawierać wartości NULL. Typ VARCHAR jest typem danych zmiennych o długości, co pozwala na przechowywanie ciągów znaków o zmiennej długości do 100 znaków. Zmiana typu kolumny może być przydatna w sytuacjach, gdy chcemy zmienić sposób przechowywania danych lub dostosować je do nowych wymagań aplikacji. Przykładem może być sytuacja, w której początkowo tytul był przechowywany jako tekst o stałej długości (np. CHAR), ale później zdecydowano, że lepszym rozwiązaniem będzie przechowywanie go jako VARCHAR dla oszczędności miejsca. W kontekście standardów SQL, modyfikacja kolumny zgodnie z definicją standardu SQL jest dopuszczalna, pod warunkiem, że nie narusza ona reguł dotyczących integralności danych i typów. Warto również pamiętać, że zmiana typu kolumny w bazie danych może wymagać migracji danych, co należy uwzględnić w planowaniu zmian.

Pytanie 39

Przedstawione polecenie MySQL ma za zadanie:

ALTER TABLE ksiazki
MODIFY tytul VARCHAR(100) NOT NULL;
A. dodać do tabeli ksiazki kolumnę tytul.
B. zmienić typ kolumny tytul w tabeli ksiazki.
C. zmienić nazwę kolumny w tabeli ksiazki.
D. usunąć kolumnę tytul z tabeli ksiazki.
Dobra robota, Twoja odpowiedź jest właściwa! W poleceniu użyto ALTER TABLE, co to jest ten typowy sposób na modyfikowanie tabel w bazach danych. No i to słowo kluczowe MODIFY wskazuje, że zmieniamy coś w już istniejącej kolumnie. W tym przypadku chodzi o kolumnę 'tytul' w tabeli 'ksiazki', której typ zmieniamy na VARCHAR(100), co znaczy, że teraz może ona mieć teksty do 100 znaków długości. Dodatkowo dodajemy ograniczenie NOT NULL, więc 'tytul' musi być zawsze wypełniony. To normalna rzecz, kiedy na przykład musimy dostosować strukturę danych, gdy na przykład zauważymy, że tytuły książek stają się dłuższe albo musimy mieć pewność, że zawsze są wprowadzone.

Pytanie 40

W bazie danych istnieje tabela ksiazki, która posiada pola: tytul, id_autora, data_wypoz, id_czytelnika. Codziennie tworzony jest raport dotyczący książek wypożyczonych w danym dniu, który wyświetla jedynie tytuły książek. Która kwerenda SQL jest odpowiednia do generowania tego raportu?

A. SELECT tytul FROM ksiazki
B. SELECT * FROM ksiazki
C. SELECT tytul FROM ksiazki WHERE data_wypoz = CURRENT_DATE()
D. SELECT tytul, data_wypoz FROM ksiazki WHERE data_wypoz = CURRDATENT_E()
Ta odpowiedź jest prawidłowa, ponieważ wykorzystuje funkcję CURRENT_DATE(), która zwraca bieżącą datę systemową. Zapytanie SQL SELECT tytul FROM ksiazki WHERE data_wypoz = CURRENT_DATE(); umożliwia wybranie jedynie tych książek, które zostały wypożyczone w dniu, w którym raport jest generowany. To podejście jest zgodne z dobrymi praktykami w zakresie zarządzania danymi, ponieważ pozwala na efektywne filtrowanie danych bez zbędnych informacji. W kontekście bazy danych, operacje takie jak filtrowanie danych według daty są kluczowe dla tworzenia raportów, które są użyteczne i zrozumiałe dla użytkowników. Dzięki temu możemy na przykład generować codzienne zestawienia wypożyczeń książek, co jest szczególnie przydatne w bibliotekach oraz innych instytucjach zajmujących się wynajmem materiałów. Użycie odpowiednich funkcji w SQL jest nie tylko korzystne, ale również zwiększa efektywność procesów analitycznych oraz zarządzania danymi.