Polecenia w arkuszach powtarzają się. Po lewej zwrot z treści zadania, po prawej jego zapis.
wybierające jedynie pola A, B, C z tabeli T
SELECT A, B, C FROM T;
dla wiersza o id równym 2 / dla rekordu o numerze 5
… WHERE id = 2;
posortowane malejąco według ceny
… ORDER BY cena DESC;
pierwsze 15 rekordów
… LIMIT 15;
losujące dwa dowolne rekordy
… ORDER BY RAND() LIMIT 2;
liczba wszystkich rekordów w tabeli
SELECT COUNT(*) FROM T;
średnia cena oraz najdroższy pojazd, nazwy kolumn (aliasy) „Średnia cena”, „Maksymalna cena”
SELECT AVG(cena) AS "Średnia cena", MAX(cena) AS "Maksymalna cena" FROM pojazdy;
należy posłużyć się relacją
… FROM T1 JOIN T2 ON T1.id = T2.id_T1 …
zaokrąglony do najbliższej mniejszej liczby całkowitej
FLOOR( … )
zgrupowane dla każdej choroby / dla każdego autora
… GROUP BY choroby.id;
imiona rozpoczynające się literą J
… WHERE imie LIKE 'J%';
w latach 1970–1979
… WHERE YEAR(data_ur) BETWEEN 1970 AND 1979;
tworzące konto użytkownika Anna na localhost z hasłem …
CREATE USER 'Anna'@'localhost' IDENTIFIED BY '…';
nadające użytkownikowi prawa do wybierania i aktualizacji danych jedynie dla tabeli T
GRANT SELECT, UPDATE ON baza.T TO 'Anna'@'localhost';
nadające użytkownikowi wszystkie prawa do manipulowania danymi we wszystkich tabelach bazy
GRANT SELECT, INSERT, UPDATE, DELETE ON baza.* TO 'u'@'localhost';
dodające kolumnę / usuwające kolumnę
ALTER TABLE T ADD COLUMN ocena INT; ALTER TABLE T DROP COLUMN ocena;
nowa kolumna typu TINYINT, długość 1, wartość domyślna 0
ALTER TABLE ksiazka ADD COLUMN rezerwacja TINYINT(1) DEFAULT 0;
nowa kolumna typu napisowego o maksymalnej długości 100 znaków
ALTER TABLE parada ADD COLUMN lokalizacja VARCHAR(100);
tworzące tabelę klienci z kolumnami … klucz główny generowany automatycznie
CREATE TABLE klienci (
id_klienta INT PRIMARY KEY AUTO_INCREMENT,
imie VARCHAR(20) NOT NULL
);
klucz główny nadawany automatycznie (wstawianie rekordu)
INSERT INTO kategorie VALUES (NULL, 'Sandały'); -- NULL w miejscu klucza
automatycznie wpisywana aktualna data
INSERT INTO rejestr (id_personelu, id_pojazdu, data) VALUES (1, 14, CURDATE());
pierwsze 100 znaków opisu
SELECT nazwa, LEFT(opis, 100) FROM gry WHERE id = 1;
cena wzrasta o 10% / obniżając cenę o 25%
UPDATE tatuaze SET cena = cena * 1.1 WHERE kolor = 'czerwony';
UPDATE opony SET cena = cena * 0.75 WHERE sezon = 'letnie';
tytuł niepusty (dowolny, niepusty)
… WHERE tytul <> '';
w nazwie zawiera się słowo „mebli” / cząstka „mir”
… WHERE zadanie LIKE '%mebli%';
w opisie znajdują się słowa „zdrowie” albo „opieką”
… WHERE opis LIKE '%zdrowie%' OR opis LIKE '%opieką%';
dodane w sierpniu 2021 roku
… WHERE data_dodania LIKE '2021-08-%'; albo MONTH(d)=8 AND YEAR(d)=2021
mieści się w przedziale <100, 1000>
… WHERE cena BETWEEN 100 AND 1000;
id osób, które nie pojawiają się w rejestrze
SELECT id, nazwisko FROM personel
WHERE id NOT IN (SELECT id_personelu FROM rejestr);
zestawienie: wszystkie kursy i liczba zapisanych (także zero)
SELECT nazwa, COUNT(uczestnicy.id) AS "Zapisanych"
FROM kursy LEFT JOIN uczestnicy ON kursy.id = id_kursu
GROUP BY kursy.id;
wybierany jest tylko jeden losowy rekord (z relacją)
SELECT … FROM zamowienia JOIN opony ON … ORDER BY RAND() LIMIT 1;
średnia zaokrąglona do liczby całkowitej, tylko dla lat po 2005
SELECT rok, ROUND(AVG(dlugosc)) AS "Średnia długość" FROM parada JOIN smok ON …
WHERE rok > 2005 GROUP BY rok;
wyeksportuj dane z tabeli do pliku CSV
phpMyAdmin → tabela → Eksport → format CSV → Wykonaj (nazwa pliku zgodna z treścią)
aktualizujące dane w rekordzie o id równym 5: pole podkategoria przyjmuje wartość 1
UPDATE ogloszenia SET podkategoria = 1 WHERE id = 5;