MySQL Sample Database
Use fixed fictional inputs so an example can be checked by hand and rerun in a fresh schema.
How it works
The seed includes four parts with different categories, costs and arrival dates. It also includes a NULL note, an empty note, a depot with no parts and a volunteer with no mentor. These are intentional boundary cases, not broken data to hide. Import the seed only into an empty lab schema. Each lesson review starts from a fresh copy, so a write in one example cannot silently affect the expected result of another.
Run in a disposable MySQL lab
Use Oracle MySQL 8.4 with InnoDB, not Bhylu’s SQLite playground. The examples were reviewed on MySQL 8.4.8. XAMPP may provide MariaDB, which has different feature and collation behaviour. Check your actual server before running the script. These lessons do not require a change to Bhylu’s PHP, Apache or normal database service.
- On a separate lab instance, create the empty bhylu_mysql_lab schema. Stop if it already exists; do not overwrite an existing database.
- Select that schema and import the complete repair-parts seed once. It sets the documented session mode, utf8mb4 collation, UTC and English date-name locale.
- Run this lesson in a fresh copy of the seed, not after another lesson’s writes. Use the command-line client or a compatible editor. DELIMITER lines are client instructions for stored-program examples.
Download this complete lesson script. Its setup is the linked seed; review the dataset before changing it. Administrative and destructive examples are restricted to the specifically named disposable objects. Every script repeats the session settings because each new connection has its own session. No MySQL browser runner is currently available.
Example
SET NAMES utf8mb4 COLLATE utf8mb4_0900_ai_ci;
SET SESSION sql_mode = 'STRICT_TRANS_TABLES,ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
SET SESSION time_zone = '+00:00';
SET SESSION lc_time_names = 'en_US';
SELECT id, name, quantity, unit_cost
FROM parts
ORDER BY id;
Expected result
1 | Canvas patch | 12 | 2.5 2 | Brass hinge | 4 | 6 3 | Cotton cord | 0 | 1.2 4 | Wood knob | 6 | 3.75
ORDER BY id makes the display deterministic. Without an explicit order, a table does not promise insertion order. unit_cost is DECIMAL so exact money-like values are not represented as binary floating point. The downloadable seed contains the full table definitions and inserts. Save your experiments separately rather than editing the only copy of the fixture and then wondering why a later output differs.
Use the official MySQL 8.4 reference for statement contracts and version details.