На чем писать странички с SQL запросами?
Для оракл удобно использовать Apex от самого же оракла
Поддержу Даша Циклаури. 
Если у вас развернута БД Oracle и есть строгое требование создавать приложения именно на основе этой БД (к примеру в вашей компании ERP-система на базе Oracle), а так же  нет опыта в создании веб-приложений, то ничего лучше Oracle Application Express (Apex) вам не найти.
Это бесплатный фреймверк от самой Oracle для быстрого создания полноценных web-приложений. Сам Apex очень тесно интегрируется с базой и добавляет очень незначительный оверхед к выполнению запроса. По сути, вы все время имеете дело с SQL и PL/SQL и практически не отвлекаетесь на сам "web".  Apex предоставляет набор современных тем (обеспечивающих единый дизайн для всего приложения), в том числе адаптированных для мобильных устройств, так что если вам просто нужно выводить определенные отчеты на основе данных в базе, вы за час можете сделать полноценное web-приложение, с аутентификацией/авторизацией (в том числе SSO), современным интерфейсом и богатыми возможностями по выборке/фильтрации данных. Если же в вашем приложении помимо отчетов должна выполняться какая-либо бизнес-логика, то вы просто описываете ее на PL/SQL в соответствующем пакете/пакетах и потом в Apex просто пишите вызов функций из этих пакетов (SQL и PL/SQL - можно писать и в самом Apex, но это плохо с точки зрения дальнейшей поддержки). Если на определенном моменте вам будет не хватать функциональности из коробки, то вы легко можете расширять ее до бесконечности, самостоятельно или же при помощи сторонних дополнений.
В общем Apex отличный выбор если ваши безнес-процессы завязаны на инфраструктуре Oracle и вам нужно быстро создавать качественные приложения на основе имеющихся данных для использования внутри компании/предприятия.
Если же ваша цель изучить основы web-разработки на примере текущих задач, то не стоит привязываться к конкретной БД. Сейчас web-приложения должны уметь взаимодействовать с различными системами хранения, за частую с разными видами одновременно. Поэтому обычно персистентный слой прячут за сервисным, который предоставляет единое АПИ для получения данных из различных источников. В данном контексте наиболее разумно на стороне backend'а создавать сервис который будет принимать http-запросы от клиентских приложений и в зависимости от запроса выгружать соответствующие данные из хранилища/хранилищ данных и возвращать в виде http-ответа, например в формате JSON или по WebSocket'ам или SSE (Server-Sent Events). Клиенты же могут быть как JS-приложениями, так и мобильными приложениями или другими сервисами.
P.S. посмотреть, что из себя представляет Apex и потренироваться в создании приложений вы можете совершенно бесплатно, зарегистрировавшись на https://apex.oracle.com
Вот здесь можно подобрать книгу для изучения Apex:
www.oracle.com/technetwork/developer-tools/apex/ap...