Podstawy SQL
Ćwiczenie 1: Utworzenie bazy danych
Utwórz bazę danych o nazwie sklep.
CREATE DATABASE sklep;
Ćwiczenie 1: Tworzenie tabeli
Utwórz tabelę produkty z polami: id, nazwa, cena.
CREATE TABLE produkty (
id INT AUTO_INCREMENT PRIMARY KEY,
nazwa VARCHAR(50),
cena DECIMAL(6,2)
);
Ćwiczenie 2: Wstawianie danych
Dodaj trzy produkty do tabeli produkty.
INSERT INTO produkty(nazwa, cena) VALUES
('Klawiatura', 99.99),
('Mysz', 59.50),
('Monitor', 799.00);
Ćwiczenie 3: Warunek w SELECT
Wyświetl produkty droższe niż 5 zł.
SELECT * FROM produkty
WHERE cena > 5;
Ćwiczenie 4: Aktualizacja danych
Zmień cenę produktu „Mysz” na 69.99.
UPDATE produkty
SET cena = 69.99
WHERE nazwa = 'Mysz';
Ćwiczenie 5: Usuwanie danych
Usuń produkt „Monitor”.
DELETE FROM produkty
WHERE nazwa = 'Monitor';
Zaawansowane SQL
Ćwiczenie 1: Tworzenie tabeli zamówienia
Dodaj tabelę zamowienia, która łączy się z tabelą produkty.
CREATE TABLE zamowienia (
id INT AUTO_INCREMENT PRIMARY KEY,
produkt_id INT,
ilosc INT,
FOREIGN KEY (produkt_id) REFERENCES produkty(id)
);
Ćwiczenie 2: JOIN
Wyświetl nazwy produktów i ilości zamówień.
SELECT p.nazwa, z.ilosc
FROM zamowienia z
JOIN produkty p ON z.produkt_id = p.id;
Ćwiczenie 3: GROUP BY
Policz łączną liczbę sprzedanych sztuk każdego produktu.
SELECT p.nazwa, SUM(z.ilosc) AS sprzedane
FROM zamowienia z
JOIN produkty p ON z.produkt_id = p.id
GROUP BY p.nazwa;
Ćwiczenie 4: HAVING
Wyświetl tylko produkty, których sprzedano więcej niż 10 sztuk.
SELECT p.nazwa, SUM(z.ilosc) AS sprzedane
FROM zamowienia z
JOIN produkty p ON z.produkt_id = p.id
GROUP BY p.nazwa
HAVING SUM(z.ilosc) > 10;
Ćwiczenie 5: Widok
Stwórz widok raport_sprzedazy.
CREATE VIEW raport_sprzedazy AS
SELECT p.nazwa, SUM(z.ilosc) AS sprzedane
FROM zamowienia z
JOIN produkty p ON z.produkt_id = p.id
GROUP BY p.nazwa;
Ćwiczenie 6: Procedura
Napisz procedurę dodającą nowy produkt.
DELIMITER //
CREATE PROCEDURE dodaj_produkt(
IN prod_nazwa VARCHAR(50),
IN prod_cena DECIMAL(6,2)
)
BEGIN
INSERT INTO produkty(nazwa, cena)
VALUES(prod_nazwa, prod_cena);
END //
DELIMITER ;
SQL + PHP
Ćwiczenie 1: Formularz dodawania produktu
Stwórz formularz w PHP do dodawania produktów do bazy.
<form method="post">
Nazwa: <input type="text" name="nazwa"><br>
Cena: <input type="number" step="0.01" name="cena"><br>
<input type="submit" value="Dodaj">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nazwa = $_POST["nazwa"];
$cena = $_POST["cena"];
$conn = new mysqli("localhost", "root", "", "sklep");
$sql = "INSERT INTO produkty(nazwa, cena) VALUES('$nazwa', $cena)";
$conn->query($sql);
$conn->close();
}
?>
Ćwiczenie 2: Wyszukiwanie produktu
Napisz formularz, który wyszukuje produkty po nazwie.
<form method="get">
Szukaj: <input type="text" name="q">
<input type="submit" value="Szukaj">
</form>
<?php
if (isset($_GET["q"])) {
$q = $_GET["q"];
$conn = new mysqli("localhost", "root", "", "sklep");
$sql = "SELECT * FROM produkty WHERE nazwa LIKE '%$q%'";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
echo $row["nazwa"]." - ".$row["cena"]." zł<br>";
}
$conn->close();
}
?>
Ćwiczenie 3: Proste logowanie
Stwórz tabelę uzytkownicy i prosty formularz logowania w PHP.
CREATE TABLE uzytkownicy (
id INT AUTO_INCREMENT PRIMARY KEY,
login VARCHAR(50),
haslo VARCHAR(255)
);
<form method="post">
Login: <input type="text" name="login"><br>
Hasło: <input type="password" name="haslo"><br>
<input type="submit" value="Zaloguj">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$login = $_POST["login"];
$haslo = $_POST["haslo"];
$conn = new mysqli("localhost", "root", "", "sklep");
$sql = "SELECT * FROM uzytkownicy WHERE login='$login' AND haslo='$haslo'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "Zalogowano!";
} else {
echo "Błędny login lub hasło.";
}
$conn->close();
}
?>