diff --git a/.env.example b/.env.example
index 6ce2526..02148f4 100644
--- a/.env.example
+++ b/.env.example
@@ -12,3 +12,7 @@ export DRUSH_OPTIONS_URI="https://${COMPOSE_PROJECT_NAME}.docker.localhost"
 export MYSQL_DATABASE=app
 export MYSQL_PASSWORD=app
 export MYSQL_USER=app
+
+export DB_NAME="$MYSQL_DATABASE"
+export DB_PASSWORD="$MYSQL_PASSWORD"
+export DB_USER="$MYSQL_USER"
diff --git a/run b/run
index 50dfb04..7d7d3f7 100755
--- a/run
+++ b/run
@@ -39,22 +39,34 @@ function cmd {
   docker compose exec php "${@}"
 }
 
+# Run coding standards checks.
 function coding-standards {
   cmd phpcs "${@}"
 }
 
+# Execute any Composer command.
 function composer {
   _exec php composer "${@}"
 }
 
+# Connect to the database.
+function db {
+  [[ -f ".env" ]] && source .env
+
+  docker compose exec database mysql -u"$DB_USER" -p"$DB_PASSWORD" "$DB_NAME"
+}
+
+# Execute any Drush command.
 function drush {
   _exec php drush "${@}"
 }
 
+# Disable Git hooks.
 function git-hooks:off {
   git config --unset core.hooksPath
 }
 
+# Enable Git hooks.
 function git-hooks:on {
   git config core.hooksPath .githooks
 }
@@ -73,16 +85,19 @@ function install {
   drush site:install -y "${@}"
 }
 
+# Lint the Dockerfile.
 function lint:dockerfile {
   docker container run --rm -i \
     hadolint/hadolint hadolint --ignore DL3008 --ignore DL3022 --ignore DL3059 -t style "${@}" - < Dockerfile
 }
 
+# Run code quality checks.
 function quality {
   coding-standards
   static-analysis
 }
 
+# Start the project.
 function start {
   cp -v --no-clobber .env.example .env || true