Różnice między wybraną wersją a wersją aktualną.
Poprzednia rewizja po obu stronachPoprzednia wersjaNowa wersja | Poprzednia wersja | ||
notatki:bazy_danych [2025/05/13 12:03] – administrator | notatki:bazy_danych [2025/05/16 17:25] (aktualna) – administrator | ||
---|---|---|---|
Linia 1: | Linia 1: | ||
- | ====== | + | ====== MySQL: Wstęp projekt bazy Sklep ====== |
+ | |||
+ | Możesz podążać za tutorialem poprzez stronę: https:// | ||
W tym artykule wykorzystamy przykładową bazę danych sklepu internetowego z trzema tabelami: klienci, towary i zamówienia. Przedstawimy definicje tabel w SQL oraz dodamy po 10 przykładowych rekordów do każdej z nich. Następnie omówimy różne rodzaje zapytań na tych danych, w tym: | W tym artykule wykorzystamy przykładową bazę danych sklepu internetowego z trzema tabelami: klienci, towary i zamówienia. Przedstawimy definicje tabel w SQL oraz dodamy po 10 przykładowych rekordów do każdej z nich. Następnie omówimy różne rodzaje zapytań na tych danych, w tym: | ||
Linia 15: | Linia 17: | ||
Zacznijmy od zdefiniowania struktury bazy danych sklepu. Utworzymy trzy tabele: | Zacznijmy od zdefiniowania struktury bazy danych sklepu. Utworzymy trzy tabele: | ||
<WRAP right 25%> | <WRAP right 25%> | ||
- | {{: | + | {{: |
Po wykonaniu skryptu powinniśmy uzyskać coś takiego | Po wykonaniu skryptu powinniśmy uzyskać coś takiego | ||
</ | </ | ||
Linia 316: | Linia 318: | ||
Dzięki tym przykładowym zapytaniom możesz ćwiczyć pracę z bazą danych i stopniowo rozwijać swoje umiejętności SQL. Pamiętaj, że kluczem jest praktyka – warto eksperymentować na różnych danych i zadaniach, aby lepiej opanować składnię i możliwości MySQL. | Dzięki tym przykładowym zapytaniom możesz ćwiczyć pracę z bazą danych i stopniowo rozwijać swoje umiejętności SQL. Pamiętaj, że kluczem jest praktyka – warto eksperymentować na różnych danych i zadaniach, aby lepiej opanować składnię i możliwości MySQL. | ||
+ | |||
+ | == Pełen dump bazy danych == | ||
+ | <code mysql> | ||
+ | -- Adminer 5.2.1 MySQL 8.0.42 dump | ||
+ | |||
+ | SET NAMES utf8; | ||
+ | SET time_zone = ' | ||
+ | SET foreign_key_checks = 0; | ||
+ | SET sql_mode = ' | ||
+ | |||
+ | DROP DATABASE IF EXISTS `sklep`; | ||
+ | CREATE DATABASE `sklep` /*!40100 DEFAULT CHARACTER SET utf8mb3 COLLATE utf8mb3_polish_ci */ /*!80016 DEFAULT ENCRYPTION=' | ||
+ | USE `sklep`; | ||
+ | |||
+ | DELIMITER ;; | ||
+ | |||
+ | CREATE PROCEDURE `LiczbaZamowienDlaKlienta` (IN `client_id` int) | ||
+ | BEGIN SELECT COUNT(*) AS liczba_zamowien | ||
+ | FROM zamowienia | ||
+ | WHERE id_klienta = client_id; | ||
+ | END;; | ||
+ | |||
+ | DELIMITER ; | ||
+ | |||
+ | DROP TABLE IF EXISTS `klienci`; | ||
+ | CREATE TABLE `klienci` ( | ||
+ | `id_klienta` int NOT NULL, | ||
+ | `imie` varchar(50) COLLATE utf8mb3_polish_ci DEFAULT NULL, | ||
+ | `nazwisko` varchar(50) COLLATE utf8mb3_polish_ci DEFAULT NULL, | ||
+ | `miasto` varchar(50) COLLATE utf8mb3_polish_ci DEFAULT NULL, | ||
+ | `wiek` int DEFAULT NULL, | ||
+ | PRIMARY KEY (`id_klienta`) | ||
+ | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_polish_ci; | ||
+ | |||
+ | INSERT INTO `klienci` (`id_klienta`, | ||
+ | (1, | ||
+ | (2, | ||
+ | (3, | ||
+ | (4, | ||
+ | (5, | ||
+ | (6, | ||
+ | (7, | ||
+ | (8, | ||
+ | (9, | ||
+ | (11, | ||
+ | |||
+ | DROP TABLE IF EXISTS `towary`; | ||
+ | CREATE TABLE `towary` ( | ||
+ | `id_towaru` int NOT NULL, | ||
+ | `nazwa` varchar(100) COLLATE utf8mb3_polish_ci DEFAULT NULL, | ||
+ | `kategoria` varchar(50) COLLATE utf8mb3_polish_ci DEFAULT NULL, | ||
+ | `cena` decimal(10, | ||
+ | PRIMARY KEY (`id_towaru`) | ||
+ | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_polish_ci; | ||
+ | |||
+ | INSERT INTO `towary` (`id_towaru`, | ||
+ | (1, | ||
+ | (2, | ||
+ | (3, | ||
+ | (4, | ||
+ | (5, | ||
+ | (6, | ||
+ | (7, | ||
+ | (8, | ||
+ | (9, | ||
+ | (10, | ||
+ | |||
+ | DROP TABLE IF EXISTS `zamowienia`; | ||
+ | CREATE TABLE `zamowienia` ( | ||
+ | `id_zamowienia` int NOT NULL, | ||
+ | `id_klienta` int DEFAULT NULL, | ||
+ | `id_towaru` int DEFAULT NULL, | ||
+ | `ilosc` int DEFAULT NULL, | ||
+ | `DATA` date DEFAULT NULL, | ||
+ | PRIMARY KEY (`id_zamowienia`), | ||
+ | KEY `fk_zamowienia_klienci` (`id_klienta`), | ||
+ | KEY `fk_zamowienia_towary` (`id_towaru`), | ||
+ | CONSTRAINT `fk_zamowienia_klienci` FOREIGN KEY (`id_klienta`) REFERENCES `klienci` (`id_klienta`) ON DELETE CASCADE ON UPDATE CASCADE, | ||
+ | CONSTRAINT `fk_zamowienia_towary` FOREIGN KEY (`id_towaru`) REFERENCES `towary` (`id_towaru`) ON DELETE RESTRICT ON UPDATE CASCADE | ||
+ | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_polish_ci; | ||
+ | |||
+ | INSERT INTO `zamowienia` (`id_zamowienia`, | ||
+ | (1, | ||
+ | (2, | ||
+ | (3, | ||
+ | (4, | ||
+ | (5, | ||
+ | (6, | ||
+ | (7, | ||
+ | (8, | ||
+ | (9, | ||
+ | (10, | ||
+ | |||
+ | -- 2025-05-13 10:05:07 UTC | ||
+ | </ |