Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
Rozpoczęcie: 30 września 2026 09:47
Zakończenie: 30 września 2026 10:09
Egzamin zdany!
Wynik: 31/40 punktów (77,5%)
Wymagane minimum: 20 punktów (50%)
Twój wynik na tle innych
Twój wynik jest lepszy niż 70% podejść do kwalifikacji INF.03.
Porównanie z 43829 zakończonymi podejściami do tej kwalifikacji (dane zbiorcze, bez wyników indywidualnych).
Zachowaj ten wynik na koncie
Załóż darmowe konto albo zaloguj się - ten egzamin przypiszemy do Twojego konta, więc wrócisz do swoich błędów, będziesz śledzić postęp i dostaniesz powtórki dobrane do Twoich odpowiedzi.
Tabela Pracownicy zawiera informacje na temat pracowników różnych działów, co jest zaznaczone przez pole liczbowe dzial. Z racji tego, że zazwyczaj kwerendy dotyczą tylko działu 2, można uprościć zapytania do tej tabeli, tworząc wirtualną tabelę o nazwie Prac_dzial2 przy użyciu zapytania
Poprawna odpowiedź. Odpowiedź 'CREATE VIEW Prac_dzial2 AS SELECT * FROM Pracownicy WHERE dzial=2;' jest poprawna, ponieważ wykorzystuje standardowe polecenie SQL do tworzenia widoku. Widok jest wirtualną tabelą, która umożliwia użytkownikom wykonywanie zapytań w oparciu o wcześniej zdefiniowane kryteria, co może znacznie uprościć złożoność zapytań w bazach danych. W tym przypadku, widok 'Prac_dzial2' automatycznie filtruje dane, zwracając jedynie pracowników przypisanych do działu 2. Przy pomocy tego widoku, użytkownicy mogą szybko uzyskać dostęp do tego subsetu danych bez konieczności każdorazowego pisania złożonych zapytań. Z perspektywy zarządzania bazą danych, tworzenie widoków jest uznawane za dobrą praktykę, ponieważ pozwala na lepszą organizację i bezpieczeństwo danych, a także stanowi dodatkową warstwę abstrakcji, która może ułatwić stosowanie polityk dostępu. Na przykład, jeśli firma zmieni strukturę działów, wystarczy zaktualizować definicję widoku, co nie wymaga modyfikacji wszystkich zapytań korzystających z tego widoku.
Pytanie 2
Przedstawione zapytanie MySQL ma za zadanie
ALTER TABLEksiazkiMODIFYtytulVARCHAR(100)NOT NULL;
A. zmienić nazwę kolumny w tabeli ksiazki.
B. zmienić typ kolumny tytul w tabeli ksiazki.Twoja odpowiedź
C. dodać do tabeli ksiazki kolumnę tytul.
D. usunąć kolumnę tytul z tabeli ksiazki.
Poprawna odpowiedź. Twoja odpowiedź dobrze odczytuje składnię polecenia ALTER TABLE w MySQL. Instrukcja: ALTER TABLE ksiazki MODIFY tytul VARCHAR(100) NOT NULL; służy do zmiany definicji już istniejącej kolumny tytul w tabeli ksiazki. Słowo kluczowe MODIFY w MySQL oznacza właśnie modyfikację typu danych i atrybutów kolumny, bez zmiany jej nazwy. W tym przykładzie kolumna tytul zostaje ustawiona jako typ VARCHAR o długości 100 znaków oraz z ograniczeniem NOT NULL, czyli pole nie może przyjmować wartości pustej. Moim zdaniem to jedno z częstszych poleceń przy rozwijaniu aplikacji, bo schemat bazy prawie nigdy nie jest idealny od początku. W praktyce takie polecenie stosuje się np. gdy początkowo założyliśmy zbyt krótki tytuł, np. VARCHAR(50), i po czasie okazuje się, że część danych się nie mieści. Zamiast tworzyć nową kolumnę, zmieniamy typ i parametry istniejącej. Dobra praktyka przy pracy z ALTER TABLE to zawsze sprawdzić, czy modyfikacja nie spowoduje utraty danych, np. przy skracaniu długości VARCHAR. W środowiskach produkcyjnych często robi się to najpierw na kopii bazy lub w środowisku testowym, bo zmiany w strukturze tabel potrafią blokować tabelę i wpływać na wydajność. Warto też wiedzieć, że w MySQL do zmiany nazwy kolumny używa się ALTER TABLE ... CHANGE stara_nazwa nowa_nazwa typ, a do dodania nowej kolumny słowa kluczowego ADD. Dzięki rozróżnieniu MODIFY/CHANGE/ADD/ DROP łatwiej czyta się skrypty migracyjne i utrzymuje spójny model danych. Dobrą praktyką jest też trzymanie wszystkich takich zmian w repozytorium razem z kodem aplikacji, żeby zawsze było wiadomo, jaka wersja schematu jest aktualna.
Pytanie 3
W posiadanej tabeli zwanej przedmioty, która zawiera kolumny ocena oraz uczenID, aby wyliczyć średnią ocen dla ucznia z ID równym 7, należy użyć zapytania
A.
AVGSELECTocenaFROMprzedmiotyWHEREuczenID=7
B.
COUNTSELECTocenaFROMprzedmiotyWHEREuczenID=7
C.
SELECTCOUNT(ocena)FROMprzedmiotyWHEREuczenID=7
D.
SELECTAVG(ocena)FROMprzedmiotyWHEREuczenID=7
Twoja odpowiedź
Poprawna odpowiedź. Odpowiedź 'SELECT AVG(ocena) FROM przedmioty WHERE uczenID = 7;' jest poprawna, ponieważ wykorzystuje funkcję agregującą AVG, która oblicza średnią ocen dla wszystkich wpisów w tabeli 'przedmioty', gdzie 'uczenID' jest równy 7. W SQL funkcje agregujące są niezwykle przydatne do analizy danych, pozwalając na uzyskanie statystyk dotyczących zbiorów danych. Użycie klauzuli WHERE pozwala na filtrowanie danych do tych, które dotyczą konkretnego ucznia, co jest zgodne z najlepszymi praktykami w zakresie zarządzania danymi. Na przykład, w praktycznych zastosowaniach, może to być użyte do generowania raportów dotyczących wyników ucznia w określonym przedziale czasowym lub w porównaniu do innych uczniów. Warto również zauważyć, że poprawna konstrukcja zapytania SQL jest kluczowa dla utrzymania integralności i wydajności bazy danych, co podkreśla znaczenie płynnego zapisu zapytań. Takie umiejętności są nieocenione w pracy z bazami danych oraz w kontekście analizy danych w różnych dziedzinach.
Pytanie 4
Który typ przypisać kolumnie z kodami pocztowymi, by przechowywała tekst o STAŁEJ długości?
A.
TEXT
Twoja odpowiedź
B.
BLOB
C.
DECIMAL
D.
CHAR
Poprawna odpowiedź
Niepoprawna odpowiedź. Pozostałe typy się nie nadają. TEXT przechowuje długie teksty o ZMIENNEJ długości, BLOB służy do danych binarnych (np. plików), a DECIMAL to typ liczbowy - zgubiłby myślnik i zero wiodące. Tekst stałej długości daje CHAR.
Pytanie 5
Dla których imion klauzula LIKE jest prawdziwa?
SELECTimieFROMmieszkancyWHEREimieLIKE'o_%_a';
A. Oksana, Oktawia, OlgaTwoja odpowiedź
B. Oktawia, Oktawian, Olga
C. Oda, Oksana, Oktawia
D. Oksana, Ola, Olga
Poprawna odpowiedź. Odpowiedź „Oksana, Oktawia, Olga" jest prawidłowa. Aby zrozumieć, dlaczego właśnie te imiona spełniają warunek, należy dokładnie przeanalizować wzorzec użyty w klauzuli LIKE. Wzorzec 'o_%_a' składa się z pięciu elementów: litery „o" na początku, znaku podkreślenia oznaczającego dokładnie jeden dowolny znak, symbolu procentu reprezentującego zero lub więcej dowolnych znaków, kolejnego znaku podkreślenia (znów dokładnie jeden znak) oraz litery „a" na końcu. Z tej struktury wynika, że prawidłowe imię musi spełniać trzy warunki: zaczynać się od litery „o", kończyć się na literę „a" oraz mieć co najmniej cztery znaki długości. Ta ostatnia zasada jest kluczowa - dwa znaki podkreślenia wymuszają obecność minimum dwóch znaków pomiędzy pierwszą a ostatnią literą. Dlatego imiona takie jak „Ola" czy „Oda", mimo że zaczynają się na „o" i kończą na „a", są zbyt krótkie. Z kolei „Oktawian" odpada, ponieważ kończy się na literę „n", nie „a". Pozostają więc Oksana, Oktawia i Olga - każde z nich ma odpowiednią długość i właściwe litery na początku oraz końcu.
Pytanie 6
Przedstawione zapytanie SELECT wykonane na tabeli przechowującej dane o uczestnikach konkursu ma za zadanie wybrać
SELECTMAX(wiek) -MIN(wiek) FROMuczestnicy;
A. liczbę najstarszych uczestników.
B. średnią arytmetyczną wieku uczestników.
C. minimalny oraz maksymalny wiek uczestników.
D. różnicę wieku pomiędzy najstarszym i najmłodszym uczestnikiem.Twoja odpowiedź
Poprawna odpowiedź. Gratulacje, ta odpowiedź jest poprawna. Zapytanie SQL używa funkcji agregujących MAX i MIN do określenia maksymalnej i minimalnej wartości wieku w tabeli uczestników. Użycie tych funkcji umożliwia nam zidentyfikowanie najstarszego i najmłodszego uczestnika. Następnie, zapytanie oblicza różnicę między tymi wartościami, co odpowiada różnicy wieku między najstarszym i najmłodszym uczestnikiem. To jest standardowe podejście w SQL do wykonywania tego typu zapytań. W praktyce, takie zapytania są często używane w analizie danych do określania różnorodności danych, takiej jak zakres wieku uczestników w danym konkursie. Pamiętaj, że funkcje agregujące w SQL, takie jak MAX i MIN, są niezwykle przydatne w analizie danych, umożliwiając nam podsumowanie i analizę dużych zbiorów danych.
Pytanie 7
Jakie imiona spełniają warunek klauzuli LIKE w zapytaniu
SELECTimieFROMmieszkancyWHEREimieLIKE'o_%_a';
?
A. Oksana, Oktawia, OlgaPoprawna odpowiedź
B. Oktawia, Oktawian, Olga
C. Oda, Oksana, Oktawia
D. Oksana, Ola, OlgaTwoja odpowiedź
Niepoprawna odpowiedź. Wybór imion Oda, Oksana, Oktawia jest błędny, ponieważ chociaż Oksana i Oktawia są poprawne, Oda nie spełnia wymagań klauzuli LIKE 'o_%_a'. Imię Oda zaczyna się na 'O', ale nie ma znaku, który by wypełniał miejsce reprezentowane przez '_' przed literą 'a', co oznacza, że nie ma żadnego znaku między 'O' a 'a'. Kluczowym błędem w analizie tego zapytania jest niedostrzeganie, że warunek LIKE wymaga, aby były przynajmniej dwa znaki w imieniu: jeden po 'o' oraz końcowy 'a'. Imiona Oktawian i Olga pojawiają się w różnych niepoprawnych odpowiedziach, ale nie są zgodne z wymaganiami, ponieważ nie wszystkie odpowiadają wzorowi. W przypadku imienia Oktawian, kończy się ono na 'n', a nie na 'a', co narusza klauzulę końcową. Zrozumienie zasadności stosowania klauzuli LIKE oraz jej składni jest kluczowe dla prawidłowego przetwarzania danych w zapytaniach SQL. Typowym błędem jest także pominięcie, że symbole wildcard muszą być stosowane z pełnym zrozumieniem ich funkcji w kontekście danych, co może prowadzić do niepoprawnych wyników w analizach i raportach.
Pytanie 8
W języku PHP, aby nawiązać połączenie z bazą danych MySQL za pomocą biblioteki mysqli, wykorzystując podany kod, w miejscu parametru 'c' powinno się wpisać
$a = new mysqli('b', 'c', 'd', 'e')
A. nazwę użytkownikaPoprawna odpowiedź
B. nazwę bazy danychTwoja odpowiedź
C. lokalizację serwera bazy danych
D. hasło użytkownika
Niepoprawna odpowiedź. Aby poprawnie korzystać z biblioteki mysqli w PHP konieczne jest zrozumienie kolejności i znaczenia parametrów używanych do nawiązywania połączenia z bazą danych MySQL. Pierwszym parametrem w funkcji mysqli_connect lub konstruktorze klasy mysqli jest lokalizacja serwera bazy danych. Zazwyczaj wartością domyślną jest 'localhost' co oznacza że serwer bazy danych działa na tej samej maszynie co serwer PHP. Błędne przypisywanie innej wartości w tym miejscu może prowadzić do problemów z połączeniem jeśli serwer bazy danych jest w rzeczywistości lokalny. Drugim parametrem jest nazwa użytkownika która jest niezbędna do autoryzacji dostępu do bazy danych. Często stosowanym błędem jest użycie niewłaściwego użytkownika co może skutkować odmową dostępu do bazy. Trzecim jest hasło które powinno być silne i dobrze zabezpieczone aby zapobiec nieautoryzowanemu dostępowi. Błędne przypisanie tego parametru może skutkować podatnością na ataki. Czwartym parametrem jest nazwa bazy danych do której zamierzamy się połączyć. Błędne podanie tej wartości może powodować że operacje bazy danych będą wykonywane na niewłaściwej bazie co może mieć katastrofalne skutki dla danych. Zrozumienie i poprawne przypisanie tych wartości jest kluczowe w kontekście bezpieczeństwa i stabilności aplikacji webowych i często jest elementem dobrych praktyk w programowaniu PHP. Również zrozumienie tego w kontekście skalowalności i zarządzania środowiskami produkcyjnymi jest istotne aby uniknąć problemów związanych z konfiguracją na różnych etapach rozwoju aplikacji. Właściwe zarządzanie tymi parametrami często wiąże się z używaniem plików konfiguracyjnych co pozwala na łatwiejsze zarządzanie i większą elastyczność w kontekście różnych środowisk programistycznych i produkcyjnych. Poprawne zrozumienie tego mechanizmu jest kluczowe dla tworzenia bezpiecznych i stabilnych aplikacji webowych.
Pytanie 9
Którego typu danych w MySQL należy użyć, aby w jednym polu zapisać datę i czas?
A.
TIMESTAMP
Poprawna odpowiedź
B.
BOOLEAN
C.
DATE
Twoja odpowiedź
D.
YEAR
Niepoprawna odpowiedź. Pozostałe typy przechowują tylko fragment informacji lub coś innego. DATE zapisuje samą datę (bez godziny) - nie da się w nim zapamiętać czasu. YEAR przechowuje wyłącznie rok, więc to jeszcze mniej danych. BOOLEAN to typ logiczny przyjmujący prawda/fałsz, zupełnie niezwiązany z datą. Datę razem z czasem przechowuje TIMESTAMP (lub DATETIME), dlatego ta odpowiedź jest poprawna.
Pytanie 10
Tabela podzespoly ma pola: model, producent, typ, cena. Które zapytanie wyświetli modele dysków SSD firmy Samsung od najdroższego do najtańszego?
Poprawna odpowiedź. Dyski SSD firmy Samsung to część wspólna dwóch warunków - typ „SSD” ORAZ producent „Samsung” - więc łączymy je AND, a od najdroższego do najtańszego sortuje ORDERBYcenaDESC. Wybieramy model z podzespoly. Dlatego ta kwerenda jest poprawna.
Pytanie 11
Które zapytanie wybierze z tabeli klient nazwiska zaczynające się na literę „Z” (o dowolnej długości)?
A.
SELECTnazwiskoFROMklientWHEREnazwisko='Z_?';
B.
SELECTnazwiskoFROMklientWHEREnazwiskoLIKE'Z_%';
C.
SELECTnazwiskoFROMklientWHEREnazwisko='Z?';
D.
SELECTnazwiskoFROMklientWHEREnazwiskoLIKE'Z%';
Twoja odpowiedź
Poprawna odpowiedź. Wyszukiwanie po fragmencie tekstu wymaga operatora LIKE i znaków wieloznacznych. Tu potrzebujemy nazwisk zaczynających się na „Z” o dowolnej dalszej części, czyli wzorca 'Z%', gdzie % zastępuje dowolny ciąg (także pusty): SELECTnazwiskoFROMklientWHEREnazwiskoLIKE'Z%';. Dlatego ta kwerenda jest poprawna.
Pytanie 12
Narzędziem do zarządzania bazą danych wbudowanym w pakiet XAMPP jest
A. MySQL Workbench
B. SQLite
C. pgAdmin
D. phpMyAdminTwoja odpowiedź
Poprawna odpowiedź. phpMyAdmin to popularne narzędzie webowe, które jest częścią pakietu XAMPP, służące do zarządzania bazami danych MySQL. Umożliwia użytkownikom interakcję z bazą danych poprzez intuicyjny interfejs graficzny, co znacznie upraszcza wykonanie operacji takich jak tworzenie, edytowanie i usuwanie baz danych oraz tabel. Dzięki phpMyAdmin można z łatwością zarządzać uprawnieniami użytkowników, importować i eksportować dane, a także wykonywać zapytania SQL bez konieczności korzystania z linii poleceń. To narzędzie jest szczególnie przydatne dla osób, które nie mają doświadczenia w pracy z bazami danych, a jego dostępność w XAMPP czyni go idealnym rozwiązaniem dla programistów webowych i administratorów systemów. W praktyce, phpMyAdmin wspiera wiele standardów, takich jak UTF-8, co zapewnia poprawne przetwarzanie danych w różnych językach. Warto zaznaczyć, że korzystanie z phpMyAdmin jest zgodne z najlepszymi praktykami w zakresie zarządzania bazami danych, ponieważ umożliwia skuteczne monitorowanie i optymalizację wydajności bazy danych.
Pytanie 13
Które z poniższych poleceń pozwala na dodanie kolumny zadanie_kompletne do tabeli zadania?
A.
ALTERTABLEzadaniaADDCOLUMNzadanie_kompletneint
Twoja odpowiedź
B.
CREATEINDEXzadaniaADDCOLUMNzadanie_kompletneint
C.
ADDCOLUMNzadanie_kompletneWITHzadania
D.
INSERTINTOzadaniaVALUESzadanie_kompletne
Poprawna odpowiedź. Dodanie kolumny do istniejącej tabeli w relacyjnej bazie danych może być realizowane za pomocą polecenia ALTER TABLE. To polecenie jest standardem SQL i jest wspierane przez większość systemów zarządzania bazami danych, takich jak MySQL, PostgreSQL, Oracle czy Microsoft SQL Server. W przypadku zapytania 'ALTER TABLE zadania ADD COLUMN zadanie_kompletne int', polecenie to modyfikuje strukturę tabeli 'zadania', dodając nową kolumnę o nazwie 'zadanie_kompletne', która będzie przechowywać dane typu całkowitego (int). Praktycznym przykładem zastosowania tego polecenia może być system zarządzania projektami, w którym chcemy śledzić status zadań. Po dodaniu tej kolumny, możemy wprowadzać wartości 0 lub 1, które mogą reprezentować, czy zadanie zostało ukończone, czy nie. Użycie ALTER TABLE jest niezbędne, gdyż inne polecenia, takie jak CREATE INDEX czy INSERT INTO, służą do innych celów, takich jak tworzenie indeksów lub wstawianie danych, a nie do modyfikacji struktury tabeli. W praktyce, aby upewnić się, że zmiany są zgodne z wymaganiami systemu, zaleca się zawsze wykonanie kopii zapasowej bazy danych przed przeprowadzeniem operacji na strukturze tabeli.
Pytanie 14
Co musi zawierać kolumna pełniąca funkcję klucza głównego w tabeli?
A. ciągłą numerację
B. inny typ niż pozostałe kolumny
C. wartości unikalneTwoja odpowiedź
D. wyłącznie liczby
Poprawna odpowiedź. Klucz główny musi jednoznacznie identyfikować każdy wiersz, więc jego wartości muszą być UNIKALNE (i niepuste). Dzięki temu da się bez pomyłki wskazać konkretny rekord. Dlatego kolumna klucza głównego musi zawierać wartości unikalne.
Pytanie 15
W formularzu dokumentu PHP znajduje się pole <input name="im">. Gdy użytkownik wprowadzi tekst "Janek", aby dodać wartość tego pola do bazy danych, w tablicy $_POST będzie obecny element
A. Janek z następującym numerem indeksu
B. im o indeksie Janek
C. im z następującym numerem indeksu
D. Janek o indeksie imTwoja odpowiedź
Poprawna odpowiedź. Odpowiedź "Janek o indeksie im" jest prawidłowa, ponieważ w momencie, gdy użytkownik wprowadza dane do pola formularza z nazwą 'im', wartość tego pola, czyli "Janek", zostaje przypisana do elementu tablicy $_POST. W tablicy $_POST każdemu pole w formularzu przypisuje wartość pod jego nazwą (w tym przypadku 'im'). W rezultacie, klucz tablicy $_POST będzie mieć wartość 'im', a jego wartość to 'Janek'. To podejście jest zgodne z dobrymi praktykami programowania w PHP, w których dane z formularzy są przekazywane do skryptów serwerowych w sposób zorganizowany i łatwy do odczytania. Umożliwia to deweloperom efektywne przetwarzanie danych wejściowych, co jest kluczowe w aplikacjach webowych. Przykładowo, gdy tworzymy formularz rejestracyjny, możemy użyć $_POST do łatwego przechwytywania i walidacji danych użytkownika, co poprawia bezpieczeństwo i funkcjonalność aplikacji.
Pytanie 16
W tabeli klienci w bazie danych sklepu internetowego występują m.in. pola całkowite: punkty, liczbaZakupow oraz pole ostatnieZakupy typu DATE. Klauzula WHERE do zapytania wybierającego klientów, którzy posiadają ponad 3000 punktów lub zrealizowali zakupy więcej niż 100 razy, a ich ostatnie zakupy miały miejsce przynajmniej w roku 2022 ma formę
Poprawna odpowiedź. Odpowiedź 'WHERE (punkty > 3000 OR liczbaZakupow > 100) AND ostatnieZakupy >= '2022-01'' jest prawidłowa, ponieważ dokładnie odzwierciedla wymagania dotyczące filtrowania klientów. Klauzula WHERE używa operatora OR dla dwóch warunków: liczba punktów musi być większa niż 3000, albo liczba zakupów musi być większa niż 100. Taki zapis jest kluczowy, ponieważ spełnienie jednego z tych warunków jest wystarczające. Następnie, warunek dotyczący daty ostatnich zakupów jest połączony z powyższymi za pomocą operatora AND, co oznacza, że musi być spełniony jednocześnie. Dzięki użyciu nawiasów, zapytanie jest jasne i jednoznaczne, co jest zgodne z dobrymi praktykami w tworzeniu zapytań SQL. W praktyce takie kwerendy są często używane w systemach CRM, gdzie konieczne jest segmentowanie klientów na podstawie ich aktywności oraz wartości, co pozwala na skuteczniejsze podejmowanie decyzji marketingowych.
Pytanie 17
Aby zaktualizować maksymalną długość kolumny imie w tabeli klienci do 30 znaków, należy zastosować w języku SQL poniższy kod
A. CHANGE TABLE klienci MODIFY imie CHAR(30);
B. CHANGE TABLE klienci TO COLUMN imie SET CHAR(30);
C. ALTER TABLE klienci CHANGE imie TEXT;
D. ALTER TABLE klienci MODIFY COLUMN imie VARCHAR(30);Twoja odpowiedź
Poprawna odpowiedź. Aby zmienić maksymalną długość pola 'imie' w tabeli 'klienci' na 30 znaków, używamy polecenia SQL 'ALTER TABLE', które jest standardowym sposobem modyfikacji struktury tabeli w bazach danych. W tym przypadku wykorzystujemy 'MODIFY COLUMN', co jest istotne, ponieważ pozwala na precyzyjne określenie, że chcemy zmienić właściwości konkretnej kolumny. Typ danych 'VARCHAR' oznacza, że kolumna może przechowywać zmienne długości tekstu, a wartość 30 oznacza maksymalną liczbę znaków. Przykładowo, jeśli w bazie danych już istnieją rekordy, to zmiana ta nie wpłynie na dane, które są krótsze niż 30 znaków, ale może być problematyczna, jeśli próbujemy wprowadzić dane dłuższe niż dozwolone, ponieważ takie operacje mogą kończyć się błędami. Warto również zaznaczyć, że różne systemy zarządzania bazami danych, takie jak MySQL, PostgreSQL czy Oracle, mogą mieć drobne różnice w składni, ale zasada działania polecenia 'ALTER TABLE' pozostaje zasadniczo taka sama. To podejście jest zgodne z zaleceniami standardu SQL i jest powszechnie stosowane w praktykach administracji bazami danych.
Pytanie 18
Aby zwiększyć wydajność operacji na bazie danych dla pól często używanych w wyszukiwaniu lub sortowaniu, należy:
A. dodać więzy integralności
B. utworzyć osobną tabelę na te pola
C. dodać klucz obcy
D. utworzyć indeksTwoja odpowiedź
Poprawna odpowiedź. Indeks to dodatkowa struktura bazy, która działa jak skorowidz w książce: zamiast przeglądać cały zbiór wierszy, baza sięga do uporządkowanego spisu i szybko odnajduje szukane wartości. Dlatego dla kolumn często występujących w warunkach WHERE, sortowaniu czy złączeniach zakłada się indeksy - przyspieszają odczyt nawet wielokrotnie. Trzeba pamiętać, że indeksy nieco spowalniają zapis i zajmują miejsce, więc zakłada się je świadomie, na właściwych polach. Do poprawy wydajności wyszukiwania służy właśnie indeks.
Pytanie 19
Jakie imiona spełniają warunki klauzuli LIKE w zapytaniu?
SELECTimieFROMmieszkancyWHEREimieLIKE'_r%';
A. Krzysztof, Krystyna, Romuald
B. Rafał, Rebeka, Renata, Roksana
C. Gerald, Jarosław, Marek, Tamara
D. Arleta, Krzysztof, Krystyna, TristanTwoja odpowiedź
Poprawna odpowiedź. Zapytanie SQL wykorzystuje klauzulę LIKE, która pozwala na wyszukiwanie wzorców w danych tekstowych. W tym przypadku wzór '_r%' oznacza, że szukamy imion, które mają na drugiej pozycji literę 'r' i mogą mieć dowolne znaki po tej literze. W analizowanych imionach, Arleta, Krzysztof, Krystyna oraz Tristan spełniają ten warunek, ponieważ: Arleta ma 'r' na drugiej pozycji, Krzysztof również, Krystyna także, a Tristan ma 'r' na drugiej pozycji. Przykład użycia klauzuli LIKE jest szczególnie przydatny w systemach, gdzie często zachodzi potrzeba filtrowania danych tekstowych na podstawie określonych wzorców. W praktyce, stosowanie klauzuli LIKE w zapytaniach SQL powinno być zgodne z najlepszymi praktykami, takimi jak optymalizacja indeksów i unikanie nadmiernego używania znaków wieloznacznych, które mogą prowadzić do spadku wydajności. Warto również pamiętać, że w wielu systemach baz danych klauzula LIKE jest czuła na wielkość liter, co może wpływać na wyniki zapytań.
Pytanie 20
Dodanie ograniczenia klucza obcego w taki sposób, aby kolumna Klasy_id z tabeli Uczniowie była powiązana z kolumną id w tabeli Klasy zostanie wykonane przy użyciu polecenia
Niepoprawna odpowiedź. W poleceniach dotyczących kluczy obcych bardzo łatwo pomylić operacje `ADD` i `DROP` oraz prawidłową składnię dla poszczególnych dialektów SQL. W przedstawionych błędnych odpowiedziach pojawia się kilka typowych nieporozumień. Część z nich próbuje używać słowa kluczowego `DROP`, które służy do usuwania istniejącego ograniczenia, a nie do jego tworzenia. Jeżeli naszym celem jest dopiero dodanie relacji między tabelą `Uczniowie` a tabelą `Klasy`, to użycie `DROP CONSTRAINT` albo `DROP FOREIGN KEY` jest po prostu logicznie sprzeczne z zadaniem – takie polecenia mogłyby mieć sens tylko wtedy, gdy klucz obcy `FKKlasy` już istnieje i chcemy go zlikwidować. W praktyce takie pomyłki wynikają z mylenia dwóch kroków: projektowania schematu (gdzie klucze dopiero dodajemy) z refaktoryzacją istniejącej bazy (gdzie często coś usuwamy i tworzymy na nowo). Kolejna sprawa to składnia `ADD FOREIGN KEY FKKlasy FOREIGN KEY(...)`. W standardowych systemach zarządzania bazą danych najpierw podaje się `ADD CONSTRAINT nazwa`, a dopiero później słowo `FOREIGN KEY` wraz z listą kolumn. Wpychanie nazwy ograniczenia między `ADD FOREIGN KEY` a definicję kolumn nie jest zgodne z zasadami składni SQL i po prostu nie zadziała. Moim zdaniem to efekt mieszania różnych przykładów z internetu, gdzie w jednych pokazuje się nazwane ograniczenia (`ADD CONSTRAINT ...`), a w innych anonimowe (`ADD FOREIGN KEY (...) REFERENCES ...`), bez nazwy. Dodatkowo, używanie w jednym poleceniu jednocześnie `DROP` i całej definicji `FOREIGN KEY(Klasy_id) REFERENCES Klasy(id)` jest nielogiczne: przy usuwaniu ograniczenia podajemy wyłącznie jego nazwę, bo silnik bazy już zna szczegóły definicji i nie trzeba ich powtarzać. W poprawnym podejściu zawsze zadajemy sobie pytanie: czy ja chcę coś dodać, czy usunąć, i czy składnia, której używam, odpowiada dokumentacji konkretnego systemu (np. SQL Server, MySQL, PostgreSQL). Stosowanie czytelnej, udokumentowanej formy `ALTER TABLE ... ADD CONSTRAINT ... FOREIGN KEY ... REFERENCES ...` jest zgodne z dobrymi praktykami i oszczędza sporo nerwów przy późniejszej administracji oraz migracjach schematu.
Pytanie 21
W instrukcji CREATE TABLE w SQL atrybut wskazujący, która kolumna w tabeli pełni rolę klucza podstawowego, to
A. IDENTITY FIELD
B. MAIN KEY
C. PRIMARY KEYTwoja odpowiedź
D. UNIQUE
Poprawna odpowiedź. Odpowiedź 'PRIMARY KEY' jest poprawna, ponieważ w poleceniu CREATE TABLE w SQL, klucz podstawowy jest definiowany właśnie za pomocą tego atrybutu. Klucz podstawowy to unikalny identyfikator dla każdej wiersza w tabeli, co oznacza, że wartość w tej kolumnie musi być unikalna i nie może być pusta. Definiowanie klucza podstawowego jest kluczowe dla zapewnienia integralności danych oraz efektywności operacji na bazie danych, ponieważ umożliwia szybkie wyszukiwanie i sortowanie. Na przykład, jeśli tworzysz tabelę 'Użytkownicy', możesz zdefiniować kolumnę 'UserID' jako klucz podstawowy, co zagwarantuje, że każdy użytkownik ma unikalny identyfikator. Warto również pamiętać, że w praktyce, jeśli nie określisz klucza podstawowego, baza danych nie będzie mogła zapewnić unikalności w tabeli, co może prowadzić do problemów z danymi. Zgodnie z dobrymi praktykami, klucz podstawowy powinien być stabilny oraz niezmienny, co oznacza, że nie powinno się go zmieniać po jego utworzeniu.
Pytanie 22
Używa się zapytania z klauzulą JOIN, aby
A. określić klucz obcy dla tabeli
B. otrzymać wynik tylko z jednej tabeli
C. wykonać funkcję agregującą
D. uzyskać dane z dwóch tabel, które są ze sobą powiązaneTwoja odpowiedź
Poprawna odpowiedź. Zapytanie z klauzulą JOIN jest kluczowym narzędziem w języku SQL, które umożliwia łączenie danych z dwóch lub więcej tabel na podstawie relacji między nimi. Używając JOIN, możemy uzyskać bardziej złożone i użyteczne zestawienia danych, które nie byłyby możliwe do uzyskania, gdybyśmy korzystali tylko z pojedynczej tabeli. Na przykład, jeśli mamy tabelę klientów oraz tabelę zamówień, możemy z łatwością połączyć je, aby uzyskać informacje o tym, jakie zamówienia złożył dany klient. Przykładowe zapytanie może wyglądać tak: "SELECT klienci.imie, zamowienia.data FROM klienci JOIN zamowienia ON klienci.id = zamowienia.klient_id;" W takim przypadku wykorzystanie JOIN pozwala na integrowanie danych z obu tabel w jedną spójną odpowiedź. Takie podejście jest szeroko stosowane w branży, ponieważ standardy relacyjnych baz danych wymagają efektywnej organizacji i analizy danych, a JOIN jest jednym z podstawowych mechanizmów umożliwiających realizację takich zadań.
Pytanie 23
Na rysunku została przedstawiona relacja jeden do wielu. Łączy ona
A. klucz podstawowy id tabeli filmy z kluczem obcym reżyserzy_id tabeli reżyserzy.
B. klucz podstawowy id tabeli filmy z kluczem podstawowym id tabeli reżyserzy.
C. klucz obcy reżyserzy_id tabeli filmy z kluczem podstawowym id tabeli reżyserzy.Twoja odpowiedź
D. klucz obcy reżyserzy_id tabeli filmy z kluczem obcym id tabeli reżyserzy.
Poprawna odpowiedź. Twoja odpowiedź jest prawidłowa. Relacja jeden do wielu na rysunku wskazuje, że jeden rekord z tabeli reżyserzy może być powiązany z wieloma rekordami w tabeli filmy. Klucz obcy (FK - Foreign Key) w tabeli filmy (reżyserzy_id) wskazuje na klucz podstawowy (PK - Primary Key) w tabeli reżyserzy (id). Jest to typowa praktyka przy projektowaniu relacyjnych baz danych, która pozwala na utrzymanie integralności relacji między danymi. Te relacje są kluczowe dla prawidłowego działania systemów bazodanowych, ponieważ umożliwiają efektywne zarządzanie danymi. Poprawnie zdefiniowanie kluczy obcych i podstawowych umożliwia tworzenie skomplikowanych struktur danych, które odzwierciedlają rzeczywiste zależności i czytelnie prezentują powiązania między danymi.
Pytanie 24
Jednym z atrybutów tabeli ksiazki jest pole czyWypozyczona, które może mieć dwie wartości: true lub false. Jaki typ danych będzie najbardziej odpowiedni dla tego pola?
A. DOUBLE
B. CHAR
C. VARCHAR(5)
D. BOOLEANTwoja odpowiedź
Poprawna odpowiedź. Odpowiedź 'BOOLEAN' jest poprawna, ponieważ jest to typ danych, który idealnie odpowiada na potrzeby pola 'czyWypozyczona', które przyjmuje jedynie dwie wartości: true (prawda) oraz false (fałsz). W przypadku baz danych, typ BOOLEAN jest optymalny do reprezentowania stanów logicznych, co pozwala na efektywniejsze zarządzanie danymi oraz ich przetwarzanie. Przykładowo, w systemie zarządzania biblioteką, pole 'czyWypozyczona' może być używane do szybkiego filtrowania książek, które są aktualnie dostępne lub wypożyczone. Użycie typu BOOLEAN eliminuje potrzebę zbędnych konwersji typu, zwiększa czytelność kodu oraz ułatwia optymalizację zapytań SQL. W praktyce, stosowanie typu BOOLEAN jest zgodne z najlepszymi praktykami projektowania baz danych, które promują przejrzystość i zgodność z modelowaniem danych. Warto również zauważyć, że w niektórych systemach zarządzania bazami danych (np. PostgreSQL) typ BOOLEAN jest natywnie obsługiwany, co dodatkowo wpływa na wydajność operacji na danych.
Pytanie 25
Jakiego polecenia SQL należy użyć, aby usunąć z tabeli artykuly wiersze, które zawierają słowo "sto" w dowolnej lokalizacji pola tresc?
A.
DELETE*FROMartykulyWHEREtrescLIKE"%sto%";
Twoja odpowiedź
B.
DELETEFROMartykulyWHEREtresc="%sto%";
C.
DELETEFROMartykulyWHEREtrescLIKE"%sto%";
Poprawna odpowiedź
D.
DELETE*FROMartykulyWHEREtresc="%sto%";
Niepoprawna odpowiedź. Wszystkie błędne odpowiedzi opierają się na niezrozumieniu podstawowej funkcji operatora DELETE w języku SQL oraz zasad dotyczących dopasowywania wzorców. Przykłady takie jak 'DELETE * FROM artykuly WHERE tresc = "%sto%";' oraz 'DELETE * FROM artykuly WHERE tresc LIKE "%sto%";' zawierają nieprawidłowe użycie składni, które nie jest zgodne z standardem SQL. W SQL nie używa się znaku '*' w poleceniach DELETE, gdyż zapis 'DELETE * FROM' jest poprawny tylko dla zapytań SELECT. W kontekście usuwania danych, należy używać jedynie 'DELETE FROM', co jest wystarczające dla określenia, z jakiej tabeli mają zostać usunięte rekordy. Ponadto, pierwsza błędna odpowiedź zdobija wszystkie potencjalne błędy związane z niepoprawnym użyciem operatora '='. Operator '=' wymaga dokładnego dopasowania, co oznacza, że nie może być stosowany do wyszukiwania wzorców, w przeciwieństwie do operatora LIKE, który umożliwia elastyczne dopasowanie z użyciem znaków wieloznacznych. Typowym błędem jest więc przekonanie, że '=' oraz LIKE mogą być stosowane zamiennie bez uwzględnienia, że '=' nie przyjmuje znaków procentowych. Dlatego kluczowe jest, aby przed użyciem poleceń SQL upewnić się, że rozumie się ich składnię oraz zasady działania, co pozwoli uniknąć wielu pułapek w codziennej pracy z bazami danych.
Pytanie 26
W bazie danych znajduje się tabela ksiazki, która zawiera pola: tytul, id_autora, data_wypoz oraz id_czytelnika. Co dzień generowany jest raport dotyczący książek wypożyczonych w danym dniu, który prezentuje tylko tytuły książek. Która z poniższych kwerend SQL będzie odpowiednia do utworzenia tego raportu?
Niepoprawna odpowiedź. Wybór innych kwerend nie spełnia wymagania, by uzyskać tylko tytuły wypożyczonych książek z konkretnego dnia. Kwerenda 'SELECT tytul FROM ksiazki;' zwraca wszystkie tytuły książek z tabeli, nie uwzględniając daty wypożyczenia. Takie podejście mogłoby prowadzić do nieefektywnego przetwarzania danych oraz przeciążenia systemu, ze względu na duże ilości danych. W kontekście baz danych, selekcja zbyt ogólnych danych jest niezalecana, ponieważ nie dostarcza istotnych informacji i nie spełnia wymagań użytkowników, prowadząc do frustracji. Kwerenda 'SELECT tytul, data_wypoz FROM ksiazki WHERE data_wypoz = CURRDATE_NT_E();' zawiera błąd w nazwie funkcji, jako że 'CURRDATE_NT_E()' nie jest standardową funkcją SQL, co skutkuje błędem wykonania zapytania. Dodatkowo, nawet gdyby była poprawna, ta kwerenda zwracałaby więcej danych niż potrzebne, co znowu nie jest praktyką zgodną z efektywnym zarządzaniem danymi. Ostatnia propozycja, 'SELECT * FROM ksiazki;', również nie jest odpowiednia, ponieważ zwraca wszystkie kolumny z tabeli, a nie tylko tytuły książek, co skutkuje nieoptymalnym przetwarzaniem i brakiem precyzyjnych informacji. Kluczową lekcją jest to, że kwerendy w SQL powinny być precyzyjnie dopasowane do potrzeb użytkowników, aby minimalizować obciążenie bazy danych oraz maksymalizować użyteczność raportów.
Pytanie 27
Której funkcji PHP użyć, aby WYSŁAĆ zapytanie SELECT do bazy MySQL?
A.
mysqli_fetch_row
B.
mysqli_query
Twoja odpowiedź
C.
mysqli_connect
D.
mysqli_num_rows
Poprawna odpowiedź. Samo połączenie z bazą nic jeszcze nie pobiera - treść zapytania trzeba do niej WYSŁAĆ, a robi to mysqli_query($polaczenie,$sql). Dla SELECT zwraca obiekt wyniku, po którym potem iterujesz, np. $w=mysqli_query($db,"SELECT * FROM uczniowie");. Ta sama funkcja wysyła też INSERT, UPDATE czy DELETE. Zapamiętaj: „query” = zapytanie - to funkcja, która faktycznie przekazuje SQL do serwera.
Pytanie 28
W skrypcie PHP, aby zamknąć otwarte wcześniej połączenie z bazą danych, należy wywołać funkcję:
A.
mysqli_close
Twoja odpowiedź
B.
mysqli_select_db
C.
mysqli_query
D.
mysqli_connect
Poprawna odpowiedź. Połączenie z bazą otwarte przez mysqli_connect zamyka się funkcją mysqli_close, której przekazuje się uchwyt połączenia. Zwalnia ona zasoby serwera po zakończeniu pracy z bazą. Choć PHP zamyka połączenia automatycznie po zakończeniu skryptu, dobrym nawykiem jest zamykać je jawnie. Dlatego do zamknięcia połączenia służy mysqli_close.
Pytanie 29
Jaką funkcję agregującą można zastosować, aby uzyskać ilość rekordów?
A. NUMBER
B. AVG
C. COUNTTwoja odpowiedź
D. SUM
Poprawna odpowiedź. Funkcja agregująca COUNT jest używana w bazach danych do zwracania liczby rekordów spełniających określone kryteria. Jest to jedna z podstawowych funkcji agregujących, która pozwala na szybkie uzyskanie informacji o objętości danych w tabeli. Na przykład, w zapytaniu SQL, które ma na celu policzenie liczby wszystkich klientów w tabeli "klienci", możemy użyć: SELECT COUNT(*) FROM klienci. Zwróci to całkowitą liczbę rekordów. Funkcja COUNT może być również używana z warunkami, co pozwala na bardziej zaawansowane analizy, takie jak: SELECT COUNT(*) FROM klienci WHERE kraj = 'Polska', co policzy tylko tych klientów, którzy są z Polski. W praktyce, COUNT jest nieoceniony w raportowaniu i analizie danych, umożliwiając analitykom i programistom szybkie zrozumienie struktury danych. Dobra praktyka to zawsze stosować COUNT w kontekście grupowania danych przy użyciu klauzuli GROUP BY, co pozwala na uzyskanie liczby rekordów w poszczególnych grupach.
Pytanie 30
Używając polecenia ALTER TABLE, co można zrobić?
A. zmiana wartości w rekordach tabeli
B. stworznie tabeli
C. usunięcie tabeli
D. zmiana struktury tabeliTwoja odpowiedź
Poprawna odpowiedź. Polecenie ALTER TABLE w SQL jest używane do modyfikacji struktury istniejącej tabeli w bazie danych. Dzięki temu poleceniu można dodawać nowe kolumny, usuwać istniejące, zmieniać typ danych kolumn, a także dodawać klucze obce lub indeksy. Przykładem zastosowania ALTER TABLE może być dodanie nowej kolumny do tabeli pracowników w celu rejestrowania daty zatrudnienia: 'ALTER TABLE pracownicy ADD COLUMN data_zatrudnienia DATE;'. Good practices w zakresie modyfikacji tabeli sugerują, aby przed dokonaniem takich zmian zawsze tworzyć kopię zapasową bazy danych. Warto również monitorować wpływ zmian na istniejące zapytania oraz aplikacje, które wykorzystują tę tabelę, aby uniknąć potencjalnych błędów w przyszłości. W kontekście projektowania baz danych, ALTER TABLE stanowi kluczowy element w utrzymaniu i dostosowywaniu struktury bazy danych do zmieniających się potrzeb organizacji. Na przykład, w miarę wzrostu firmy mogą pojawić się potrzeby wprowadzenia nowych informacji dotyczących klientów, co wymaga elastyczności w strukturze bazy danych.
Pytanie 31
Podczas zapisywania hasła użytkownika w serwisie WWW, na przykład w bankowości internetowej, aby zabezpieczyć je przed odczytaniem, zazwyczaj stosuje się funkcję
A. abstrakcyjnych
B. cyklometrycznych
C. kluczaTwoja odpowiedź
D. mieszających
Poprawna odpowiedź. Użycie klucza do zabezpieczania haseł użytkowników jest standardową praktyką w dziedzinie bezpieczeństwa informatycznego. Klucz, który może być generowany na podstawie hasła lub stanowić odrębny, losowy ciąg znaków, jest stosowany w procesach szyfrowania. Dzięki temu, nawet jeśli dane hasło zostanie przechwycone, bez klucza nie jest możliwe jego odczytanie. W praktyce powszechnie wykorzystuje się algorytmy kryptograficzne, takie jak AES (Advanced Encryption Standard), które wymagają kluczy do szyfrowania i deszyfrowania informacji. W kontekście hasła użytkownika, stosuje się także techniki takie jak hashowanie, gdzie dane są przekształcane w unikalny skrót. Przykładem jest funkcja bcrypt, która nie tylko przechowuje hasło, ale i dodaje sól, co dodatkowo utrudnia ataki słownikowe. Takie podejście do zarządzania hasłami jest zgodne z najlepszymi praktykami, jak OWASP Password Storage Cheat Sheet, która zaleca unikanie przechowywania haseł w formie czystego tekstu oraz stosowanie silnych algorytmów kryptograficznych.
Pytanie 32
Przy użyciu polecenia ALTER TABLE można
A. zmieniać strukturę tabeliTwoja odpowiedź
B. tworzyć nową tabelę
C. usuwać tabelę
D. zmieniać wartości zapisane w rekordach tabeli
Poprawna odpowiedź. Polecenie ALTER TABLE jest kluczowym narzędziem w zarządzaniu bazami danych, pozwalającym na modyfikację struktury istniejących tabel. Umożliwia m.in. dodawanie, usuwanie lub modyfikowanie kolumn, a także zmianę ich typów danych. Na przykład, aby dodać nową kolumnę do tabeli, można użyć polecenia: ALTER TABLE nazwa_tabeli ADD nowa_kolumna typ_danych. W praktyce, ALTER TABLE jest niezbędne w przypadku zmiany wymagań aplikacji, które mogą wymagać dostosowania struktury bazy danych. Zmiany strukturalne powinny być przeprowadzane zgodnie z zasadami normalizacji, co zapewnia optymalizację bazy danych oraz zapobiega redundancji danych. Kluczowe jest również testowanie wprowadzonych zmian w środowisku testowym przed ich wdrożeniem w produkcji, co jest zgodne z najlepszymi praktykami w inżynierii oprogramowania. Warto również pamiętać, że podczas modyfikacji struktury tabeli, odpowiednie zrozumienie relacji między tabelami jest istotne dla zachowania integralności danych.
Pytanie 33
Które polecenie SQL zmieni w tabeli tab, w kolumnie kol, wartość „Ania” na „Zosia”?
A.
UPDATEtabSETkol='Zosia'WHEREkol='Ania';
Poprawna odpowiedź
B.
UPDATEtabSETkol='Ania'WHEREkol='Zosia';
C.
ALTERTABLEtabCHANGEkol='Zosia'kol='Ania';
D.
ALTERTABLEtabCHANGEkol='Ania'kol='Zosia';
Twoja odpowiedź
Niepoprawna odpowiedź. Pozostałe zapisy zawodzą. Wariant z SETkol='Ania'WHEREkol='Zosia' działa odwrotnie. Polecenia ALTERTABLE...CHANGE zmieniają STRUKTURĘ tabeli (definicję kolumny), a nie zapisane w niej dane. Zmianę wartości daje UPDATEtabSETkol='Zosia'WHEREkol='Ania';.
Pytanie 34
W tabeli mieszkancy znajdują się dane o osobach z całego kraju. Aby ustalić, ile unikalnych miast występuje w tej tabeli, trzeba zapisać kwerendę
A.
SELECTDISTINCTmiastoFROMmieszkancy;
B.
SELECTCOUNT(DISTINCTmiasto)FROMmieszkancy;
Twoja odpowiedź
C.
SELECTCOUNT(miasto)FROMmieszkancyDISTINCT;
D.
SELECTCOUNT(miasto)FROMmieszkancy;
Poprawna odpowiedź. Wybór odpowiedzi "SELECT COUNT(DISTINCT miasto) FROM mieszkancy;" jest naprawdę trafny. Używasz funkcji COUNT razem z DISTINCT, co pozwala na zliczenie tylko unikalnych miast w tabeli 'mieszkancy'. Funkcja COUNT liczy wszystkie wiersze, a DISTINCT usuwa duplikaty, dzięki czemu dostajemy dokładną liczbę miast. Fajnie jest to wykorzystać, gdy analizujesz dane demograficzne – wtedy wiesz, jakie masz rozkłady w różnych miastach. W bazach danych to standardowy sposób, bo dzięki temu unikasz powielania danych i masz lepsze analizy. Ważne jest też, żeby pamiętać o wydajności zapytań; połączenie DISTINCT z COUNT może być bardziej efektywne niż próba szukania duplikatów później. No i zasady normalizacji bazy danych? One rzeczywiście pomagają w tym, żeby dane były uporządkowane, co ułatwia ich przetwarzanie i analizowanie.
Pytanie 35
Która funkcja SQL NIE przyjmuje żadnych argumentów?
A.
YEAR()
B.
NOW()
Poprawna odpowiedź
C.
LEN()
Twoja odpowiedź
D.
UPPER()
Niepoprawna odpowiedź. Pozostałe funkcje BEZ argumentu nie mają sensu - muszą coś dostać do przetworzenia. UPPER() potrzebuje tekstu, by zamienić go na wielkie litery. LEN() potrzebuje tekstu, by policzyć znaki. YEAR() potrzebuje daty, by wyciągnąć z niej rok. Pusty nawias akceptuje tylko NOW().
Pytanie 36
Czy poniższy kod PHP działa poprawnie, wyświetlając na stronie dane pobrane z bazy danych? Ile pól zostanie zaprezentowanych?
Poprawna odpowiedź. Kod PHP wykorzystuje funkcję mysqli_fetch_row aby pobrać dane z bazy danych które są następnie wyświetlane. W funkcji tej każda wiersz z wyników zapytania jest reprezentowany jako tablica indeksowana liczbowo. W zaprezentowanym fragmencie kodu mamy dostęp do trzech indeksów: $wiersz[0] $wiersz[1] oraz $wiersz[2]. Oznacza to że z każdego wiersza wyniku kwerendy pobierane są trzy pola. Kod ten wyświetla dane w formacie paragrafu HTML zawierającego imię i nazwisko klienta oraz jego adres. W praktyce taka konstrukcja jest często wykorzystywana do generowania dynamicznych treści na stronie internetowej. Należy jednak pamiętać o zabezpieczeniach takich jak filtrowanie danych wejściowych aby uniknąć zagrożeń związanych z SQL injection. Warto również rozważyć wykorzystanie bardziej złożonych struktur danych jak tablice asocjacyjne które pozwalają na bardziej czytelne i zrozumiałe odwoływanie się do poszczególnych pól wiersza danych zwłaszcza w przypadku większych projektów. Użycie mysqli_fetch_row jest zgodne z dobrą praktyką jeśli chcemy uzyskać dostęp do danych w sposób sekwencyjny i wydajny
Pytanie 37
Zamieszczone poniżej zapytanie SQL przyznaje uprawnienie SELECT:
B. do wszystkich tabel w bazie danych hurtowniaTwoja odpowiedź
C. dla konta root na serwerze sprzedawca
D. dla konta root na serwerze localhost
Poprawna odpowiedź. Podane polecenie SQL <code>GRANT SELECT ON hurtownia.* TO 'sprzedawca'@'localhost';</code> jest poprawne, ponieważ przyznaje uprawnienia do wykonywania zapytań SELECT na wszystkich tabelach w bazie danych hurtownia. Operator <code>.*</code> w kontekście bazy danych oznacza, że dotyczy to wszystkich tabel znajdujących się w tej bazie. Przyznawanie uprawnień w taki sposób jest zgodne z najlepszymi praktykami zarządzania dostępem w systemach baz danych, ponieważ umożliwia kontrolowanie, którzy użytkownicy mogą uzyskiwać dostęp do danych. W praktyce, jeśli 'sprzedawca' potrzebuje przeglądać dane ze wszystkich tabel w hurtowni, to takie przyznanie uprawnień jest najbardziej efektywne. Takie podejście ułatwia zarządzanie uprawnieniami, pozwalając administratorom na nadawanie ogólnych uprawnień w ramach bazy danych, zamiast przypisywania ich dla każdej tabeli z osobna. Dobrą praktyką jest również regularne przeglądanie i aktualizowanie przydzielonych uprawnień, aby zapewnić bezpieczeństwo i zgodność z zasadami ochrony danych.
Pytanie 38
Jak nazywa się składnik bazy danych, który umożliwia jedynie przeglądanie informacji z bazy, prezentując je w formie tekstowej lub graficznej?
A. RaportTwoja odpowiedź
B. Zapytanie
C. Tabela
D. Formularz
Poprawna odpowiedź. Raport to taka fajna część bazy danych, która pozwala ludziom spojrzeć na dane w czytelny sposób. Można je tworzyć, żeby analizować wyniki finansowe czy sprawdzać, jak firma sobie radzi. Przygotowywanie raportów na podstawie zapytań do bazy danych jest super, bo wszystko jest potem poukładane i przemyślane. W praktyce, raporty biorą dane z tabel i pokazują je w ładny sposób, wybierając odpowiednie kolumny i wiersze. Są też takie narzędzia jak SQL Server Reporting Services czy Crystal Reports, które oferują mnóstwo opcji do generowania raportów. To wszystko sprawia, że analiza danych jest lepsza i bardziej wizualna. Dobrze jest regularnie aktualizować raporty i dostosowywać je do potrzeb firmy, bo to pomaga w podejmowaniu decyzji na podstawie faktów.
Pytanie 39
Aby dodać nową kolumnę do już istniejącej tabeli, należy użyć polecenia SQL:
A.
ALTERTABLE
Twoja odpowiedź
B.
UPDATETABLE
C.
CREATETABLE
D.
INSERTINTO
Poprawna odpowiedź. Strukturę istniejącej tabeli zmienia polecenie ALTERTABLE. Aby dodać kolumnę, stosuje się je z klauzulą ADD, na przykład ALTERTABLEklienciADDtelefonVARCHAR(15). Tym samym poleceniem usuwa się lub modyfikuje kolumny i ograniczenia. Dlatego do dodania kolumny do gotowej tabeli służy ALTERTABLE.
Pytanie 40
Które narzędzie wiersza poleceń tworzy KOPIĘ ZAPASOWĄ bazy MySQL (zrzut do pliku)?
A.
create
B.
mysqlcheck
C.
mysqldump
Twoja odpowiedź
D.
truncate
Poprawna odpowiedź. Narzędzie mysqldump tworzy KOPIĘ ZAPASOWĄ bazy MySQL - zrzuca jej strukturę i dane do pliku (zwykle z poleceniami SQL), z którego można ją później odtworzyć. Dlatego kopię zapasową robi mysqldump.