Przejdź do głównej treści

Pytania pomocnicze - INF.03

Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych - pytania pomocnicze rozwijające tematy z pytań egzaminacyjnych. Łącznie: 8439. Strona 78 z 116.

Do czego służy słowo kluczowe DISTINCT w zapytaniu SELECT?

DISTINCT usuwa powtarzające się wiersze z wyniku zapytania. W przykładzie `SELECT DISTINCT nazwisko FROM mieszkancy;` każde nazwisko pojawi się tylko raz.

Dlaczego samo ORDER BY nie usuwa duplikatów?

`ORDER BY` służy wyłącznie do sortowania wyników. Jeśli w tabeli kilka osób ma to samo nazwisko, sortowanie nadal pokaże wszystkie powtórzenia.

Jaka jest różnica między SELECT nazwisko a SELECT DISTINCT nazwisko?

`SELECT nazwisko` zwraca wszystkie wartości z kolumny, także powtórzone. `SELECT DISTINCT nazwisko` zwraca tylko unikalne wartości.

Czy DISTINCT działa na jedną kolumnę czy na cały zestaw wybranych kolumn?

DISTINCT działa na cały wybrany zestaw kolumn. Jeśli zapytanie wybiera `imie, nazwisko`, unikalna musi być para wartości, a nie samo nazwisko.

Czy można połączyć DISTINCT z ORDER BY?

Tak. Przykład: `SELECT DISTINCT nazwisko FROM mieszkancy ORDER BY nazwisko;` zwróci unikalne nazwiska posortowane alfabetycznie.

Dlaczego AVG(nazwisko) jest błędnym rozwiązaniem w tym pytaniu?

`AVG()` oblicza średnią arytmetyczną, więc stosuje się ją do danych liczbowych. Nazwisko jest tekstem, a celem pytania jest usunięcie powtórzeń, nie liczenie średniej.

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)`.