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: 14 czerwca 2026 14:24
  • Data zakończenia: 14 czerwca 2026 14:45

Egzamin zdany!

Wynik: 21/40 punktów (52,5%)

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

Model fizyczny replikacji bazy danych pokazany na ilustracji to model

Ilustracja do pytania
A. rozproszony
B. centralnego subskrybenta
C. centralnego wydawcy
D. równorzędny
Model centralnego wydawcy jest kluczowym elementem w systemach replikacji baz danych gdzie jeden serwer pełni rolę wydawcy dystrybutora danych do wielu subskrybentów Ta architektura pozwala na efektywne zarządzanie danymi poprzez centralne sterowanie zmianami i ich dystrybucję do podłączonych serwerów subskrybentów W praktyce takie podejście jest używane w dużych organizacjach gdzie konieczne jest zapewnienie aktualności i spójności danych w różnych lokalizacjach Przykładowo w firmach z wieloma oddziałami centralny serwer może dystrybuować dane transakcyjne do lokalnych serwerów zapewniając wszystkim oddziałom bezpośredni dostęp do aktualnych informacji Dzięki temu możliwe jest przeprowadzenie analizy danych w czasie rzeczywistym oraz synchronizacja danych co jest kluczowe w przypadku systemów ERP i CRM Stosowanie modelu centralnego wydawcy zgodnie z dobrymi praktykami umożliwia także łatwe skalowanie systemu oraz zarządzanie bezpieczeństwem danych poprzez centralne punkty kontrolne Taka architektura minimalizuje ryzyko konfliktów danych i zapewnia integralność danych co jest zgodne ze standardami branżowymi

Pytanie 2

Instrukcja w języku SQL

GRANT ALL PRIVILEGES ON klienci TO pracownik
A. Odbiera wszystkie uprawnienia pracownikowi do tabeli klienci
B. Przenosi uprawnienia z grupy klienci na użytkownika pracownik
C. Przyznaje uprawnienia grupie klienci do tabeli pracownik
D. Przyznaje wszystkie uprawnienia do tabeli klienci użytkownikowi pracownik
Odpowiedź jest poprawna, ponieważ polecenie GRANT ALL PRIVILEGES ON klienci TO pracownik w języku SQL rzeczywiście nadaje wszystkie dostępne uprawnienia do tabeli klienci użytkownikowi pracownik. To oznacza, że pracownik zyskuje możliwość wykonywania wszelkich operacji na tej tabeli, w tym SELECT, INSERT, UPDATE oraz DELETE. Przykład zastosowania tego polecenia jest istotny w kontekście zarządzania bazami danych, gdzie administratorzy muszą przyznawać różnorodne uprawnienia użytkownikom w zależności od ich roli. Przykładowo, jeśli pracownik jest odpowiedzialny za wprowadzanie i aktualizację danych klientów, to nadanie mu wszystkich uprawnień jest uzasadnione. Ważne jest, aby przyznawać uprawnienia zgodnie z zasadą najmniejszych uprawnień, co oznacza, że użytkownik powinien mieć tylko te uprawnienia, które są niezbędne do realizacji jego zadań. W praktyce, administrator baz danych powinien monitorować przyznane uprawnienia i regularnie je przeglądać, aby zapewnić bezpieczeństwo systemu. Koszty błędów w przyznawaniu uprawnień mogą być znaczne, w tym ryzyko nieautoryzowanego dostępu do danych, dlatego kluczowe jest stosowanie dobrych praktyk w zarządzaniu uprawnieniami.

Pytanie 3

Która kwerenda utworzy WIDOK z klientami o statusie „Platynowy” (tabela klienci, pole status)?

A.
CREATE VIEW KlienciPlatyna AS klient WHERE status = "Platynowy";
B.
CREATE VIEW KlienciPlatyna AS SELECT status FROM klienci WHERE "Platynowy";
C.
CREATE VIEW KlienciPlatyna AS SELECT * FROM klienci WHERE status = "Platynowy";
D.
CREATE VIEW KlienciPlatyna FROM klienci WHERE status = "Platynowy";
Widok tworzy się poleceniem CREATE VIEW <nazwa> AS <SELECT ...> - jego definicją jest pełne zapytanie. Zapis CREATE VIEW KlienciPlatyna AS SELECT * FROM klienci WHERE status = "Platynowy" poprawnie wybiera platynowych klientów. Dlatego prawidłowa jest ta kwerenda.

Pytanie 4

Wskaż zapytanie, w którym dane są uporządkowane.

A. SELECT imie, nazwisko FROM mieszkancy WHERE wiek > 18 ORDER BY wiek;
B. SELECT DISTINCT produkt, cena FROM artykuly;
C. SELECT nazwisko FROM firma WHERE pensja > 2000 LIMIT 10;
D. SELECT AVG(ocena) FROM uczniowie WHERE klasa = 2;
Odpowiedź wskazująca na zapytanie "SELECT imie, nazwisko FROM mieszkancy WHERE wiek > 18 ORDER BY wiek;" jest prawidłowa, ponieważ zawiera klauzulę ORDER BY, która służy do sortowania rekordów w wynikach zapytania. W tym przypadku dane są sortowane według kolumny 'wiek', co pozwala na uzyskanie uporządkowanej listy mieszkańców, którzy mają więcej niż 18 lat. Sortowanie danych jest kluczowym aspektem w zarządzaniu bazami danych, umożliwiającym łatwiejsze wyszukiwanie oraz analizę informacji. Przykładem zastosowania może być generowanie raportów, gdzie istotne jest uporządkowanie danych, na przykład według wieku, aby zobaczyć, jak rozkłada się wiek mieszkańców w danej grupie. Dodatkowo, stosowanie sortowania zgodnie z przyjętymi standardami SQL zwiększa czytelność oraz efektywność zapytań, a także ułatwia rozwiązywanie problemów związanych z przetwarzaniem danych.

Pytanie 5

Aby za pomocą instrukcji SELECT uzyskać listę nazwisk osób mieszkających na osiedlu, przy czym nazwiska te nie mogą się powtarzać, należy sformułować zapytanie w następujący sposób

A. SELECT nazwisko FROM mieszkancy ORDER BY nazwisko
B. SELECT AVG(nazwisko) FROM mieszkancy
C. SELECT DISTINCT nazwisko FROM mieszkancy
D. SELECT TOP 10 nazwisko FROM mieszkancy
Odpowiedzi, które nie wykorzystują klauzuli DISTINCT, nie są w stanie spełnić wymogu eliminacji duplikatów w wynikach zapytania. Na przykład, użycie "SELECT nazwisko FROM mieszkancy ORDER BY nazwisko;" tylko sortuje wyniki według nazwisk, ale nie eliminuje powtarzających się rekordów. To jest typowy błąd w myśleniu, gdzie użytkownicy mogą myśleć, że sortowanie wystarczy, aby uzyskać unikalne wyniki. Jeżeli w tabeli znajduje się wiele osób o tym samym nazwisku, zapytanie to nadal zwróci wszystkie wystąpienia, co prowadzi do niepożądanych rezultatów. Z kolei "SELECT TOP 10 nazwisko FROM mieszkancy;" ogranicza wyniki do tylko 10 pierwszych rekordów, ale nie zapewnia ich unikalności. W zależności od kolejności, w jakiej dane są prezentowane, wynik może zawierać duplikaty, co nie spełnia wymagań zadania. Dodatkowo, "SELECT AVG(nazwisko) FROM mieszkancy;" ma na celu obliczenie średniej, co jest nonsensowne w kontekście kolumny tekstowej jak 'nazwisko', ponieważ średnia nie jest miarodajną miarą dla danych tekstowych. Takie podejście demonstruje niewłaściwe zrozumienie typów danych i ich zastosowań w SQL. W każdej sytuacji, umiejętność poprawnego formułowania zapytań SQL jest kluczowa dla efektywnej pracy z bazami danych i unikania błędów analitycznych.

Pytanie 6

Instrukcja REVOKE SELECT ON nazwa1 FROM nazwa2 w języku SQL pozwala na

A. przyznawanie praw do tabeli
B. odebranie uprawnień danemu użytkownikowi
C. przyznawanie uprawnień z użyciem ustalonego schematu
D. usunięcie użytkownika z bazy danych
Pierwsza z niepoprawnych odpowiedzi dotyczy nadawania uprawnień z użyciem zdefiniowanego schematu. W rzeczywistości polecenie REVOKE nie ma nic wspólnego z nadawaniem uprawnień, lecz dotyczy jedynie ich odbierania. Schematy w SQL służą do grupowania obiektów bazy danych, a nadawanie uprawnień odbywa się za pomocą polecenia GRANT. Kolejna odpowiedź sugeruje usuwanie użytkownika z bazy, co jest całkowicie nieprawidłowe. REVOKE nie ma na celu usuwania kont użytkowników ani ich danych, a jedynie zarządzanie ich dostępem do konkretnych zasobów. Ostatnia niepoprawna odpowiedź wskazuje na nadawanie praw do tabeli, co również jest błędne, ponieważ REVOKE służy do ich odbierania, a nie nadawania. Nadawanie uprawnień do tabeli wykonywane jest poprzez polecenie GRANT, które przyznaje użytkownikowi odpowiednie prawa. Te błędne odpowiedzi mogą wprowadzać w błąd osoby, które dopiero zaczynają przygodę z SQL, dlatego istotne jest, aby dokładnie zrozumieć różnicę między nadawaniem a odbieraniem uprawnień oraz znać odpowiednie komendy do zarządzania dostępem w bazach danych.

Pytanie 7

Do czego służy pole insert_id z biblioteki MySQLi w PHP?

A. do uzyskania kodu błędu nieudanego wstawienia
B. do pobrania pierwszego wolnego indeksu
C. do pobrania najwyższego indeksu bazy do inkrementacji
D. do uzyskania id ostatnio wstawionego wiersza
Pole insert_id z biblioteki MySQLi zwraca identyfikator (klucz AUTO_INCREMENT) OSTATNIO wstawionego wiersza - przydatne, gdy zaraz potem chcemy się do niego odwołać. Dlatego insert_id daje id ostatnio wstawionego wiersza.

Pytanie 8

Przedstawiony fragment kodu ilustruje działanie

Ilustracja do pytania
A. wykorzystania zdefiniowanej procedury lub funkcji
B. podjęcia decyzji
C. pozyskiwania danych
D. prezentacji danych
Blok przedstawiony na rysunku to romb, który w diagramach przepływu danych reprezentuje punkt decyzyjny. W kontekście programowania i modelowania procesów biznesowych, zastosowanie takich punktów jest kluczowe dla podejmowania decyzji na podstawie warunków logicznych. Na przykład, w algorytmach komputerowych romb służy do określenia, którą ścieżką proces powinien się dalej przemieszczać, zależnie od spełnienia określonych warunków. W praktyce, może to być na przykład wybór między dwiema różnymi akcjami, jak wysłanie e-maila lub zapis do bazy danych w zależności od wartości wprowadzonej przez użytkownika. Zastosowanie rombu zgodnie z zasadami BPMN (Business Process Model and Notation) oraz UML (Unified Modeling Language) pozwala na precyzyjne i czytelne modelowanie złożonych procesów, co jest kluczowe w projektowaniu systemów informatycznych i optymalizacji procesów biznesowych.

Pytanie 9

Jakie rozwiązanie powinno być wdrożone w organizacji danych, aby przyspieszyć wykonanie zapytań w bazie danych?

A. Wartości domyślne
B. Klucze podstawowe
C. Reguły
D. Indeksy
Indeksy w bazach danych są kluczowym narzędziem przyspieszającym wykonywanie zapytań, ponieważ pozwalają na szybsze odnajdywanie danych. Indeks działa jak spis treści w książce, umożliwiając systemowi zarządzania bazą danych (DBMS) szybkie zlokalizowanie konkretnych wierszy w tabelach. W praktyce, dodanie indeksu do kolumny, po której często są przeprowadzane wyszukiwania, może znacząco poprawić wydajność zapytań SELECT. Na przykład, jeśli mamy dużą tabelę z danymi o klientach i często wyszukujemy klientów według nazwiska, stworzenie indeksu na kolumnie 'nazwisko' pozwoli na zredukowanie czasu potrzebnego na wyszukiwanie z kilku sekund do milisekund. Warto również wspomnieć o dobrych praktykach związanych z używaniem indeksów, takich jak unikanie nadmiernego indeksowania, które może prowadzić do obniżenia wydajności operacji INSERT, UPDATE czy DELETE, ponieważ każdy z tych procesów musi również aktualizować odpowiednie indeksy. Dlatego kluczowe jest staranne planowanie i zastosowanie indeksów tam, gdzie przynoszą największe korzyści.

Pytanie 10

Tabela filmy zawiera klucz główny id oraz klucz obcy rezyserID, natomiast tabela rezyserzy ma klucz główny id. Obydwie tabele są połączone relacją jeden do wielu, gdzie strona rezyserzy odnosi się do strony filmy. Jak należy zapisać kwerendę SELECT, aby połączyć tabele filmy i rezyserzy?

A. ... filmy JOIN rezyserzy ON filmy.rezyserID = rezyserzy.filmyID ...
B. ... filmy JOIN rezyserzy ON filmy.id = rezyserzy.filmyID ...
C. ... filmy JOIN rezyserzy ON filmy.rezyserID = rezyserzy.id ...
D. ... filmy JOIN rezyserzy ON filmy.id = rezyserzy.id ...
Odpowiedź, która wskazuje na połączenie tabeli filmy z tabelą rezyserzy za pomocą klauzuli JOIN, z warunkiem ON filmy.rezyserID = rezyserzy.id, jest prawidłowa, ponieważ bezpośrednio odzwierciedla relację pomiędzy tymi dwiema tabelami. Klucz obcy rezyserID w tabeli filmy wskazuje na klucz główny id w tabeli rezyserzy. W związku z tym, aby prawidłowo połączyć te tabele w kwerendzie SELECT, musimy użyć tego klucza obcego w warunku połączenia. Przykładowo, w realnych zastosowaniach chcesz uzyskać informacje o filmach oraz ich reżyserach; więc pisząc zapytanie, możesz z łatwością uzyskać dane, takie jak tytuł filmu i imię reżysera, co jest kluczowe w systemach zarządzania bazą danych. Dobre praktyki wskazują, że zawsze należy używać poprawnych kluczy do łączenia tabel, aby uzyskać wiarygodne i dokładne wyniki, co jest fundamentalne w projektowaniu baz danych i tworzeniu zapytań SQL.

Pytanie 11

Jak nazywa się kwerenda pozwalająca zmienić lub przenieść wiele rekordów w jednej operacji?

A. funkcjonalna
B. wybierająca
C. parametryczna
D. krzyżowa
Kwerenda parametryczna przed uruchomieniem pyta o kryterium, wybierająca tylko odczytuje dane, a krzyżowa tworzy zestawienie w wierszach i kolumnach. Masową zmianę rekordów realizuje kwerenda funkcjonalna.

Pytanie 12

Aby utworzyć relację wiele do wielu między tabelami A i B, wystarczy, że

A. zostanie zdefiniowana trzecia tabela z kluczami obcymi do tabel A i B
B. połączenie tabeli A z tabelą B nastąpi poprzez określenie kluczy obcych
C. wiele wpisów z tabeli A powtórzy się w tabeli B
D. tabela A będzie miała identyczne pola jak tabela B
Odpowiedź, że należy zdefiniować trzecią tabelę z kluczami obcymi do tabel A i B, jest poprawna, ponieważ relacja wiele do wielu wymaga pośrednictwa trzeciej tabeli, często nazywanej tabelą asocjacyjną lub łączącą. W praktyce oznacza to, że każdy rekord w tabeli A może być powiązany z wieloma rekordami w tabeli B i vice versa. Tabela asocjacyjna zawiera co najmniej dwa pola kluczy obcych: jedno wskazujące na odpowiedni rekord w tabeli A i drugie na odpowiadający mu rekord w tabeli B. Na przykład, w systemie zarządzania kursami, tabela 'Studenci' i tabela 'Kursy' mogą być połączone poprzez tabelę 'Rejestracje', która przechowuje identyfikatory studentów i kursów, umożliwiając przypisanie wielu studentów do wielu kursów. To podejście jest zgodne z zasadami normalizacji baz danych, które mają na celu minimalizację redundancji i zapewnienie spójności danych. Dobrą praktyką jest również zapewnienie, że klucze obce w tabeli asocjacyjnej są odpowiednio indeksowane, co poprawia wydajność zapytań oraz umożliwia łatwe zarządzanie relacjami.

Pytanie 13

Tabela ksiazki ma kolumny tytul, autor, cena (liczbowa). Która kwerenda zwróci TYLKO tytuły książek tańszych niż 50?

A.
SELECT tytul FROM ksiazki WHERE cena > '50 zł';
B.
SELECT ksiazki FROM tytul WHERE cena < '50 zł';
C.
SELECT tytul FROM ksiazki WHERE cena < 50;
D.
SELECT * FROM ksiazki WHERE cena < 50;
Pozostałe zapytania nie spełniają warunków. SELECT * zwróciłby wszystkie kolumny, a nie same tytuły. Porównania z tekstem '50 zł' są błędne (cena jest liczbą), a > oznaczałoby książki DROŻSZE. SELECT ksiazki FROM tytul zamienia rolami tabelę i kolumnę. Poprawne jest SELECT tytul FROM ksiazki WHERE cena < 50;.

Pytanie 14

Które imiona spełniają warunek

SELECT imie FROM mieszkancy WHERE imie LIKE '_r%';
?
A. Rafał, Rebeka, Renata, Roksana
B. Arieta, Krzysztof, Krystyna, Tristan
C. Krzysztof, Krystyna, Romuald
D. Gerald, Jarosław, Marek, Tamara
Trzeba pamiętać, że _ to DOKŁADNIE jeden znak przed „r”. Imiona zaczynające się na „R” (Rafał, Renata) mają „r” na PIERWSZEJ pozycji, więc nie pasują. W zestawach z imionami, gdzie „r” nie jest drugą literą (np. Gerald, Marek), też nie wszystkie spełniają warunek. Wszystkie mają „r” na drugiej pozycji tylko w zestawie: Arieta, Krzysztof, Krystyna, Tristan.

Pytanie 15

W systemie baz danych sklepu znajdują się dwie tabele połączone relacją: produkty oraz oceny. Tabela oceny zawiera dowolną liczbę ocen wystawionych przez klientów dla konkretnego produktu, opisaną poprzez pola: id, ocena (pole numeryczne), produktID (klucz obcy). Aby uzyskać maksymalną ocenę dla produktu o ID wynoszącym 10, należy wykorzystać zapytanie

A. MAX SELECT ocena FROM oceny WHERE produktID = 10;
B. SELECT MAX COUNT(ocena) FROM oceny WHERE produktID = 10;
C. SELECT MAX(ocena) FROM oceny WHERE produktID = 10;
D. COUNT MAX SELECT ocena FROM oceny WHERE produktID = 10;
Odpowiedź 'SELECT MAX(ocena) FROM oceny WHERE produktID = 10;' jest poprawna, ponieważ wykorzystuje funkcję agregującą MAX, która zwraca największą wartość w danej kolumnie. W kontekście tego zapytania, funkcja MAX jest stosowana do kolumny 'ocena' w tabeli 'oceny', a dodatkowy warunek 'WHERE produktID = 10' ogranicza wyniki do tylko tych ocen, które są związane z produktem o ID równym 10. To podejście jest zgodne z najlepszymi praktykami SQL, które zalecają korzystanie z funkcji agregujących dla wydobywania statystyk z danych. W praktyce, takie zapytania są niezwykle ważne w analizie danych, na przykład do oceny jakości produktów, co może wpłynąć na decyzje biznesowe. Dzięki umiejętności konstruowania takich zapytań, analitycy mogą w łatwy sposób uzyskać kluczowe informacje niezbędne do strategii marketingowych oraz poprawy jakości obsługi klienta.

Pytanie 16

W hurtowni danych stworzono tabelę sprzedaz, która zawiera pola: id, kontrahent, grupa_cenowa, obrot. Jakie polecenie trzeba zastosować, aby znaleźć tylko kontrahentów z grupy cenowej numer dwa, których obrót przekracza 4000 zł?

A. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa = 2 OR obrot > 4000;
B. SELECT sprzedaz FROM kontrahent WHERE grupa_cenowa = 2 AND obrot > 4000;
C. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa = 2 AND obrot > 4000;
D. SELECT sprzedaz FROM kontrahent WHERE obrot > 4000;
Dwie niepoprawne odpowiedzi pokazują, że są pewne nieporozumienia w kwestii SQL. W pierwszej z nich używasz operatora OR, co psuje całą logikę zapytania. To sprawia, że możesz dostać kontrahentów z drugiej grupy cenowej albo tych, co mają obrót powyżej 4000 zł, a nie tylko tych, którzy spełniają oba warunki jednocześnie. W analizie danych ważne jest, żeby warunki były precyzyjne, bo inaczej wyniki mogą być nieczytelne. W kolejnej odpowiedzi widzę, że próbujesz wydobywać dane z kolumny kontrahent, co jest niepoprawne, bo kolumna to nie tabela. Musisz mieć jasność co do struktury bazy danych, żeby pisać odpowiednie zapytania. A ostatnia odpowiedź nie zawiera warunku dla grupy cenowej, więc zwróci jakieś niepełne dane. Dobrym pomysłem jest też testować swoje zapytania na mniejszych zbiorach danych, niż wdrażać je od razu w produkcji, żeby uniknąć takich błędów.

Pytanie 17

Którego słowa kluczowego SQL należy użyć, aby w wyniku zapytania wyeliminować powtarzające się wartości?

A.
GROUP BY
B.
DISTINCT
C.
ORDER BY
D.
LIKE
Pozostałe słowa robią co innego. LIKE dopasowuje wzorzec tekstu, ORDER BY sortuje wyniki, a GROUP BY grupuje wiersze do agregacji. Powtórzenia w wyniku usuwa DISTINCT.

Pytanie 18

Które zapytanie posortuje listę uczniów według roku urodzenia?

A.
SELECT imie, nazwisko, klasa FROM uczniowie WHERE rok_urodzenia = 1994
B.
SELECT imie, nazwisko, klasa FROM uczniowie ORDER BY nazwisko
C.
SELECT imie, nazwisko, klasa FROM uczniowie ORDER BY rok_urodzenia
D.
SELECT imie, nazwisko, klasa FROM uczniowie GROUP BY rok_urodzenia
Sortowanie wyniku zapewnia klauzula ORDER BY, więc listę uczniów wg roku urodzenia da SELECT imie, nazwisko, klasa FROM uczniowie ORDER BY rok_urodzenia (domyślnie rosnąco; DESC odwraca kolejność). To ORDER BY decyduje o KOLEJNOŚCI wierszy w wyniku. Zapamiętaj: chcesz uporządkować wynik - użyj ORDER BY z nazwą kolumny.

Pytanie 19

Wskaż zapytanie, które z tabeli klienci wybierze wyłącznie nazwiska trzech najlepszych klientów, czyli takich, którzy posiadają najwięcej punktów na swoim koncie (pole całkowite punkty)?

A. SELECT LIMIT 3 nazwisko FROM klienci ORDER BY nazwisko DESC
B. SELECT nazwisko FROM klienci ORDER BY punkty DESC LIMIT 3
C. SELECT nazwisko FROM klienci ORDER BY nazwisko DESC LIMIT 3
D. SELECT nazwisko FROM klienci LIMIT 3
Analiza niepoprawnych odpowiedzi ujawnia szereg kluczowych błędów w interpretacji zapytania SQL. W pierwszym przypadku, 'SELECT LIMIT 3 nazwisko FROM klienci ORDER BY nazwisko DESC;' następuje nieprawidłowa składnia, ponieważ klauzula LIMIT powinna być umieszczona po klauzuli ORDER BY. Taki błąd sprawia, że zapytanie nie zostanie zrealizowane przez system baz danych. Kolejna odpowiedź, 'SELECT nazwisko FROM klienci LIMIT 3;', pomija istotny element sortowania, dlatego zwróci po prostu pierwsze trzy nazwiska z tabeli, bez względu na ilość punktów. Takie podejście jest mało efektywne, ponieważ nie identyfikuje najlepszych klientów na podstawie ich punktów, co jest kluczowe dla analizy jakości klientów. Ostatnia odpowiedź, 'SELECT nazwisko FROM klienci ORDER BY nazwisko DESC LIMIT 3;', znów koncentruje się na sortowaniu alfabetycznym nazwisk zamiast na punktach, co nie spełnia kryteriów określonych w pytaniu. Takie błędy ukazują typowe nieporozumienia w zakresie funkcji SQL, gdzie kluczowe jest rozróżnienie pomiędzy różnymi metodami sortowania i ograniczania wyników. Istotne jest, aby w analizach danych zawsze zwracać uwagę na odpowiednie kryteria oraz zasady, które mają realny wpływ na proces podejmowania decyzji.

Pytanie 20

Przedstawiony fragment kodu PHP ma za zadanie umieścić dane znajdujące się w zmiennych $a, $b, $c w bazie danych, w tabeli dane. Tabela dane zawiera cztery pola, z czego pierwsze to autoinkrementowany klucz główny. Które z poleceń powinno być przypisane do zmiennej $zapytanie?

<?php
...
$zapytanie = "...";
mysqli_query($db, $zapytanie);
...
?>
A. INSERT INTO dane VALUES (NULL, '$a', '$b', '$c');
B. INSERT INTO dane VALUES ('$a', '$b', '$c');
C. SELECT '$a', '$b', '$c' FROM dane;
D. SELECT NULL, '$a', '$b', '$c' FROM dane;
Wybór opcji 'SELECT '$a', '$b', '$c' FROM dane;' jest nieprawidłowy, ponieważ polecenie SELECT służy do pobierania danych z bazy danych, a nie do ich wstawiania. W tym kontekście celem jest dodanie nowych rekordów, co wymaga użycia polecenia INSERT. Podobnie, 'SELECT NULL, '$a', '$b', '$c' FROM dane;' również nie ma sensu w kontekście dodawania danych, ponieważ znowu wykorzystuje polecenie SELECT, a dodatkowo NULL nie ma zastosowania jako wartość w kontekście gromadzenia danych do wstawienia. Użycie 'INSERT INTO dane VALUES ('$a', '$b', '$c');' jest błędne, ponieważ nie uwzględnia klucza głównego, który jest autoinkrementowany. Zatem, bez podania NULL jako miejsca klucza głównego, próba wstawienia danych doprowadziłaby do błędu, gdyż klucz główny powinien być unikalny i autoinkrementowany. Częstym błędem jest nieuwzględnienie struktury tabeli oraz mechanizmu kluczy głównych i obcych przy konstruowaniu zapytań do bazy danych. Dlatego kluczowe jest, aby zrozumieć, jak poprawnie formułować zapytania, uwzględniając specyfikację tabeli i właściwe polecenia SQL, co jest kluczowe dla efektywnego i bezbłędnego gromadzenia danych.

Pytanie 21

Rekord w bazie danych jest jednoznacznie identyfikowany przez pole:

A. numeryczne
B. klucza podstawowego
C. klucza obcego
D. relacji
Rekord w bazie jednoznacznie identyfikuje pole klucza PODSTAWOWEGO (głównego) - jego wartości są unikalne i niepuste. Dlatego identyfikuje go klucz podstawowy.

Pytanie 22

Aby wykonać usunięcie wszystkich zapisów z tabeli, konieczne jest użycie kwerendy

A. CREATE COLUMN
B. TRUNCATE TABLE
C. ALTER COLUMN
D. INSERT INTO
Inne odpowiedzi nie są odpowiednie w kontekście usuwania wszystkich rekordów z tabeli. Kwerenda 'INSERT INTO' jest używana do dodawania nowych rekordów do tabeli, co stoi w sprzeczności z celem usunięcia danych. Użytkownicy często mylą te polecenia, zakładając, że mogą one działać w podobny sposób, co prowadzi do nieporozumień w zarządzaniu danymi w bazach. Z kolei 'ALTER COLUMN' służy do modyfikacji struktury kolumny w tabeli, a nie do usuwania danych. Użytkownicy mogą mylnie sądzić, że zmiana kolumn może wpłynąć na zawartość tabeli, jednak należy zwrócić uwagę, że te polecenia dotyczą przede wszystkim schematu bazy danych, a nie jej zawartości. 'CREATE COLUMN' również jest nieprawidłowe, ponieważ odnosi się do dodawania nowych kolumn do istniejącej tabeli. Użytkownicy mogą mylić te komendy, nie rozumiejąc, że każda z nich ma inny cel i zastosowanie. Kluczowe jest, aby zrozumieć, że operacje na danych wymagają precyzyjnych kwerend, które odpowiadają specyficznym potrzebom, a zamienianie jednego polecenia na inne prowadzi do nieefektywnego zarządzania danymi oraz potencjalnych błędów w aplikacjach bazodanowych.

Pytanie 23

W SQL, aby dokonać zmiany w strukturze tabeli, na przykład dodać lub usunąć kolumnę, powinno się użyć polecenia

A. ALTER TABLE
B. UPDATE
C. TRUNCATE
D. DROP TABLE
Wybór poleceń takich jak 'UPDATE', 'TRUNCATE' czy 'DROP TABLE' wskazuje na nieporozumienia dotyczące ich zastosowania w kontekście zmiany struktury tabeli. 'UPDATE' jest używane do modyfikacji danych już istniejących w tabeli, a nie do zmiany jej struktury. Umożliwia aktualizację wartości w kolumnach, jednak nie wpływa na same kolumny czy ich definicje. 'TRUNCATE' służy do szybkiego usuwania wszystkich rekordów z tabeli, ale nie można go używać do zmiany struktury tabeli ani do usunięcia kolumn. Tego typu operacja nie tylko nie jest możliwa, ale także wymaga innego podejścia niż modyfikacja struktury. Z kolei 'DROP TABLE' całkowicie usuwa tabelę i wszystkie jej dane, co jest drastycznym krokiem, gdyż skutkuje utratą wszystkich informacji w niej zawartych. Wybór tych poleceń wskazuje na typowe błędy myślowe związane z zamianą operacji na danych z operacjami na strukturze bazy danych. W praktyce, modyfikacje struktury tabel powinny być zawsze przemyślane i zaplanowane, aby zachować integralność danych oraz zgodność z wymaganiami aplikacyjnymi.

Pytanie 24

Którym słowem kluczowym połączyć wyniki dwóch zapytań SELECT w jeden zbiór?

A.
AS
B.
UNION
C.
JOIN
D.
DISTINCT
Pozostałe słowa robią co innego. JOIN łączy tabele POZIOMO (dokłada kolumny powiązanych wierszy), a nie scala zbiorów wierszy. DISTINCT usuwa duplikaty w jednym zapytaniu, a AS nadaje alias. Wyniki dwóch SELECT zespala UNION.

Pytanie 25

Czym jest relacja w bazach danych?

A. algebraicznym połączeniem tabel
B. logicznym połączeniem tabel
C. połączeniem dwóch pól w obrębie jednej tabeli
D. kluczem głównym w relacji tabel
Relacja w bazach danych to logiczne połączenie tabel, które umożliwia organizację i zarządzanie danymi w sposób umożliwiający ich efektywne przetwarzanie. W kontekście baz danych relacyjnych, relacje tworzone są na podstawie kluczy, które pozwalają na łączenie danych z różnych tabel. Na przykład, w bazie danych e-commerce, tabela 'Klienci' może być połączona z tabelą 'Zamówienia' przez klucz klienta. Dzięki temu, gdy zapytamy o zamówienia konkretnego klienta, silnik bazy danych może wykonać zapytanie łączące te obie tabele, dostarczając spójny zestaw danych. Taki model relacyjny oparty jest na teorii zbiorów i algebrze relacyjnej, co pozwala na skomplikowane operacje, takie jak łączenie, filtrowanie i agregowanie danych. W praktyce, relacje w bazach danych są kluczowe dla zapewnienia integralności danych, eliminacji redundancji oraz zwiększenia wydajności operacji na danych. Standardy takie jak SQL oparte są na tych koncepcjach, co czyni je fundamentalnymi w programowaniu baz danych.

Pytanie 26

W jaki sposób zostanie uporządkowana lista, stworzona z wszystkich kolumn tabeli uczniowie, zawierająca uczniów z średnią powyżej 5, która zostanie zwrócona jako rezultat przedstawionego zapytania?

Ilustracja do pytania
A. Rosnąco według parametru klasa
B. Malejąco według parametru srednia
C. Rosnąco według parametru srednia
D. Malejąco według parametru klasa
Sortowanie listy wynikowej w SQL jest kluczową operacją, wpływającą na prezentację danych użytkownikowi końcowemu. W kontekście przedstawionego pytania, kluczowym elementem było zrozumienie różnicy między sortowaniem rosnącym a malejącym. Odpowiedzi sugerujące sortowanie według parametru średnia wskazują na brak uwzględnienia kluczowej części zapytania dotyczącej klauzuli ORDER BY, która wyraźnie określała sortowanie według klasy. Błędne zrozumienie kierunku sortowania, czyli rosnąco lub malejąco, wskazuje na pominięcie znaczenia DESC w zapytaniu. DESC to skrót od descending, co oznacza porządek malejący, z kolei jej brak domyślnie oznaczałby sortowanie rosnące (ASC). SQL jest językiem, w którym precyzja składni ma kluczowe znaczenie, a drobne różnice w poleceniach mogą prowadzić do odmiennych wyników. Wybierając parametry sortowania, dobrze jest zrozumieć, jak wpływają one na sposób prezentacji danych. Częstym błędem jest nieuwzględnienie priorytetu sortowania, który w praktyce projektowania baz danych może mieć wpływ na wydajność zapytań, zwłaszcza gdy bazy danych zawierają duże ilości danych. Dlatego też, aby uniknąć typowych błędów, warto dokładnie analizować każde polecenie i jego wpływ na wynikowy zestaw danych.

Pytanie 27

W tabeli szkola (kolumny: imie, nazwisko, klasa) chcemy usunąć absolwentów - uczniów klasy 6. Które polecenie jest poprawne?

A.
UPDATE szkola SET klasa = 6
B.
SELECT * FROM szkola WHERE klasa = 6
C.
DELETE FROM szkola WHERE klasa = 6
D.
DROP FROM szkola WHERE klasa = 6
Pozostałe zapytania nie usuną tych uczniów lub są błędne. SELECT * FROM szkola WHERE klasa = 6 jedynie wyświetli wiersze - odczyt nie kasuje danych. UPDATE szkola SET klasa = 6 zmieniłoby wszystkim uczniom klasę na 6 zamiast cokolwiek usuwać. DROP działa na całych obiektach (np. DROP TABLE usuwa tabelę) i nie używa się go z WHERE do kasowania pojedynczych wierszy. Usunięcie wybranych rekordów wykonuje DELETE FROM szkola WHERE klasa = 6, dlatego to ono jest poprawne.

Pytanie 28

W tabeli uczniowie (kolumny: imie, nazwisko, klasa) chcemy wypisać uczniów, których nazwisko zaczyna się na literę M. Które zapytanie jest poprawne?

A.
SELECT nazwisko, imie FROM uczniowie WHERE nazwisko LIKE "M%"
B.
SELECT nazwisko, imie FROM uczniowie WHERE nazwisko IN "M%"
C.
SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko = "M%"
D.
SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko IN "M%"
Pozostałe zapytania nie odfiltrują nazwisk na literę M. Dwa z nich filtrują w ORDER BY, które służy WYŁĄCZNIE do sortowania wyników, a nie do wybierania wierszy - do tego potrzebny jest WHERE. Wariant z WHERE nazwisko IN "M%" używa operatora IN, który sprawdza, czy wartość należy do podanej listy (np. IN ("Kowalski","Nowak")), i nie rozumie wzorca z %. Dopasowanie po początku tekstu daje WHERE nazwisko LIKE "M%", dlatego to ono jest poprawne.

Pytanie 29

W relacyjnym modelu danych, krotki definiuje się jako

A. wszystkie wiersze w tabeli łącznie z wierszem nagłówkowym
B. wszystkie kolumny tabeli, które reprezentują atrybuty obiektu
C. wiersze tabeli wyłączając wiersz nagłówkowy, w którym znajdują się nazwy kolumn
D. liczbę rekordów w tabeli
Krotka to taki ważny element w relacyjnych bazach danych, który odnosi się do konkretnych rekordów w tabeli. Każda krotka to jakby zestaw informacji, który dotyczy jednej jednostki, na przykład pojedynczego użytkownika w tabeli 'Użytkownicy'. Zawiera wartości atrybutów, które są przypisane do kolumn w tabeli. Te wartości są przechowywane w wierszach, a nagłówek z nazwami kolumn nie wchodzi w grę, jeśli chodzi o definicję krotek. Na przykład, w tabeli dotyczącej studentów, każdy wiersz mógłby zawierać dane jednego studenta, takie jak imię, nazwisko, wiek czy kierunek studiów. Myślę, że zrozumienie, czym jest krotka, jest kluczowe, żeby dobrze projektować bazy danych i używać SQL, bo w nim operacje na krotkach to podstawa większości zapytań. W praktyce, krotki pomagają również tworzyć relacje między tabelami w bazie danych, gdzie można je wykorzystać do przedstawiania powiązań między różnymi obiektami, na przykład 'Studenci' i 'Kursy'.

Pytanie 30

Które polecenia należą w SQL do grupy DCL (Data Control Language)?

A.
DELETE
i
UPDATE
B.
CREATE
i
DROP
C.
GRANT
i
REVOKE
D.
SELECT
i
INSERT
Pozostałe polecenia należą do innych grup. CREATE i DROP to DDL (definicja struktury). SELECT, INSERT, DELETE i UPDATE to DML (manipulacja danymi). Sterowaniem uprawnieniami zajmują się GRANT i REVOKE.

Pytanie 31

Polecenie MySQL pokazane poniżej spowoduje, że użytkownikowi tkowal zostaną odebrane określone uprawnienia:

REVOKE DELETE, UPDATE ON pracownicy FROM 'tkowal'@'localhost';
A. przydzielone uprawnienia do wszelkich zmian struktury tabeli pracownicy
B. przydzielone uprawnienia do usuwania oraz aktualizacji danych w tabeli pracownicy
C. odebrane uprawnienia do usuwania i dodawania rekordów w tabeli pracownicy
D. odebrane uprawnienia do usuwania i modyfikacji danych w tabeli pracownicy
Polecenie REVOKE w MySQL jest używane do cofania praw dostępu, które wcześniej zostały przyznane użytkownikowi. W zapytaniu REVOKE DELETE UPDATE ON pracownicy FROM tkowal@localhost cofamy prawa do usuwania i aktualizowania danych w tabeli pracownicy użytkownikowi o nazwie tkowal. To konkretne polecenie wskazuje, że wspomniane uprawnienia były wcześniej nadane temu użytkownikowi i teraz administrator bazy danych postanowił je cofnąć. Revoke jest kluczowe w zarządzaniu bezpieczeństwem i kontrolą dostępu w systemach baz danych zwłaszcza gdy potrzeby biznesowe lub polityka bezpieczeństwa wymagają ograniczenia możliwości użytkowników MySQL. Praktycznym przykładem może być sytuacja w której pracownik o niższym poziomie uprawnień nie powinien modyfikować lub usuwać kluczowych danych w bazie co zabezpiecza dane przed nieautoryzowanymi zmianami. Dobre praktyki branżowe zalecają regularne przeglądy uprawnień i ich aktualizację tak aby były one zgodne z aktualnymi potrzebami operacyjnymi i polityką bezpieczeństwa organizacji. Zarządzanie uprawnieniami w bazach danych jest fundamentalnym elementem bezpieczeństwa IT.

Pytanie 32

Na ilustracji przedstawiono dwie tabele. Aby ustanowić między nimi relację jeden do wielu, gdzie jedna strona to Klienci, a druga strona to Zamowienia, należy

Ilustracja do pytania
A. wprowadzić pole klucza obcego do tabeli Zamowienia i powiązać je z ID tabeli Klienci.
B. powiązać relacją pola ID z obu tabel.
C. stworzyć trzecią tabelę z dwoma kluczami obcymi. Jeden klucz połączyć z ID tabeli Klienci, a drugi klucz połączyć z ID tabeli Zamowienia.
D. dodać pole klucza obcego do tabeli Klienci i powiązać je z ID tabeli Zamowienia.
Tworzenie relacji jeden do wielu między tabelami w bazie danych wymaga zrozumienia, jak działa klucz podstawowy i klucz obcy. W tym przypadku tabela Klienci posiada pole ID, które jest kluczem podstawowym. Aby utworzyć relację jeden do wielu, należy dodać do tabeli Zamowienia pole klucza obcego, które będzie połączone z polem ID z tabeli Klienci. Dzięki temu każdy rekord w tabeli Zamowienia będzie mógł być przypisany do jednego klienta, ale jeden klient może mieć wiele zamówień. Taka struktura jest zgodna z normalizacją baz danych, która ma na celu eliminację redundancji danych i zapewnienie integralności danych. W praktyce, w systemach takich jak SQL, relacje te są wykorzystywane do wykonywania operacji takich jak wyszukiwanie wszystkich zamówień dla konkretnego klienta, co jest wykonywane przez dołączenie tabel za pomocą klucza obcego. Implementacja kluczy obcych w bazach danych jest standardową praktyką, która zwiększa spójność i bezpieczeństwo danych, minimalizując ryzyko błędów podczas operacji CRUD (Create Read Update Delete).

Pytanie 33

Za pomocą podanego zapytania w tabeli zostanie wykonane

ALTER TABLE nazwa1 ADD nazwa2 DOUBLE NOT NULL;
A. Dodana kolumna nazwa2, która nie przyjmuje wartości domyślnej.
B. Została zmieniona nazwa kolumny z nazwa1 na nazwa2.
C. Dodana kolumna nazwa2 o typie zmiennoprzecinkowym.
D. Zmieniono typ kolumny nazwa2 na DOUBLE.
Poprawna odpowiedź, czyli dodanie kolumny nazwa2 typu zmiennoprzecinkowego (DOUBLE), jest zgodna z poleceniem przedstawionym w zapytaniu SQL. Instrukcja ALTER TABLE jest używana do modyfikacji istniejącej tabeli, a w tym przypadku dodajemy nową kolumnę. Typ DOUBLE oznacza zmiennoprzecinkową reprezentację liczb, co jest przydatne w sytuacjach, gdy potrzebujemy precyzyjnie przechowywać wartości liczbowe z ułamkami, takie jak ceny, wyniki pomiarów czy dane statystyczne. W praktyce, użycie zmiennoprzecinkowego typu danych jest standardową praktyką w bazach danych, kiedy musimy operować na liczbach, które mogą mieć wartości dziesiętne. Dodatkowo, opcja NOT NULL zapewnia, że kolumna ta zawsze będzie miała przypisaną wartość, co przyczynia się do integralności danych w bazie. Zastosowanie takiego rozwiązania jest niezbędne w wielu aplikacjach, gdzie precyzyjne obliczenia są kluczowe, na przykład w systemach finansowych czy analizach danych.

Pytanie 34

W dostępnej tabeli mieszkań znajdują się kolumny o nazwach: adres, metraż, liczba_pokoi, standard, status, cena. Wykonanie podanej kwerendy SQL SELECT spowoduje, że zostaną wyświetlone

Ilustracja do pytania
A. metraż oraz cena tych mieszkań, które mają więcej niż 3 pokoje
B. wszystkie informacje dotyczące mieszkań, które mają co najmniej 3 pokoje
C. metraż oraz cena tych mieszkań, które mają co najmniej 3 pokoje
D. wszystkie informacje oprócz adresu tych mieszkań, które mają więcej niż 3 pokoje
Kwerenda SQL SELECT metraz cena FROM mieszkania WHERE ile_pokoi 3 jest zapytaniem, które precyzyjnie określa zakres danych do wyświetlenia na podstawie warunku. Polecenie SELECT określa, które kolumny będą zwracane w wyniku kwerendy w tym przypadku metraz i cena. Dzięki temu uzyskujemy tylko te dane które są istotne w kontekście analizy efektywności lub porównania cen nieruchomości o określonym rozmiarze w ramach bazy danych. Użycie klauzuli WHERE ile_pokoi 3 definiuje dodatkowy filtr aby wyświetlane były jedynie te rekordy które spełniają podany warunek logiczny czyli ilość pokoi większą niż trzy. Jest to powszechnie stosowana praktyka w pracy z bazami danych pozwalająca na efektywne przetwarzanie i analizę dużych zbiorów danych poprzez ograniczenie zwracanych wyników do tych które są najbardziej istotne dla użytkownika. Takie podejście pozwala na optymalizację wydajności zapytań SQL co jest kluczowe w środowiskach produkcyjnych gdzie czas odpowiedzi i obciążenie serwera mają istotne znaczenie

Pytanie 35

Która z funkcji agregujących dostępnych w SQL służy do obliczania średniej z wartości znajdujących się w określonej kolumnie?

A. SUM
B. COUNT
C. AVG
D. MIN
Funkcja AVG w języku SQL jest wbudowaną funkcją agregującą, która służy do obliczania średniej wartości we wskazanej kolumnie. Oblicza ona średnią arytmetyczną z wartości liczbowych w danej kolumnie, co jest niezwykle przydatne w analizie danych. Na przykład, jeśli mamy tabelę z wynikami sprzedaży, możemy użyć zapytania SQL: SELECT AVG(sprzedaż) FROM tabela_sprzedaży; aby uzyskać średnią sprzedaż. Dobrą praktyką jest stosowanie tej funkcji w połączeniu z klauzulą GROUP BY, co pozwala na obliczenie średnich wartości w różnych grupach danych, na przykład średnia sprzedaż według kategorii produktowej. Przy stosowaniu funkcji AVG warto pamiętać, że ignoruje ona wartości NULL, co wpływa na wynik obliczeń. W kontekście analizy danych w SQL, znajomość takich funkcji jak AVG jest kluczowa dla efektywnego przetwarzania i analizy informacji, co stanowi fundament dobrego zarządzania danymi.

Pytanie 36

Dostępna jest tabela ksiazki z kolumnami: tytul (typ tekstowy) oraz cena (typ liczbowy). W celu uzyskania z kwerendy SELECT jedynie tytułów, dla których cena jest mniejsza od 50 zł, należy użyć następującego zapisu:

A. SELECT tytul FROM ksiazki WHERE cena>'50 zł';
B. SELECT * FROM ksiazki WHERE cena<50;
C. SELECT tytul FROM ksiazki WHERE cena<50;
D. SELECT ksiazki FROM tytul WHERE cena<'50 zł';
Wybór niepoprawnej odpowiedzi jest wynikiem kilku typowych błędów w myśleniu związanych z konstrukcją zapytań SQL. Odpowiedź "SELECT * FROM ksiazki WHERE cena<50;" zwraca wszystkie kolumny z tabeli, co jest niezgodne z wymaganiem, które wskazywało na potrzebę zwrócenia jedynie tytułów książek. Użycie znaku '*' do pobierania wszystkich danych jest często niewłaściwe w kontekście optymalizacji, ponieważ może prowadzić do niepotrzebnego obciążenia zarówno bazy danych, jak i aplikacji klienckiej. Innym błędem jest odpowiedź "SELECT tytul FROM ksiazki WHERE cena>'50 zł';", która zawiera nieprawidłowy operator porównania '>', oraz niepoprawny zapis wartości liczbowej z jednostką walutową. W SQL nie używamy jednostek walutowych w porównaniach, co może prowadzić do nieprawidłowych wyników. Ponadto, odpowiedź "SELECT ksiazki FROM tytul WHERE cena<'50 zł';" zawiera błędną strukturę zapytania, gdzie błędnie użyto nazw kolumn oraz tabeli, co jest podstawowym błędem składniowym. Ważne jest, aby przy tworzeniu zapytań zwracać uwagę na logikę działania SQL oraz właściwą składnię, co pozwoli uniknąć typowych pułapek w procesie analizy danych.

Pytanie 37

W skrypcie PHP, aby zamknąć otwarte wcześniej połączenie z bazą danych, należy wywołać funkcję:

A.
mysqli_connect
B.
mysqli_select_db
C.
mysqli_close
D.
mysqli_query
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 38

Jaką rolę pełni funkcja PHP o nazwie mysql_select_db()?

A. określić tabelę, z której będą pobierane informacje
B. określić bazę, z której będą pobierane dane
C. pobrać dane z bazy danych na podstawie zapytania
D. nawiązać połączenie bazy danych z serwerem SQL
Funkcja mysql_select_db() służy do określenia, która baza danych będzie używana w kontekście bieżącego połączenia z serwerem MySQL. W momencie, gdy nawiązuje się połączenie z serwerem za pomocą funkcji mysql_connect(), należy jasno zdefiniować, w której bazie danych będą wykonywane zapytania. Właściwe ustawienie aktualnej bazy danych jest kluczowe, ponieważ wszelkie operacje związane z pobieraniem lub modyfikowaniem danych będą odnosiły się tylko do tej wskazanej bazy. Przykładowo, jeżeli mamy bazę danych 'sklep' i chcemy pobrać dane o produktach, najpierw musimy wywołać mysql_select_db('sklep'). Dobrą praktyką jest również sprawdzenie, czy operacja wyboru bazy danych zakończyła się sukcesem, co można zrobić, sprawdzając zwracany wynik. Należy pamiętać, że funkcja mysql_select_db() jest częścią starzejącego się interfejsu MySQL, a w nowoczesnych aplikacjach rekomendowane są bardziej aktualne rozszerzenia, takie jak MySQLi lub PDO, które oferują lepsze możliwości obsługi błędów oraz bezpieczeństwo.

Pytanie 39

Zadanie przedstawione w ramce polecenia SQL ma na celu

Ilustracja do pytania
A. ustawić wartość kolumny id_klasy na 1 dla wszystkich wpisów w tabeli Uczen
B. powiększyć wartość pola Uczen o jeden
C. ustawić wartość pola Uczen na 1
D. zwiększyć wartość kolumny id_klasy o jeden dla wszystkich wpisów tabeli Uczen
Analizując podane odpowiedzi możemy dostrzec kilka błędnych koncepcji które warto omówić Zrozumienie działania polecenia SQL jest kluczowe dla jego poprawnego zastosowania Pierwsza odpowiedź sugeruje że polecenie ustawia wartość na 1 dla pola Uczen co jest błędne ponieważ nie ma w nim żadnej instrukcji wskazującej na ustawienie wartości na określoną liczbę zatem nie odnosi się do pola Uczen lecz do kolumny id_klasy Druga odpowiedź zakłada że wartość pola Uczen zostanie zwiększona o jeden co również jest błędne ponieważ w poleceniu SQL nie występuje żadne odniesienie do pola Uczen lecz jedynie do id_klasy Poprawne zrozumienie struktury tabeli oraz dokładne czytanie polecenia jest tu kluczowe Trzecia odpowiedź sugeruje że wszystkie wartości id_klasy zostaną ustawione na 1 co jest mylne ponieważ polecenie wyraźnie wskazuje na operację zwiększania wartości a nie ich ustawiania na stałą liczbę Typowe błędy myślowe wynikają tu z braku dokładnej analizy składni SQL oraz niepełnego zrozumienia celu operacji UPDATE który często stosuje się do manipulacji danymi w sposób zautomatyzowany i kontrolowany Uważna analiza i testowanie poleceń SQL w środowisku testowym przed wdrożeniem w środowisku produkcyjnym jest kluczowym elementem dobrych praktyk branżowych Pozwoli to uniknąć potencjalnych błędów oraz zapewnić poprawne działanie aplikacji zarządzających danymi

Pytanie 40

Pole insert_id zdefiniowane w bibliotece MySQLi języka PHP może być wykorzystane do

A. pobrania najwyższego indeksu bazy, aby po jego zwiększeniu wstawić pod niego dane
B. otrzymania kodu błędu, gdy wstawienie wiersza się nie powiodło
C. uzyskania id ostatnio dodanego wiersza
D. uzyskania pierwszego dostępnego indeksu bazy, tak, aby można było pod nim wstawić nowe dane
Każda z niepoprawnych odpowiedzi zawiera błędne założenia dotyczące funkcji insert_id w kontekście MySQLi. Odpowiedź, która sugeruje, że pole to może być użyte do otrzymania kodu błędu w przypadku niepowodzenia procesu wstawiania wiersza, jest myląca, ponieważ kod błędu jest uzyskiwany za pomocą innych mechanizmów, takich jak mysqli_errno() oraz mysqli_error(). Takie podejście może prowadzić do nieporozumień w zarządzaniu błędami w bazach danych, co jest istotnym aspektem programowania. Ponadto, pomysł, że insert_id może być używany do pobrania najwyższego indeksu bazy, aby po jego inkrementacji wstawić nowe dane jest nieprawidłowy, ponieważ insert_id nie działa w ten sposób; identyfikator jest automatycznie generowany przez bazę danych w momencie dodawania rekordu. Takie podejście może prowadzić do trudności w synchronizacji danych i jest niezgodne z zasadami dobrego projektowania baz danych. Również koncepcja pozyskiwania pierwszego wolnego indeksu jest błędna; w praktyce nie jest zalecane ręczne zarządzanie indeksami, ponieważ może to prowadzić do konfliktów i naruszenia integralności danych. MySQL automatycznie zarządza numerami ID, co jest bardziej efektywne i zmniejsza ryzyko błędów. Wreszcie, stosując te nieprawidłowe koncepcje, programiści mogą napotkać trudności w utrzymaniu kodu i jego rozwoju, co może zwiększyć złożoność aplikacji.