{"id":"informatyka-2018-maj-matura-rozszerzona/zad/3.3","paper_id":"informatyka-2018-maj-matura-rozszerzona","number":"3.3","points":1,"ptype":"true_false","subject":"informatyka","category":"matura","year":2018,"month":"maj","level":"rozszerzona","text":"Zadanie 3.3. (0-1)\nWskaż zdania prawdziwe dla języka SQL.\n1.\nW wynikach zapytania postaci SELECT ( ) ORDER BY ( )\nzawsze dostajemy rekordy uporządkowane ściśle rosnąco według\nwskazanego pola.\nP\nF\n2. Zapytanie UPDATE może zmienić wartości pól w bazie danych.\nP\nF\n3.\nZapytanie postaci SELECT * FROM tabela1 WHERE pole LIKE\n( ) może w pewnych warunkach dać wszystkie rekordy z tabeli\ntabela1.\nP\nF\n4.\nWynik zapytania SELECT * FROM tabela1 JOIN tabela2 ON\ntabela1.pole = tabela2.pole może być pusty przy niepustych\ntabelach tabela1 oraz tabela2.\nP\nF\nWypełnia\negzaminator\nNr zadania\n2.2.\n3.1.\n3.2.\n3.3.\nMaks. liczba pkt.\n4\n1\n1\n1\nUzyskana liczba pkt.\nMIN_1R\nBRUDNOPIS (nie podlega ocenie)","answer":null,"answer_text":"Zadanie 3.3. (0-1)\nWymagania ogólne\nWymagania szczegółowe\nII. Wyszukiwanie, gromadzenie\ni przetwarzanie informacji z różnych źródeł;\nopracowywanie za pomocą komputera:\nrysunków, tekstów, danych liczbowych,\nmotywów, animacji, prezentacji\nmultimedialnych.\n2. Wyszukiwanie, gromadzenie,\nselekcjonowanie, przetwarzanie\ni wykorzystywanie informacji,\nwspółtworzenie zasobów w sieci,\nkorzystanie z różnych źródeł i sposobów\nzdobywania informacji.\nZdający:\n2) stosuje metody wyszukiwania\ni przetwarzania informacji w relacyjnej\nbazie danych (język SQL).\nSchemat punktowania\n1 p. - za wskazanie czterech poprawnych odpowiedzi.\n0 p. - za odpowiedź niepełną lub błędną albo za brak odpowiedzi.\nPoprawna odpowiedź\nF, P, P, P\nCzęść II\nUwaga: wszystkie wyniki muszą być odzwierciedleniem dołączonej komputerowej realizacji\nobliczeń.","solution":"## Poprawna odpowiedź\n\n**1) F, 2) P, 3) P, 4) P**\n\n## Sposób 1 - analiza poszczególnych stwierdzeń\n\n### Stwierdzenie 1: ORDER BY → ZAWSZE ściśle rosnąco → **F**\n\n**Fałsz.** Dwa powody:\n\n1. **Domyślnie ORDER BY sortuje ROSNĄCO (ASC), ale nie ŚCIŚLE.** Mogą być duplikaty (równe wartości), więc nie \"ściśle rosnąco\". Słowo \"ściśle\" oznacza, że a < b zawsze, a tu może być a = b.\n2. **Można sortować malejąco**: `ORDER BY kolumna DESC` - wtedy w ogóle nie rosnąco.\n3. **Słowo \"zawsze\" jest za mocne** - wystarczy jeden kontrprzykład.\n\n```sql\nSELECT * FROM tabela ORDER BY wiek; -- może być [25, 30, 30, 45] - to NIEROSNĄCO niemalejąco, ale NIE ściśle.\nSELECT * FROM tabela ORDER BY wiek DESC; -- malejąco.\n\n### Stwierdzenie 2: UPDATE może zmienić pola → **P**\n\n**Prawda.** UPDATE to **podstawowe zapytanie modyfikujące** w SQL:\n```sql\nUPDATE pracownicy\nSET pensja = pensja * 1.1\nWHERE staz_lat > 5;\nTo zmienia wartości pola `pensja` u pracowników ze stażem > 5 lat.\n\n### Stwierdzenie 3: SELECT * WHERE pole LIKE może zwrócić wszystkie → **P**\n\n**Prawda.** Wzorzec `LIKE '%'` (jeden znak %, dowolny ciąg) **pasuje do każdego niepustego stringa**:\n\n```sql\nSELECT * FROM tabela1 WHERE pole LIKE '%';\nTo zwróci wszystkie rekordy gdzie `pole` jest NOT NULL.\n\nMożna też `LIKE '%[anything]%'` - pasuje wszędzie, gdzie występuje [anything].\n\n### Stwierdzenie 4: JOIN może dać pusty wynik przy niepustych tabelach → **P**\n\n**Prawda.** INNER JOIN zwraca tylko **pasujące pary** - jeśli żaden klucz z tabela1 nie pasuje do tabela2, wynik jest **pusty**.\n\n**Przykład:**\n```sql\n-- tabela1: [{id: 1, kategoria: 'A'}, {id: 2, kategoria: 'A'}]\n-- tabela2: [{id: 10, typ: 'B'}, {id: 11, typ: 'C'}]\nSELECT * FROM tabela1 JOIN tabela2 ON tabela1.kategoria = tabela2.typ;\n-- Wynik: PUSTY, bo 'A' nigdy nie pasuje do 'B' ani 'C'.\n\n## Reference informatyczny - kluczowe konstrukcje SQL\n\n> Reference - ORDER BY:\n> - Domyślnie ASC (rosnąco). Można jawnie ASC/DESC.\n> - **NIE musi być ściśle rosnące** - równe wartości mogą sąsiadować.\n> - Sortowanie po wielu polach: `ORDER BY a, b DESC` (a rosnąco, b malejąco).\n> - **NULL**: zwykle na początku przy ASC (zależy od silnika).\n>\n> Reference - UPDATE:\n> - Składnia: `UPDATE tabela SET kol1 = val1, kol2 = val2 WHERE warunek;`.\n> - **UWAGA**: bez `WHERE` aktualizuje WSZYSTKIE rekordy.\n> - Może użyć podzapytań: `SET kol = (SELECT )`.\n>\n> Reference - LIKE:\n> - `%` = dowolny ciąg znaków (0 lub więcej).\n> - `_` = dokładnie jeden znak.\n> - `LIKE '%'` = każdy niepusty string.\n> - `LIKE 'A%'` = zaczynający się na A.\n> - `LIKE '%kot%'` = zawierający \"kot\".\n> - `LIKE '_at'` = 3-znakowy, kończący się na \"at\" (cat, bat, hat).\n>\n> Reference - JOIN:\n> - **INNER JOIN** (= JOIN) - tylko pasujące rekordy z obu tabel.\n> - **LEFT JOIN** - wszystkie z lewej + dopasowane z prawej (NULL gdy brak).\n> - **RIGHT JOIN** - analogicznie z prawej.\n> - **FULL JOIN** - wszystkie z obu.\n> - **CROSS JOIN** - kartezjański.\n> - Pusty wynik INNER JOIN może wystąpić nawet przy niepustych tabelach.\n\n## Schemat oceniania CKE\n\n> Klucz CKE (zadanie 3.3, max 1 pkt):\n> - **1 pkt** - wszystkie 4 odpowiedzi poprawne: F, P, P, P\n> - **0 pkt** - niepełna lub błędna\n\n## Typowe pułapki\n\n- **\"Zawsze ściśle rosnąco\"** - uczniowie myślą \"ORDER BY = rosnąco\" i klikają P, ale słowo \"ściśle\" wyklucza duplikaty. Plus można sortować DESC.\n- **LIKE z `%` jako jedynym znakiem** - często pomijane. To bardzo użyteczne w optional filters.\n- **JOIN z pustym wynikiem** - uczniowie mylą z tym, że tabele są niepuste = wynik niepusty. INNER JOIN wymaga DOPASOWAŃ.\n- **UPDATE bez WHERE** - pamiętać o ryzyku, ale w stwierdzeniu pyta tylko CZY MOŻE zmienić → tak, oczywiście.\n\n## Złożoność obliczeniowa\n\nN/A - zadanie teoretyczne z SQL.","image":"img/informatyka-2018-maj-matura-rozszerzona/zad-3.3.webp","solution_image":null,"topics":null,"page_from":7,"source":"ocr","answer_source":null,"answer_text_source":"ocr","solution_source":"maturazai","text_source":"ocr","source_label":"Informatyka · Matura · maj 2018 (rozszerzona)","subject_label":"Informatyka","category_label":"Matura","text_html":"<p>Zadanie 3.3. (0-1)<br>Wskaż zdania prawdziwe dla języka SQL.<br>1.<br>W wynikach zapytania postaci SELECT ( ) ORDER BY ( )<br>zawsze dostajemy rekordy uporządkowane ściśle rosnąco według<br>wskazanego pola.<br>P<br>F</p>\n<ol><li>Zapytanie UPDATE może zmienić wartości pól w bazie danych.</li></ol>\n<p>P<br>F<br>3.<br>Zapytanie postaci SELECT * FROM tabela1 WHERE pole LIKE<br>( ) może w pewnych warunkach dać wszystkie rekordy z tabeli<br>tabela1.<br>P<br>F<br>4.<br>Wynik zapytania SELECT * FROM tabela1 JOIN tabela2 ON<br>tabela1.pole = tabela2.pole może być pusty przy niepustych<br>tabelach tabela1 oraz tabela2.<br>P<br>F<br>Wypełnia<br>egzaminator<br>Nr zadania<br>2.2.<br>3.1.<br>3.2.<br>3.3.<br>Maks. liczba pkt.<br>4<br>1<br>1<br>1<br>Uzyskana liczba pkt.<br>MIN_1R<br>BRUDNOPIS (nie podlega ocenie)</p>","answer_text_html":"<p>Zadanie 3.3. (0-1)<br>Wymagania ogólne<br>Wymagania szczegółowe<br>II. Wyszukiwanie, gromadzenie<br>i przetwarzanie informacji z różnych źródeł;<br>opracowywanie za pomocą komputera:<br>rysunków, tekstów, danych liczbowych,<br>motywów, animacji, prezentacji<br>multimedialnych.</p>\n<ol><li>Wyszukiwanie, gromadzenie,</li></ol>\n<p>selekcjonowanie, przetwarzanie<br>i wykorzystywanie informacji,<br>współtworzenie zasobów w sieci,<br>korzystanie z różnych źródeł i sposobów<br>zdobywania informacji.<br>Zdający:</p>\n<ol><li>stosuje metody wyszukiwania</li></ol>\n<p>i przetwarzania informacji w relacyjnej<br>bazie danych (język SQL).<br>Schemat punktowania<br>1 p. - za wskazanie czterech poprawnych odpowiedzi.<br>0 p. - za odpowiedź niepełną lub błędną albo za brak odpowiedzi.<br>Poprawna odpowiedź<br>F, P, P, P<br>Część II<br>Uwaga: wszystkie wyniki muszą być odzwierciedleniem dołączonej komputerowej realizacji<br>obliczeń.</p>","solutions":[{"source":"maturazai","label":"maturazai.pl (AI)","kind":"text","html":"<h4>Poprawna odpowiedź</h4>\n<p><strong>1) F, 2) P, 3) P, 4) P</strong></p>\n<h4>Sposób 1 - analiza poszczególnych stwierdzeń</h4>\n<h5>Stwierdzenie 1: ORDER BY → ZAWSZE ściśle rosnąco → <strong>F</strong></h5>\n<p><strong>Fałsz.</strong> Dwa powody:</p>\n<ol><li><strong>Domyślnie ORDER BY sortuje ROSNĄCO (ASC), ale nie ŚCIŚLE.</strong> Mogą być duplikaty (równe wartości), więc nie &quot;ściśle rosnąco&quot;. Słowo &quot;ściśle&quot; oznacza, że a &lt; b zawsze, a tu może być a = b.</li><li><strong>Można sortować malejąco</strong>: <code>ORDER BY kolumna DESC</code> - wtedy w ogóle nie rosnąco.</li><li><strong>Słowo &quot;zawsze&quot; jest za mocne</strong> - wystarczy jeden kontrprzykład.</li></ol>\n<p>```sql<br>SELECT * FROM tabela ORDER BY wiek; -- może być [25, 30, 30, 45] - to NIEROSNĄCO niemalejąco, ale NIE ściśle.<br>SELECT * FROM tabela ORDER BY wiek DESC; -- malejąco.</p>\n<h5>Stwierdzenie 2: UPDATE może zmienić pola → <strong>P</strong></h5>\n<p><strong>Prawda.</strong> UPDATE to <strong>podstawowe zapytanie modyfikujące</strong> w SQL:<br>```sql<br>UPDATE pracownicy<br>SET pensja = pensja * 1.1<br>WHERE staz_lat &gt; 5;<br>To zmienia wartości pola <code>pensja</code> u pracowników ze stażem &gt; 5 lat.</p>\n<h5>Stwierdzenie 3: SELECT * WHERE pole LIKE może zwrócić wszystkie → <strong>P</strong></h5>\n<p><strong>Prawda.</strong> Wzorzec <code>LIKE &#x27;%&#x27;</code> (jeden znak %, dowolny ciąg) <strong>pasuje do każdego niepustego stringa</strong>:</p>\n<p>```sql<br>SELECT * FROM tabela1 WHERE pole LIKE &#x27;%&#x27;;<br>To zwróci wszystkie rekordy gdzie <code>pole</code> jest NOT NULL.</p>\n<p>Można też <code>LIKE &#x27;%[anything]%&#x27;</code> - pasuje wszędzie, gdzie występuje [anything].</p>\n<h5>Stwierdzenie 4: JOIN może dać pusty wynik przy niepustych tabelach → <strong>P</strong></h5>\n<p><strong>Prawda.</strong> INNER JOIN zwraca tylko <strong>pasujące pary</strong> - jeśli żaden klucz z tabela1 nie pasuje do tabela2, wynik jest <strong>pusty</strong>.</p>\n<p><strong>Przykład:</strong><br>```sql<br>-- tabela1: [{id: 1, kategoria: &#x27;A&#x27;}, {id: 2, kategoria: &#x27;A&#x27;}]<br>-- tabela2: [{id: 10, typ: &#x27;B&#x27;}, {id: 11, typ: &#x27;C&#x27;}]<br>SELECT * FROM tabela1 JOIN tabela2 ON tabela1.kategoria = tabela2.typ;<br>-- Wynik: PUSTY, bo &#x27;A&#x27; nigdy nie pasuje do &#x27;B&#x27; ani &#x27;C&#x27;.</p>\n<h4>Reference informatyczny - kluczowe konstrukcje SQL</h4>\n<blockquote>Reference - ORDER BY:<br>- Domyślnie ASC (rosnąco). Można jawnie ASC/DESC.<br>- <strong>NIE musi być ściśle rosnące</strong> - równe wartości mogą sąsiadować.<br>- Sortowanie po wielu polach: <code>ORDER BY a, b DESC</code> (a rosnąco, b malejąco).<br>- <strong>NULL</strong>: zwykle na początku przy ASC (zależy od silnika).<br><br>Reference - UPDATE:<br>- Składnia: <code>UPDATE tabela SET kol1 = val1, kol2 = val2 WHERE warunek;</code>.<br>- <strong>UWAGA</strong>: bez <code>WHERE</code> aktualizuje WSZYSTKIE rekordy.<br>- Może użyć podzapytań: <code>SET kol = (SELECT )</code>.<br><br>Reference - LIKE:<br>- <code>%</code> = dowolny ciąg znaków (0 lub więcej).<br>- <code>_</code> = dokładnie jeden znak.<br>- <code>LIKE &#x27;%&#x27;</code> = każdy niepusty string.<br>- <code>LIKE &#x27;A%&#x27;</code> = zaczynający się na A.<br>- <code>LIKE &#x27;%kot%&#x27;</code> = zawierający &quot;kot&quot;.<br>- <code>LIKE &#x27;_at&#x27;</code> = 3-znakowy, kończący się na &quot;at&quot; (cat, bat, hat).<br><br>Reference - JOIN:<br>- <strong>INNER JOIN</strong> (= JOIN) - tylko pasujące rekordy z obu tabel.<br>- <strong>LEFT JOIN</strong> - wszystkie z lewej + dopasowane z prawej (NULL gdy brak).<br>- <strong>RIGHT JOIN</strong> - analogicznie z prawej.<br>- <strong>FULL JOIN</strong> - wszystkie z obu.<br>- <strong>CROSS JOIN</strong> - kartezjański.<br>- Pusty wynik INNER JOIN może wystąpić nawet przy niepustych tabelach.</blockquote>\n<h4>Schemat oceniania CKE</h4>\n<blockquote>Klucz CKE (zadanie 3.3, max 1 pkt):<br>- <strong>1 pkt</strong> - wszystkie 4 odpowiedzi poprawne: F, P, P, P<br>- <strong>0 pkt</strong> - niepełna lub błędna</blockquote>\n<h4>Typowe pułapki</h4>\n<ul><li><strong>&quot;Zawsze ściśle rosnąco&quot;</strong> - uczniowie myślą &quot;ORDER BY = rosnąco&quot; i klikają P, ale słowo &quot;ściśle&quot; wyklucza duplikaty. Plus można sortować DESC.</li><li><strong>LIKE z <code>%</code> jako jedynym znakiem</strong> - często pomijane. To bardzo użyteczne w optional filters.</li><li><strong>JOIN z pustym wynikiem</strong> - uczniowie mylą z tym, że tabele są niepuste = wynik niepusty. INNER JOIN wymaga DOPASOWAŃ.</li><li><strong>UPDATE bez WHERE</strong> - pamiętać o ryzyku, ale w stwierdzeniu pyta tylko CZY MOŻE zmienić → tak, oczywiście.</li></ul>\n<h4>Złożoność obliczeniowa</h4>\n<p>N/A - zadanie teoretyczne z SQL.</p>"}]}