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 104 z 116.
Dlaczego w tym poleceniu należy użyć operatora LIKE zamiast znaku równości?
`LIKE` pozwala wyszukać fragment tekstu wewnątrz pola. Znak `=` sprawdzałby tylko dokładną zgodność całej wartości pola z podanym napisem.
Co oznacza wzorzec '%sto%' w SQL?
Oznacza dowolny tekst przed frazą `sto` i dowolny tekst po niej. Warunek pasuje więc do wartości zawierających `sto` w dowolnym miejscu.
Dlaczego polecenie DELETE FROM jest poprawne, a DELETE * FROM nie?
W SQL instrukcja `DELETE` usuwa całe wiersze, więc nie podaje się `*`. Gwiazdka jest typowa dla `SELECT *`, czyli pobierania wszystkich kolumn.
Jaką rolę pełni klauzula WHERE w instrukcji DELETE?
`WHERE` określa, które wiersze mają zostać usunięte. Bez `WHERE` instrukcja `DELETE FROM artykuly` usunęłaby wszystkie wiersze z tabeli.
Czym różni się wzorzec 'sto%' od '%sto%'?
`sto%` pasuje tylko do tekstów zaczynających się od `sto`. `%sto%` pasuje do tekstów, które zawierają `sto` w dowolnym miejscu.
Jak bezpiecznie sprawdzić, które rekordy zostaną usunięte przed wykonaniem DELETE?
Najpierw warto wykonać zapytanie `SELECT * FROM artykuly WHERE tresc LIKE '%sto%';`. Pozwala to zobaczyć wiersze, które spełniają warunek usunięcia.
Do czego służy klucz podstawowy w tabeli SQL?
Klucz podstawowy służy do jednoznacznej identyfikacji każdego rekordu w tabeli. Dzięki niemu każdy wiersz można odróżnić od pozostałych.
Czy kolumna z PRIMARY KEY może zawierać wartość NULL?
Nie. Kolumna będąca kluczem podstawowym musi mieć zawsze określoną wartość, ponieważ identyfikuje rekord.
Czy wartości w kolumnie PRIMARY KEY mogą się powtarzać?
Nie. Wartości klucza podstawowego muszą być unikalne, czyli nie mogą wystąpić dwa rekordy z tym samym kluczem.
Jaka jest różnica między PRIMARY KEY a FOREIGN KEY?
PRIMARY KEY identyfikuje rekord w swojej tabeli. FOREIGN KEY wskazuje na klucz podstawowy w innej tabeli i tworzy relację między tabelami.
Czy tabela może mieć więcej niż jeden klucz podstawowy?
Tabela może mieć tylko jeden klucz podstawowy. Może on jednak składać się z kilku kolumn, wtedy jest to klucz złożony.
Dlaczego często łączy się PRIMARY KEY z AUTO_INCREMENT?
AUTO_INCREMENT automatycznie nadaje kolejne wartości liczbowe. Dzięki temu łatwo tworzyć unikalne identyfikatory rekordów.
Czym różni się TRUNCATE od DROP TABLE?
`TRUNCATE` usuwa wszystkie rekordy, ale zostawia tabelę i jej strukturę. `DROP TABLE` usuwa całą tabelę z bazy danych.
Czym różni się TRUNCATE od DELETE?
`DELETE` usuwa rekordy i może używać warunku `WHERE`. `TRUNCATE` usuwa wszystkie rekordy z tabeli i zwykle działa szybciej, ale nie pozwala wskazać pojedynczych wierszy.
Czy po użyciu TRUNCATE tabela nadal istnieje?
Tak. Po wykonaniu `TRUNCATE TABLE` tabela nadal istnieje, ale nie zawiera rekordów.
Czy polecenie TRUNCATE może zawierać warunek WHERE?
Nie. `TRUNCATE` usuwa całą zawartość tabeli, dlatego nie stosuje się z nim warunku `WHERE`.
Jak wygląda podstawowa składnia polecenia TRUNCATE?
Podstawowa składnia to `TRUNCATE TABLE nazwa_tabeli;`. Polecenie czyści wskazaną tabelę ze wszystkich rekordów.
Co stanie się z licznikiem AUTO_INCREMENT po wykonaniu TRUNCATE w MySQL?
W MySQL `TRUNCATE` zwykle resetuje licznik `AUTO_INCREMENT`, więc nowe rekordy mogą ponownie otrzymywać wartości od początku.
Jaka jest poprawna składnia polecenia CREATE USER w MySQL?
Poprawna składnia to `CREATE USER 'nazwa'@'host' IDENTIFIED BY 'haslo';`. W pytaniu poprawne jest `CREATE USER `sekretarka`@`localhost` IDENTIFIED BY 'zaq123';`.
Co oznacza zapis użytkownika w formie 'sekretarka'@'localhost'?
Oznacza konto użytkownika `sekretarka`, które może logować się tylko z hosta `localhost`, czyli z tego samego komputera, na którym działa serwer MySQL.
Do czego służy klauzula IDENTIFIED BY w MySQL?
Klauzula `IDENTIFIED BY` służy do ustawienia hasła dla tworzonego użytkownika. Hasło zapisuje się jako tekst w apostrofach, np. `IDENTIFIED BY 'zaq123'`.
Dlaczego odpowiedzi z IDENTIFY są błędne?
W MySQL poprawnym słowem kluczowym jest `IDENTIFIED BY`, a nie `IDENTIFY`. Błąd w nazwie polecenia powoduje niepoprawną składnię SQL.
Jaka jest różnica między apostrofami a backtickami w MySQL?
Apostrofy służą głównie do zapisywania wartości tekstowych, np. haseł. Backticki służą do oznaczania identyfikatorów, np. nazw tabel, kolumn lub czasem nazw użytkowników.
Czy samo CREATE USER nadaje użytkownikowi uprawnienia do bazy danych?
Nie. `CREATE USER` tylko tworzy konto. Uprawnienia nadaje się osobnym poleceniem, np. `GRANT SELECT ON baza.* TO 'sekretarka'@'localhost';`.
Dlaczego w poprawnym zapytaniu użyto operatora AND, a nie OR?
Ponieważ zwierzę ma jednocześnie spełniać dwa warunki: żyć co najmniej 20 lat i być ssakiem. Operator OR zwróciłby także zwierzęta spełniające tylko jeden z tych warunków.
Co oznacza warunek dlugosc_zycia >= 20 w SQL?
Oznacza wybór rekordów, w których wartość pola `dlugosc_zycia` jest większa lub równa 20. Uwzględnia więc także dokładnie 20 lat.
Po co w zapytaniu występuje SELECT nazwa?
Oznacza, że wynikiem zapytania ma być tylko kolumna `nazwa`. Baza nie zwróci wszystkich danych o zwierzętach, lecz wyłącznie ich nazwy.
Jaką rolę pełni klauzula WHERE w zapytaniu SQL?
`WHERE` ogranicza wyniki do rekordów spełniających podany warunek. Bez niej zapytanie zwróciłoby wszystkie nazwy zwierząt z tabeli.
Dlaczego wartość tekstowa 'ssak' jest zapisana w apostrofach?
W SQL wartości tekstowe zapisuje się zwykle w apostrofach, aby odróżnić je od nazw kolumn i słów kluczowych. Dlatego poprawny warunek to `gromada = 'ssak'`.
Co zwróciłoby zapytanie zawierające tylko warunek gromada = 'ssak'?
Zwróciłoby nazwy wszystkich ssaków, niezależnie od ich długości życia. Nie spełniałoby więc wymogu dotyczącego minimum 20 lat.
Co zwróciłoby zapytanie zawierające tylko warunek dlugosc_zycia >= 20?
Zwróciłoby nazwy wszystkich zwierząt żyjących co najmniej 20 lat, niezależnie od ich gromady. Mogłyby się tam znaleźć także zwierzęta niebędące ssakami.
Jak działa znacznik <i> w HTML?
Znacznik <i> powoduje pochylenie tekstu znajdującego się między znacznikiem otwierającym <i> i zamykającym </i>. Formatowanie nie obejmuje tekstu poza tym zakresem.
Jak działa znacznik <b> w HTML?
Znacznik <b> pogrubia tekst znajdujący się między <b> i </b>. Jeśli jest zagnieżdżony w innym znaczniku, jego efekt łączy się z formatowaniem elementu nadrzędnego.
Dlaczego odpowiedź B daje taki sam efekt jak obrazek?
Ponieważ cały fragment „paragrafie zobaczysz sposoby formatowania” jest objęty kursywą, a tylko słowo „zobaczysz” dodatkowo znajduje się wewnątrz znacznika <b>.
Czym różni się odpowiedź A od poprawnej odpowiedzi?
W odpowiedzi A pogrubiony jest prawie cały fragment od „paragrafie” do „formatowania”, a kursywą objęte jest tylko słowo „zobaczysz”. To daje inny efekt niż wymagany.
Czym różni się odpowiedź D od poprawnej odpowiedzi?
W odpowiedzi D słowo „zobaczysz” jest tylko pogrubione, ponieważ znajduje się poza znacznikami <i>. W poprawnej odpowiedzi jest jednocześnie pogrubione i zapisane kursywą.
Dlaczego kolejność zagnieżdżania znaczników ma znaczenie?
Zakres działania znacznika zależy od miejsca jego otwarcia i zamknięcia. Element zagnieżdżony powinien być zamknięty przed elementem nadrzędnym.
Czy znaczniki <b> i <i> są elementami blokowymi czy liniowymi?
Są elementami liniowymi, więc formatują fragment tekstu bez rozpoczynania nowego bloku. Element <p> jest elementem blokowym i tworzy akapit.
Co oznacza wartość NaN w JavaScript?
`NaN` oznacza `Not a Number`, czyli wynik, którego nie da się przedstawić jako poprawnej liczby. Mimo nazwy w JavaScript ma typ `number`.
Kiedy najczęściej powstaje NaN?
Najczęściej wtedy, gdy wykonywana jest operacja arytmetyczna na wartości, której nie można zamienić na liczbę, np. `"abc" * 2`.
Czy każda operacja arytmetyczna na stringu daje NaN?
Nie. Jeśli string zawiera poprawną liczbę, np. `"5" * 2`, JavaScript może automatycznie przekonwertować go na liczbę i zwrócić poprawny wynik.
Dlaczego odpowiedź z operacją na dwóch dodatnich liczbach jest błędna?
Operacja arytmetyczna na poprawnych liczbach dodatnich daje zwykle poprawny wynik liczbowy, a nie `NaN`.
Jaka jest różnica między parseInt() a parseFloat()?
`parseInt()` zamienia tekst na liczbę całkowitą, a `parseFloat()` na liczbę zmiennoprzecinkową. Sam wybór jednej z tych funkcji nie oznacza automatycznie wyniku `NaN`.
Jak sprawdzić, czy wynik działania to NaN?
Można użyć `Number.isNaN(wynik)` lub `isNaN(wynik)`. Zalecana jest metoda `Number.isNaN()`, ponieważ jest bardziej precyzyjna.
Dlaczego operator plus może zachowywać się inaczej niż mnożenie lub dzielenie?
Operator `+` może służyć zarówno do dodawania liczb, jak i łączenia tekstów. Dlatego `"5" + 2` daje `"52"`, a nie `7`.
Do czego służą komentarze w JavaScript?
Komentarze służą do opisywania kodu i nie są wykonywane przez interpreter. Pomagają zrozumieć działanie programu.
Jak zapisać komentarz jednoliniowy w JavaScript?
Komentarz jednoliniowy rozpoczyna się od znaków `//`. Wszystko po tych znakach do końca linii jest komentarzem.
Czym różni się komentarz jednoliniowy od wieloliniowego?
Komentarz jednoliniowy używa `//` i trwa do końca linii. Komentarz wieloliniowy zapisuje się między `/*` i `*/`.
Co oznacza instrukcja `x = Math.max(a, b, c);`?
Do zmiennej `x` zostaje przypisana największa wartość spośród zmiennych `a`, `b` i `c`.
Jaka jest różnica między `Math.max()` a `Math.min()`?
`Math.max()` zwraca największą wartość z podanych argumentów, a `Math.min()` zwraca najmniejszą.
Czy tekst zapisany po `//` wpływa na wynik działania programu?
Nie. Tekst po `//` jest komentarzem, więc interpreter JavaScript go pomija.
Dlaczego odpowiedź o losowaniu wartości jest błędna przy `Math.max(a, b, c)`?
Ponieważ `Math.max()` nie losuje danych. Losowanie w JavaScript wykonuje się zwykle za pomocą `Math.random()`.
Na czym polega technika „dziel i zwyciężaj”?
Polega na podziale problemu na mniejsze podproblemy, rozwiązaniu ich osobno i połączeniu wyników w rozwiązanie całości.
Jakie są trzy podstawowe etapy metody „dziel i zwyciężaj”?
Są to: podział problemu, rozwiązanie podproblemów oraz scalenie wyników częściowych.
Czy technika „dziel i zwyciężaj” jest jednym konkretnym algorytmem?
Nie. To ogólna metoda projektowania algorytmów, którą można wykorzystać w wielu różnych algorytmach.
Jakie algorytmy wykorzystują metodę „dziel i zwyciężaj”?
Przykładami są wyszukiwanie binarne, sortowanie przez scalanie oraz sortowanie szybkie.
Czym różni się „dziel i zwyciężaj” od sortowania przez wybór?
Sortowanie przez wybór działa przez wielokrotne wybieranie najmniejszego lub największego elementu. Nie polega na rekurencyjnym dzieleniu problemu na mniejsze części.
Dlaczego wyszukiwanie binarne jest przykładem techniki „dziel i zwyciężaj”?
Ponieważ w każdym kroku odrzuca połowę danych i kontynuuje wyszukiwanie tylko w jednej mniejszej części zbioru.
Jaką rolę w metodzie „dziel i zwyciężaj” często pełni rekurencja?
Rekurencja pozwala rozwiązywać mniejsze wersje tego samego problemu za pomocą tej samej procedury.
Co oznacza selektor `p::first-line` w CSS?
Oznacza pierwszą wyświetlaną linię każdego elementu `<p>`. Styl zostanie zastosowany tylko do tej linii, a nie do całego akapitu.
Jak działa właściwość `font-size: 150%`?
Ustawia rozmiar czcionki na 150% wartości odziedziczonej lub bazowej. W praktyce oznacza to powiększenie tekstu o połowę względem normalnego rozmiaru.
Czy `::first-line` wybiera pierwszy akapit na stronie?
Nie. `::first-line` wybiera pierwszą linię tekstu w każdym pasującym elemencie, np. w każdym akapicie `<p>`.
Od czego zależy, która część tekstu jest pierwszą linią akapitu?
Zależy od sposobu zawijania tekstu w przeglądarce, szerokości elementu, rozmiaru czcionki i układu strony. Po zmianie szerokości okna pierwsza linia może obejmować inny fragment tekstu.
Jaka jest różnica między pseudoelementem `::first-line` a selektorem `:first-child`?
`::first-line` styluje fragment tekstu, czyli pierwszą linię elementu. `:first-child` wybiera cały element, jeśli jest pierwszym dzieckiem swojego rodzica.
Dlaczego odpowiedź A jest błędna?
Ponieważ `::first-line` nie obejmuje całego tekstu paragrafu. Styl `font-size: 150%` zostanie zastosowany tylko do pierwszej linii każdego akapitu.