Objective
Create a simple table for storing MP3 audio files. This is the foundation for building audio management applications like music libraries, podcast archives, and voice recording systems.
Step 1: Create Audio Files Table
Create a table for storing MP3 audio files.
CREATE TABLE audio_files (
id INTEGER PRIMARY KEY,
title VARCHAR(255) NOT NULL,
audio_file AUDIO(MP3),
description TEXT,
duration_seconds INTEGER,
file_size BIGINT,
uploaded_by VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Step 2: Insert Sample Audio Records
Add sample audio file records.
INSERT INTO audio_files (id, title, description, duration_seconds, file_size, uploaded_by) VALUES
(1, 'Morning Podcast Episode 1', 'Introduction to our daily podcast series', 1800, 28800000, 'host_john'),
(2, 'Interview with Tech Expert', 'Discussion about AI trends in 2024', 2700, 43200000, 'host_john'),
(3, 'Music Track - Summer Vibes', 'Upbeat instrumental music', 240, 3840000, 'producer_mike'),
(4, 'Voice Memo - Meeting Notes', 'Quick summary of project meeting', 120, 1920000, 'user_sarah'),
(5, 'Meditation Guide - Relaxation', '10-minute guided meditation session', 600, 9600000, 'wellness_team');
Step 3: Query All Audio Files
Retrieve all audio files with basic info.
SELECT
id,
title,
duration_seconds,
file_size,
uploaded_by,
created_at
FROM audio_files
ORDER BY created_at DESC;
Step 4: Format Duration Display
Display duration in readable format.
SELECT
title,
duration_seconds,
(duration_seconds / 60) || ':' ||
CASE
WHEN (duration_seconds % 60) < 10 THEN '0' || (duration_seconds % 60)
ELSE CAST((duration_seconds % 60) AS VARCHAR)
END as duration_formatted,
file_size
FROM audio_files
ORDER BY duration_seconds DESC;
Step 5: Filter by Duration
Find audio files within a duration range.
-- Short audio (under 5 minutes)
SELECT title, duration_seconds
FROM audio_files
WHERE duration_seconds < 300;
-- Medium audio (5-30 minutes)
SELECT title, duration_seconds
FROM audio_files
WHERE duration_seconds BETWEEN 300 AND 1800;
-- Long audio (over 30 minutes)
SELECT title, duration_seconds
FROM audio_files
WHERE duration_seconds > 1800;