add lab-database

This commit is contained in:
Klagarge committed 2024-02-22 15:08:55 +01:00
1 parent 91e02ba46a
commit 04f2ca9aba
4 files changed
+404

No files matched your search

+1
View File
@@ -156,6 +156,7 @@
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-java.js"></script>
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-xml.js"></script>
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-json.js"></script>
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-sql.js"></script>
<!----- Dark Theme ----->
<script src="//cdn.jsdelivr.net/npm/docsify-darklight-theme@latest/dist/index.min.js"> </script>
+109
View File
@@ -0,0 +1,109 @@
<header><h1>
Lab databases
</h1></header>
----------
# Create & populate tables
![relations.png](relations.png)
# Queries
#### 1) the description of all Function
```sql
SELECT `description` FROM `Function`
```
> [!NOTE|label:Result]
>
> "description" <br>
> "Fast backwards" <br>
> "Raise up the low frequencies. Cut off frequency : 200 Hz" <br>
> "Reduce the low frequencies. Cut off frequency : 200 Hz" <br>
> "Fast forwards" <br>
> "Tunes down" <br>
> "Tunes up" <br>
> "Plays to the next track" <br>
> "Open or close the player's tray" <br>
> "Pauses the current track" <br>
> "Plays the selected track" <br>
> "Select the preset 1" <br>
> "Select the preset 2" <br>
> "Select the preset 3" <br>
> "Plays to the previous track" <br>
> "Stores the current frequency to a preset" <br>
> "Stops the current track" <br>
> "Reduce the high frequencies.Cut off frequency : 4000 Hz" <br>
> "Raise up the high frequencies. Cut off frequency : 4000 Hz" <br>
> "Slow down fine tuning" <br>
> "Slow up fine tuning" <br>
> "Raise up the volume" <br>
> "Reduce the volume" <br>
> "Select the source of the input (BD, DVD, HDMI, ...)" <br>
> "Select the Audio format to use with the current source (2ch stereo, 5.1, 7.2, 9.2, ...)" <br>
#### 2) the `name` of manufacturers that have at least one entry in the `Model` table
```sql
SELECT `Manufacturer`.`manufacturerName`
FROM `Manufacturer`
WHERE EXISTS( SELECT *
FROM `Model`
WHERE `Model`.`manufacturerID`=`Manufacturer`.`manufacturerID`)
```
> [!NOTE|label:Result]
>
> "manufacturerName" <br>
> "HEVs" <br>
> "Sony" <br>
> "Onkyo"
#### 3) the `modelName` of device models together with the `manufacturerName` of their manufacturers
```sql
SELECT `Model`.`modelName`, `Manufacturer`.`manufacturerName`
FROM `Model`, `Manufacturer`
WHERE `Model`.`manufacturerID` = `Manufacturer`.`manufacturerID`
```
> [!NOTE|label:Result]
>
> "modelName","manufacturerName" <br>
> "MHC-900","Sony" <br>
> "SDi-Ampli-01","HEVs"
> "SDi-CdDvd-01","HEVs" <br>
> "SDi-Tuner-01","HEVs" <br>
> "UBP-X800M2","Sony" <br>
> "TX-RZ70","Onkyo"
#### 4) the description of the Function with functionLabel “Stop”
```sql
SELECT `Function`.`description`
FROM `Function`
WHERE `Function`.`functionLabel` like 'Stop'
```
> [!NOTE|label:Result]
> "description" <br>
> "Stops the current track"
#### 5) the `functionLabel` for `Function` with `functionID` > 10 and with a `description` containing the word “`preset`” (SQL wildcard character is “`%`”)
```sql
SELECT `Function`.`functionLabel`
FROM `Function`
WHERE `Function`.`functionID` > '10' AND `Function`.`description` like '%preset%'
```
> [!NOTE|label:Result]
> "functionLabel" <br>
> "Preset 1" <br>
> "Preset 2" <br>
> "Preset 3" <br>
> "Save preset"
#### 6) the product of the tables `Code` and `FunctionList` (with and without the `JOIN` keyword), as well as the number of entries in the resulting product table
```sql
```
> [!NOTE|label:Result]
>
# Test constraints
Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

+294
View File
@@ -0,0 +1,294 @@
-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Host: db
-- Generation Time: Feb 22, 2024 at 01:08 PM
-- Server version: 8.1.0
-- PHP Version: 8.2.8
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `sdi04`
--
-- --------------------------------------------------------
--
-- Table structure for table `Code`
--
CREATE TABLE `Code` (
`codeID` int NOT NULL,
`codeValue` int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
--
-- Dumping data for table `Code`
--
INSERT INTO `Code` (`codeID`, `codeValue`) VALUES
(1, 7),
(2, 124),
(3, 125),
(4, 547),
(5, 698),
(6, 59409854),
(7, 78546723),
(8, 81298355),
(9, 84578346),
(10, 84793478),
(11, 95847623),
(12, 458945040),
(13, 458945041),
(14, 458945042),
(15, 458945043),
(16, 458945044),
(17, 458945045),
(18, 1164736495),
(19, 1164736496),
(20, 1184894580),
(21, 1184894581),
(22, 1184894582),
(23, 1184894589),
(24, 1948573644),
(25, 1948573645),
(26, 1948573646);
-- --------------------------------------------------------
--
-- Table structure for table `Function`
--
CREATE TABLE `Function` (
`functionID` int NOT NULL,
`functionLabel` varchar(64) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`description` varchar(256) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
--
-- Dumping data for table `Function`
--
INSERT INTO `Function` (`functionID`, `functionLabel`, `description`) VALUES
(1, 'Back', 'Fast backwards'),
(2, 'Bass down', 'Raise up the low frequencies. Cut off frequency : 200 Hz'),
(3, 'Bass up', 'Reduce the low frequencies. Cut off frequency : 200 Hz'),
(4, 'Forward', 'Fast forwards'),
(5, 'Frequency down', 'Tunes down'),
(6, 'Frequency up', 'Tunes up'),
(7, 'Next', 'Plays to the next track'),
(8, 'Open/Close tray', 'Open or close the player\'s tray'),
(9, 'Pause', 'Pauses the current track'),
(10, 'Play', 'Plays the selected track'),
(11, 'Preset 1', 'Select the preset 1'),
(12, 'Preset 2', 'Select the preset 2'),
(13, 'Preset 3', 'Select the preset 3'),
(14, 'Previous', 'Plays to the previous track'),
(15, 'Save preset', 'Stores the current frequency to a preset'),
(16, 'Stop', 'Stops the current track'),
(17, 'Treble down', 'Reduce the high frequencies.Cut off frequency : 4000 Hz'),
(18, 'Treble up', 'Raise up the high frequencies. Cut off frequency : 4000 Hz'),
(19, 'Tune down', 'Slow down fine tuning'),
(20, 'Tune up', 'Slow up fine tuning'),
(21, 'Volume down', 'Raise up the volume'),
(22, 'Volume up', 'Reduce the volume'),
(23, 'Input source', 'Select the source of the input (BD, DVD, HDMI, ...)'),
(24, 'Audio format', 'Select the Audio format to use with the current source (2ch stereo, 5.1, 7.2, 9.2, ...)');
-- --------------------------------------------------------
--
-- Table structure for table `FunctionList`
--
CREATE TABLE `FunctionList` (
`modelID` int NOT NULL,
`functionID` int NOT NULL,
`codeID` int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
--
-- Dumping data for table `FunctionList`
--
INSERT INTO `FunctionList` (`modelID`, `functionID`, `codeID`) VALUES
(1, 1, 1),
(1, 10, 2),
(1, 16, 3),
(1, 9, 4),
(1, 4, 5),
(3, 8, 6),
(3, 7, 7),
(3, 16, 8),
(3, 9, 9),
(3, 10, 10),
(3, 14, 11),
(2, 17, 12),
(2, 18, 13),
(2, 2, 14),
(2, 3, 15),
(2, 21, 16),
(2, 22, 17),
(4, 19, 18),
(4, 20, 19),
(4, 11, 20),
(4, 12, 21),
(4, 13, 22),
(4, 15, 23),
(4, 5, 24),
(4, 6, 25),
(1, 8, 26);
-- --------------------------------------------------------
--
-- Table structure for table `Manufacturer`
--
CREATE TABLE `Manufacturer` (
`manufacturerID` int NOT NULL,
`manufacturerName` varchar(64) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`address` varchar(256) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`city` varchar(64) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
--
-- Dumping data for table `Manufacturer`
--
INSERT INTO `Manufacturer` (`manufacturerID`, `manufacturerName`, `address`, `city`) VALUES
(1, 'HEVs', 'Rte du Rawyl 47', 'Sion'),
(2, 'Sony', 'Rue des Cèdres 2', 'Sion'),
(3, 'Philips', 'Rue Porte-Neuve   11', 'Sion'),
(4, 'Samsung', 'Route Cantonale 2', 'Conthey'),
(5, 'Bang & Olufsen', 'Place du Midi 42', 'Sion'),
(6, 'STENHEIM', 'Route du Rhône 10', 'Vétroz'),
(7, 'Onkyo', 'Kitahama Central Building', 'Osaka');
-- --------------------------------------------------------
--
-- Table structure for table `Model`
--
CREATE TABLE `Model` (
`modelID` int NOT NULL,
`manufacturerID` int NOT NULL,
`typeID` int NOT NULL,
`modelName` varchar(64) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
--
-- Dumping data for table `Model`
--
INSERT INTO `Model` (`modelID`, `manufacturerID`, `typeID`, `modelName`) VALUES
(1, 2, 6, 'MHC-900'),
(2, 1, 1, 'SDi-Ampli-01'),
(3, 1, 2, 'SDi-CdDvd-01'),
(4, 1, 4, 'SDi-Tuner-01'),
(5, 2, 5, 'UBP-X800M2'),
(6, 7, 6, 'TX-RZ70');
-- --------------------------------------------------------
--
-- Table structure for table `Type`
--
CREATE TABLE `Type` (
`typeID` int NOT NULL,
`typeName` varchar(64) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`typeLabel` varchar(64) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
--
-- Dumping data for table `Type`
--
INSERT INTO `Type` (`typeID`, `typeName`, `typeLabel`) VALUES
(1, 'Amp', 'Amplifier HiFi'),
(2, 'CD/DVD player', 'CD and DVD player'),
(3, 'DVD player', 'DVD player compatible DIVX'),
(4, 'Tuner', 'FM and DAB Receiver'),
(5, 'BD player', 'Blu-ray Player'),
(6, 'AV Receiver', 'Amplifier for Home Cinema');
--
-- Indexes for dumped tables
--
--
-- Indexes for table `Code`
--
ALTER TABLE `Code`
ADD PRIMARY KEY (`codeID`);
--
-- Indexes for table `Function`
--
ALTER TABLE `Function`
ADD PRIMARY KEY (`functionID`);
--
-- Indexes for table `FunctionList`
--
ALTER TABLE `FunctionList`
ADD PRIMARY KEY (`modelID`,`functionID`),
ADD KEY `codeID` (`codeID`),
ADD KEY `functionID` (`functionID`);
--
-- Indexes for table `Manufacturer`
--
ALTER TABLE `Manufacturer`
ADD PRIMARY KEY (`manufacturerID`);
--
-- Indexes for table `Model`
--
ALTER TABLE `Model`
ADD PRIMARY KEY (`modelID`),
ADD KEY `manufacturerID` (`manufacturerID`),
ADD KEY `typeID` (`typeID`);
--
-- Indexes for table `Type`
--
ALTER TABLE `Type`
ADD PRIMARY KEY (`typeID`);
--
-- Constraints for dumped tables
--
--
-- Constraints for table `FunctionList`
--
ALTER TABLE `FunctionList`
ADD CONSTRAINT `FunctionList_ibfk_1` FOREIGN KEY (`codeID`) REFERENCES `Code` (`codeID`) ON DELETE RESTRICT ON UPDATE RESTRICT,
ADD CONSTRAINT `FunctionList_ibfk_2` FOREIGN KEY (`functionID`) REFERENCES `Function` (`functionID`) ON DELETE RESTRICT ON UPDATE RESTRICT,
ADD CONSTRAINT `FunctionList_ibfk_3` FOREIGN KEY (`modelID`) REFERENCES `Model` (`modelID`) ON DELETE RESTRICT ON UPDATE RESTRICT;
--
-- Constraints for table `Model`
--
ALTER TABLE `Model`
ADD CONSTRAINT `Model_ibfk_1` FOREIGN KEY (`manufacturerID`) REFERENCES `Manufacturer` (`manufacturerID`) ON DELETE RESTRICT ON UPDATE RESTRICT,
ADD CONSTRAINT `Model_ibfk_2` FOREIGN KEY (`typeID`) REFERENCES `Type` (`typeID`) ON DELETE RESTRICT ON UPDATE RESTRICT;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;