Pytania pomocnicze - INF.03
Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
Pytania pomocnicze rozwijające tematy z pytań egzaminacyjnych. Każde pytanie ma krótką odpowiedź, która pomaga utrwalić wiedzę i przygotować się do egzaminu. Łącznie: 6221.
Strona 78 z 81.
Jak odczytać deklarację funkcji w C++?
Najpierw sprawdza się typ przed nazwą funkcji — to typ zwracanej wartości. Następnie analizuje się nawiasy, czyli listę parametrów przyjmowanych przez funkcję.
Co oznacza deklaracja `int fun1(float a);`?
Funkcja `fun1` przyjmuje jeden argument typu `float`, czyli liczbę rzeczywistą. Zwraca wynik typu `int`, czyli liczbę całkowitą.
Jaka jest różnica między typem `int` a `float` w C++?
`int` służy do przechowywania liczb całkowitych, np. `5` lub `-10`. `float` służy do przechowywania liczb rzeczywistych, np. `3.14`.
Co oznacza typ `void` przed nazwą funkcji?
Typ `void` przed nazwą funkcji oznacza, że funkcja nie zwraca żadnej wartości. Przykład: `void wypisz(int x);`.
Czy parametr funkcji może mieć typ `void` i nazwę, np. `void a`?
Nie. `void` oznacza brak wartości, więc nie tworzy się zmiennej typu `void`. Zapis `void a` jako parametr jest błędny.
Gdzie w deklaracji funkcji znajduje się typ zwracany?
Typ zwracany znajduje się przed nazwą funkcji. W deklaracji `float fun1(int a);` typem zwracanym jest `float`.
Gdzie w deklaracji funkcji znajdują się typy argumentów?
Typy argumentów znajdują się w nawiasach po nazwie funkcji. W deklaracji `int fun1(float a);` argument `a` ma typ `float`.
Do czego służy DISTINCT w zapytaniu SELECT?
DISTINCT usuwa z wyniku powtarzające się wiersze lub powtarzające się kombinacje wartości wskazanych kolumn. Dzięki temu wynik zawiera tylko unikalne wartości.
Czy SELECT DISTINCT wybiera rekordy, które występują w bazie tylko raz?
Nie. DISTINCT nie sprawdza, ile razy rekord występuje w tabeli, tylko usuwa duplikaty z wyniku zapytania.
Jaka jest różnica między DISTINCT a GROUP BY?
DISTINCT usuwa powtórzenia z wyniku. GROUP BY grupuje rekordy, najczęściej po to, aby użyć funkcji agregujących, np. COUNT(), SUM() lub AVG().
Jaka jest różnica między DISTINCT a ORDER BY?
DISTINCT odpowiada za niepowtarzanie się wartości w wyniku. ORDER BY służy do sortowania wyników rosnąco lub malejąco.
Jak działa DISTINCT dla kilku kolumn?
Dla kilku kolumn DISTINCT zwraca unikalne kombinacje wartości tych kolumn. Powtórzenie zostanie usunięte tylko wtedy, gdy wszystkie wskazane wartości są takie same.
Czy DISTINCT zmienia dane zapisane w tabeli?
Nie. DISTINCT działa tylko na wynik zapytania SELECT i nie modyfikuje danych w bazie.
Do czego służy polecenie CHECK TABLE w MySQL?
Służy do sprawdzania poprawności tabeli w bazie danych. Może wykrywać problemy ze strukturą tabeli, indeksami lub niepoprawnym zamknięciem tabeli.
Co oznacza opcja CHANGED w poleceniu CHECK TABLE?
Opcja `CHANGED` powoduje sprawdzenie tabel, które zmieniły się od ostatniej kontroli lub nie zostały poprawnie zamknięte.
Czym różni się CHECK TABLE od ograniczenia CHECK w SQL?
`CHECK TABLE` to polecenie administracyjne do kontroli tabeli. Ograniczenie `CHECK` służy do pilnowania poprawności wartości wpisywanych do kolumn.
Kiedy administrator bazy danych może użyć CHECK TABLE?
Po awarii serwera, problemach z dyskiem, podejrzeniu uszkodzenia tabeli albo w ramach okresowej kontroli poprawności bazy danych.
Czy CHECK TABLE modyfikuje dane w tabeli?
Nie. `CHECK TABLE` jest poleceniem diagnostycznym, które sprawdza tabelę, ale samo nie naprawia ani nie zmienia danych.
Jaka jest różnica między opcjami FAST i CHANGED w CHECK TABLE?
`FAST` sprawdza tylko tabele, które nie zostały poprawnie zamknięte. `CHANGED` sprawdza tabele zmienione od ostatniej kontroli lub niepoprawnie zamknięte.
Do czego służy polecenie CREATE USER w MySQL?
Polecenie `CREATE USER` służy do utworzenia nowego konta użytkownika w systemie MySQL. Konto określa nazwę użytkownika, host oraz sposób uwierzytelniania, np. hasło.
Po co stosuje się IF NOT EXISTS przy CREATE USER?
`IF NOT EXISTS` zabezpiecza instrukcję przed błędem, gdy użytkownik już istnieje. Dzięki temu skrypt można uruchomić ponownie bez próby tworzenia tego samego konta.
Czy CREATE USER IF NOT EXISTS zmienia hasło istniejącego użytkownika?
Nie. Jeśli użytkownik już istnieje, polecenie nie tworzy go ponownie i nie powinno być traktowane jako sposób zmiany hasła.
Co oznacza zapis 'anna'@'localhost' w MySQL?
Oznacza użytkownika `anna`, który może łączyć się z serwerem MySQL z hosta `localhost`, czyli lokalnie z tego samego komputera.
Jaka jest różnica między utworzeniem użytkownika a nadaniem mu uprawnień?
`CREATE USER` tworzy konto użytkownika, ale nie nadaje mu jeszcze dostępu do konkretnych baz i tabel. Uprawnienia nadaje się osobno poleceniem `GRANT`.
Dlaczego odpowiedź CREATE USER bez IF NOT EXISTS nie zabezpiecza przed istniejącym kontem?
Ponieważ zwykłe `CREATE USER` próbuje utworzyć konto bez sprawdzania, czy już istnieje. Jeśli konto istnieje, serwer MySQL może zwrócić błąd.
Do czego służy polecenie GRANT w SQL?
Polecenie `GRANT` służy do nadawania użytkownikowi uprawnień do bazy danych lub jej obiektów, np. tabel. Można nim nadać m.in. prawo odczytu, zapisu lub modyfikacji struktury.
Do czego służy polecenie REVOKE w SQL?
Polecenie `REVOKE` odbiera użytkownikowi wskazane uprawnienia. Odbierane są tylko te uprawnienia, które zostały wymienione w poleceniu.
Dlaczego po odebraniu SELECT, INSERT, UPDATE i DELETE użytkownik nadal może mieć inne uprawnienia?
Ponieważ wcześniej otrzymał `ALL PRIVILEGES`, czyli wszystkie uprawnienia. Polecenie `REVOKE` odebrało tylko cztery konkretne uprawnienia, więc pozostałe nadal obowiązują.
Które uprawnienie odpowiada za wyszukiwanie danych w tabeli?
Za wyszukiwanie i odczytywanie danych odpowiada uprawnienie `SELECT`. Jeśli zostanie odebrane, użytkownik nie powinien móc przeglądać rekordów tabeli.
Które uprawnienia odpowiadają za modyfikację rekordów w tabeli?
Za modyfikację danych odpowiadają głównie `INSERT`, `UPDATE` i `DELETE`. Oznaczają one kolejno dodawanie, aktualizowanie i usuwanie rekordów.
Czym różni się modyfikacja danych od zmiany struktury tabeli?
Modyfikacja danych dotyczy rekordów, np. dodania lub usunięcia wiersza. Zmiana struktury tabeli dotyczy jej budowy, np. dodania kolumny poleceniem `ALTER TABLE`.
Dlaczego poprawną odpowiedzią jest możliwość zmiany struktury tabeli?
Użytkownikowi odebrano prawa do operacji na danych: `SELECT`, `INSERT`, `UPDATE`, `DELETE`. Nie odebrano jednak uprawnień strukturalnych, takich jak możliwość wykonania operacji typu `ALTER TABLE`.
Do czego służy funkcja COUNT() w SQL?
Funkcja COUNT() zwraca liczbę rekordów spełniających warunek zapytania. Najczęściej używa się jej do policzenia wierszy w tabeli lub wyniku zapytania.
Czym różni się COUNT(*) od COUNT(nazwa_kolumny)?
COUNT(*) liczy wszystkie wiersze, niezależnie od wartości NULL. COUNT(nazwa_kolumny) liczy tylko te wiersze, w których wskazana kolumna nie ma wartości NULL.
Jak policzyć wszystkie rekordy w tabeli SQL?
Można użyć zapytania: SELECT COUNT(*) FROM nazwa_tabeli;. Wynikiem będzie jedna liczba oznaczająca liczbę wierszy w tabeli.
Jak policzyć tylko rekordy spełniające określony warunek?
Należy użyć COUNT() razem z klauzulą WHERE, np. SELECT COUNT(*) FROM uczniowie WHERE klasa = '3A';. Zostaną policzone tylko rekordy spełniające warunek.
Jakie są podstawowe funkcje agregujące w SQL?
Do podstawowych funkcji agregujących należą COUNT(), SUM(), AVG(), MIN() i MAX(). Służą one do obliczeń na wielu rekordach i zwracają zwykle jedną wartość.
Dlaczego funkcja NUMBER nie jest poprawną funkcją agregującą do liczenia rekordów?
NUMBER nie jest standardową funkcją agregującą SQL służącą do liczenia rekordów. Do tego celu stosuje się funkcję COUNT().
Dlaczego dane multimedialne zapisuje się jako BLOB?
Dane multimedialne, takie jak obrazy, dźwięk i filmy, są zapisane w postaci binarnej. Typ `BLOB` jest przeznaczony właśnie do przechowywania dużych obiektów binarnych.
Czym różni się BLOB od LONGTEXT?
`BLOB` przechowuje dane binarne, a `LONGTEXT` przechowuje bardzo długi tekst. Pliki multimedialne nie powinny być traktowane jako tekst, dlatego wybiera się `BLOB`.
Do czego służy typ ENUM w bazie danych?
`ENUM` służy do przechowywania jednej wartości z wcześniej określonej listy, np. statusu: `aktywny`, `nieaktywny`. Nie nadaje się do przechowywania plików binarnych.
Do czego służy typ DOUBLE?
`DOUBLE` służy do przechowywania liczb zmiennoprzecinkowych o podwójnej precyzji. Nie jest typem przeznaczonym do danych multimedialnych.
Jakie przykłady danych można przechowywać w kolumnie typu BLOB?
W kolumnie typu `BLOB` można przechowywać np. zdjęcia, pliki audio, filmy, dokumenty PDF lub inne pliki binarne.
Czy zawsze warto przechowywać pliki bezpośrednio w bazie danych?
Nie zawsze. Często pliki przechowuje się w systemie plików lub chmurze, a w bazie zapisuje tylko ścieżkę i metadane. `BLOB` jest jednak poprawnym typem, gdy plik ma być zapisany bezpośrednio w bazie.
Jaka jest różnica między znacznikami <strong> i <b> w HTML?
<strong> oznacza tekst o dużej ważności semantycznej, a przeglądarki zwykle wyświetlają go pogrubieniem. <b> służy głównie do wizualnego pogrubienia tekstu bez nadawania mu szczególnego znaczenia.
Jaka jest różnica między znacznikami <em> i <i> w HTML?
<em> oznacza tekst zaakcentowany znaczeniowo, zwykle wyświetlany kursywą. <i> stosuje się głównie do wizualnego pochylenia tekstu, np. nazw obcych, terminów lub tytułów.
Dlaczego <strong> i <em> są uznawane za znaczniki semantyczne?
Ponieważ informują nie tylko o wyglądzie tekstu, ale też o jego znaczeniu. Ma to znaczenie dla dostępności, czytników ekranu i poprawnej struktury dokumentu.
Jak przeglądarka domyślnie formatuje znaczniki <strong> i <em>?
Domyślnie <strong> jest wyświetlany jako tekst pogrubiony, czyli podobnie do <b>. Znacznik <em> jest zwykle wyświetlany kursywą, czyli podobnie do <i>.
Kiedy lepiej użyć <strong> zamiast <b>?
Gdy tekst jest naprawdę ważny i chcemy zaznaczyć jego istotność w treści dokumentu. Przykładem może być ostrzeżenie, ważna instrukcja lub kluczowa informacja.
Kiedy lepiej użyć <em> zamiast <i>?
Gdy tekst ma być zaakcentowany znaczeniowo, np. zmienia sens zdania przez podkreślenie nacisku. Jeśli chodzi tylko o wygląd kursywy, można użyć <i> lub CSS.
Do czego służy pętla foreach w PHP?
Służy do iterowania po elementach tablicy lub obiektu. Najczęściej wykorzystuje się ją do wykonania tej samej operacji na każdym elemencie tablicy.
Jak w pętli foreach odczytać indeks elementu tablicy?
Należy użyć składni `foreach ($tablica as $indeks => $wartosc)`. Zmienna `$indeks` przechowuje indeks lub klucz, a `$wartosc` wartość elementu.
Czym foreach różni się od pętli for?
`foreach` automatycznie przechodzi po elementach tablicy, bez ręcznego licznika. W pętli `for` zwykle trzeba samodzielnie określić zmienną sterującą, warunek i sposób jej zmiany.
Czy foreach działa z tablicami asocjacyjnymi?
Tak. W tablicach asocjacyjnych zmienna po lewej stronie operatora `=>` przechowuje klucz tekstowy elementu.
Jak zmienić wartości elementów tablicy w pętli foreach?
Można iterować przez referencję, np. `foreach ($tablica as &$wartosc)`. Dzięki temu modyfikacja zmiennej `$wartosc` zmienia rzeczywisty element tablicy.
Kiedy nie trzeba podawać indeksu w pętli foreach?
Indeks nie jest potrzebny, gdy interesują nas wyłącznie wartości elementów tablicy. Wtedy wystarczy zapis `foreach ($tablica as $wartosc)`.
Do czego służy funkcja MAX() w SQL?
Funkcja `MAX()` zwraca największą wartość z podanej kolumny. W przykładzie pozwala znaleźć najwyższą ocenę danego produktu.
Dlaczego poprawne zapytanie zaczyna się od SELECT, a nie od MAX?
W SQL zapytanie odczytujące dane zaczyna się od `SELECT`. Funkcja `MAX()` jest elementem listy wybieranych wartości, dlatego zapisuje się ją jako `SELECT MAX(ocena)`.
Jaką rolę pełni warunek WHERE produktID = 10?
Ogranicza analizowane rekordy tylko do ocen przypisanych do produktu o identyfikatorze `10`. Bez tego warunku baza zwróciłaby maksymalną ocenę ze wszystkich produktów.
Czym różni się MAX(ocena) od COUNT(ocena)?
`MAX(ocena)` zwraca największą wartość oceny, a `COUNT(ocena)` liczy liczbę niepustych ocen. Są to różne funkcje agregujące.
Czy funkcja MAX() wymaga użycia GROUP BY?
Nie zawsze. `GROUP BY` jest potrzebne wtedy, gdy chcemy obliczyć maksimum osobno dla wielu grup, np. dla każdego produktu.
Jak znaleźć maksymalną ocenę dla każdego produktu?
Należy użyć `GROUP BY produktID`, np. `SELECT produktID, MAX(ocena) FROM oceny GROUP BY produktID;`. Zapytanie zwróci najwyższą ocenę osobno dla każdego produktu.