Для конкретного случая механизма SQL, используемого страницей в W3Schools :
Браузеры Safari, Chrome и Opera
Если вы используете браузер Safari (я тестировал на Mac OS X 10.12), на странице используется SQLite, который, похоже, встроен в сам браузер. Когда вы нажимаете кнопку «Запустить SQL», он не использует никаких внешних ресурсов. Дальнейшее обратное проектирование показывает, что страница инициализирует базу данных с помощью следующего кода JavaScript:
function w3WebSQLInit() {
var w3DBObj = this;
w3Database = window.openDatabase('W3SchoolsDemoDatabase', '1.0', 'W3SchoolsDemoDatabase', 2 * 1024 * 1024);
...
}
window.openDatabase
означает, что код использует базу данных Web SQL . Это было определено W3C несколько лет назад и реализовано на практике Opera, Safari и Chrome (AFAIK), но не FireFox (или Explorer). Кажется, что все три браузера реализовали «базу данных Web SQL», внедрив в себя разные версии SQLite.
На этом этапе страница W3C утверждает:
«Осторожно. Эта спецификация больше не находится в активном обслуживании, и Рабочая группа по веб-приложениям не намерена продолжать ее».
Я протестировал браузер Chrome (версия 56.0.2924.87, в Windows 10) и, похоже, использует SQLite 3.10.2. Opera (версия 12.15, в Windows 10), использует SQLite 3.7.9.
Опера достаточно понятна в своих «о»
А в Руководстве по программированию клиентских и автономных приложений Safari также упоминается, что
Начиная с Safari 3.1 и iOS 2.0, Safari поддерживает класс базы данных JavaScript HTML5. Класс базы данных JavaScript, основанный на SQLite, предоставляет реляционную базу данных, предназначенную для локального хранения контента, который слишком велик для удобного хранения в файлах cookie (или слишком важен для риска случайное удаление, когда пользователь удаляет свои куки).
Я не смотрел в Chrome ... но мое предположение ясно.
FireFox, Edge и Internet Explore браузеры
Если вы используете браузер FireFox (я тестировал на Mac OS X 10.12); та же страница W3School ведет себя совершенно иначе. Он не выполняет запросы в браузере , но отправляет запросы на их сервер . На стороне сервера, я думаю, что на самом деле используется база данных MS Access . Один из способов проверить это - проверить (стандарт) information_schema
.
Если вы выполните следующий запрос (который в базе данных, соответствующей стандартам, даст список таблиц, доступных пользователю):
SELECT * FROM information_schema.tables;
Вы получаете следующий (слишком показательный) ответ об ошибке :
Could not find file 'C:\Windows\SysWOW64\inetsrv\information_schema.mdb'.
Если программное обеспечение ищет файл .MDB, это означает, что он использует Microsoft Jet Database Engine (или что-то подобное) на стороне сервера и использует файлы формата Access .MDB , которые соответствуют версиям Access вплоть до и включая 2003. (Access 2007 и более поздние версии по умолчанию используют файлы формата .ACCDB).
Microsoft Internet Explorer 11 ведет себя так же (в Windows 10); как и Edge (в Windows 10).