Я не могу понять, как можно написать запрос к зашифрованной базе данных
Существует разница, если вы шифруете базу данных или данные.
Часто сама база данных может зашифровать базу данных (например, MSSQL), или инфраструктура хостинга может зашифровать хранилище данных.В этом случае - сами данные хранятся в зашифрованном виде, но шифрование прозрачно для аутентифицированных клиентов (аутентифицированный клиент будет запрашивать данные, как и раньше, ничего не меняется).Ключ управляется инфраструктурой или базой данных.
Другой вариант - сохранение данных, уже зашифрованных клиентом, например, шифрование только PII клиентским приложением.
Сохранение всех данных, уже зашифрованных, приведет клибо данные недоступны для поиска, либо вам потребуется использовать детерминистическое (семантически незащищенное) шифрование.Это то, что предложил предыдущий ответ.Для этого есть даже хороший инструмент CryptDB , который действует как прокси-сервер шифрования при запросах к базе данных.