Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Bazy danych

Słowa kluczowe: ALTER TABLE w SQL CREATE TABLE w SQL DDL w SQL

Które polecenie w MySQL wybiera bazę danych szkola jako bieżącą, tak aby kolejne zapytania odnosiły się do jej tabel?

A.
ALTER DATABASE szkola;
Źle. ALTER DATABASE zmienia cechy bazy, np. kodowanie znaków, ale jej nie wybiera.
B.
USE szkola;
Dobrze. USE ustawia bazę jako bieżącą dla połączenia, więc kolejne zapytania dotyczą jej tabel.
C.
SET DATABASE szkola;
Źle. SET ustawia zmienne, np. SET NAMES. Polecenia SET DATABASE w MySQL nie ma.
D.
OPEN DATABASE szkola;
Źle. MySQL nie ma polecenia OPEN DATABASE, więc zakończy się błędem składni.

Polecenie USE szkola; ustawia bazę szkola jako domyślną dla bieżącego połączenia. Od tej chwili zapytanie SELECT * FROM uczniowie; dotyczy tabeli uczniowie w bazie szkola i nie trzeba pisać pełnej nazwy szkola.uczniowie.

Zwykła kolejność pracy w konsoli MySQL: CREATE DATABASE szkola;, potem USE szkola;, potem CREATE TABLE i dalsze polecenia. Która baza jest wybrana, pokazuje SELECT DATABASE();. W phpMyAdmin wybór bazy w lewym panelu robi to samo, a w PHP odpowiednikiem jest czwarty parametr mysqli_connect albo funkcja mysqli_select_db.

Polecenie działa tylko w obrębie jednego połączenia: po ponownym zalogowaniu do konsoli bazę trzeba wybrać jeszcze raz. Na egzaminie praktycznym import pliku SQL w phpMyAdmin również wymaga wcześniejszego zaznaczenia właściwej bazy.

Błędne zapisy wyglądają wiarygodnie, bo słowa open czy set kojarzą się z otwieraniem i ustawianiem. MySQL nie ma jednak polecenia OPEN DATABASE ani SET DATABASE. Oba skończą się błędem składni.

SET istnieje, ale służy do ustawiania zmiennych, np. SET NAMES utf8mb4; albo SET @licznik = 0;, a nie do wyboru bazy.

ALTER DATABASE jest poprawnym poleceniem, ale zmienia cechy bazy, przede wszystkim domyślne kodowanie i porównywanie znaków, np. ALTER DATABASE szkola CHARACTER SET utf8mb4;. Nie ustawia jej jako bieżącej, więc po nim zapytanie bez nazwy bazy nadal zgłosi błąd braku wybranej bazy.

Jeśli bazy nie wybrano, możesz też podawać jej nazwę przed nazwą tabeli: SELECT * FROM szkola.uczniowie;. To działa niezależnie od bieżącej bazy i przydaje się, gdy zapytanie łączy tabele z dwóch różnych baz. Na co dzień wygodniej jednak raz wywołać USE.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.