Файл формата SQL — что это?
Файл SQL относится к одноименному языку структурированных запросов, SQL файлы хранят код, применяемый в целях изменения содержимого в среде баз данных SQL. Такое расширение файла может хранить разнообразные инструкции, отвечающие за формирование, а также редактирование самой структуры базы данных. Среди подобных инструкций, можно встретить операции вставки, удаления, обновления и так далее.
Файл .sql можно запустить при помощи совместимых с SQL программных комплексов. Открыть файл, имеющий расширение SQL, возможно и при помощи простых текстовых редакторов, потому как файл расширением SQL представляет из себя текстовый файл.
Данный формат файла, на начальном этапе своего создания в 1986 году, был принят в роли стандарта ANSI, относящегося к разработкам института национальных стандартов США, подобные файлы баз данных получили название «SQL-86». В 1987 году Международная организация по стандартизации (ISO), приняла решение о введении файла расширением SQL в сферу массового использования.
Среди специализированного программного обеспечения в системе Windows, можно открыть файл SQL, используя такие утилиты, как Microsoft Visual Studio и FileMaker Pro, а также Adobe Dreamweaver и Microsoft Access. Открывают файл под названием Structured Query и в рамках Mac OS, применяя SQLite или SQLite Database Browser.
Данный тип файла обеспечивает хранение и отвечает за извлечение информации из баз данных, потому расширение файла SQL так быстро распространилось среди пользователей и разработчиков по всему миру.
![]()
Программы для работы с SQL в Windows
Richardson RazorSQL
Altova DatabaseSpy
Microsoft Notepad
Microsoft Access
Navicat for MySQL
![]()
Mac
Richardson RazorSQL
Bare Bones BBEdit
Apple TextEdit
Navicat for MySQL (Mac OS X)
![]()
Linux
Richardson RazorSQL
Navicat for MySQL (Linux)
Решение проблем с файлами SQL
Наиболее распространенная проблема — файл не открывается. Мы подготовили набор программ, с помощью которых вы гарантированно сможете открыть нужный файл в вашей операционной системе.
Иногда просто открыть файл — недостаточно. Если вам нужно его отредактировать — скачайте одну из бесплатных программ:
Если вам необходимо создать файл «с нуля» воспользуйтесь одной из программ с нужным функционалом. Вы найдете несколько вариантов программ для различных платформ по ссылке ниже.
У вас есть нужный файл, но открыть его не получается и вы получаете ошибку о поврежденном файле? Не отчаивайтесь! У нас есть несколько вариантов восстановления:
Видео форматы
Аудио форматы
Электронные книги
Текстовые форматы
Дисковые образы
Табличные данные
Растровые изображения
Векторные изображения
Резервное копирование
Raw
Сжатые файлы
Файлы данных
Базы
3D Изображения
CAD файлы
Файлы разработчиков
Зашифрованные файлы
Исполняемые форматы
Шрифты
Файлы игр
GIS, карты
Другие расширения
Форматы макетов
Форматы плагинов
Файлы настроек
Системные файлы
Веб форматы
Файл с расширением .sql

Файл SQL содержит команды на языке SQL (Structured Query Language). Это язык структурированных запросов, предназначенный для работы с данными в системе реляционных баз данных, например, MySQL. В файле перечислены SQL-запросы для выполнения определенных действий в базе данных: создание новых таблиц, удаление и добавление записей в таблицы, изменение структуры базы данных и т.д. Файлы SQL имеют простой текстовый формат и могут быть открыты в текстовом редакторе, к примеру, Notepad++.
SQL-Ex blog

FORMAT — удобная, но дорогая функция SQL Server: часть 1
Добавил Sergey Moiseenko on Суббота, 20 августа. 2022
Я уже показывал, как FORMAT может быть почти в два раза дороже CONVERT для базы данных Microsoft SQL Server. Это сравнение, возможно, было несколько неточным — а как насчет запутанных выражений CONVERT? Есть ли другие способы получить удобство функции даты FORMAT без увеличения времени выполнения запроса в базе данных SQL?
Сначала в публикации 2015 года я сравнивал эти два подхода T-SQL к форматированию даты:
SELECT FORMAT(sysdatetime(), 'yyyy-MM-dd'),
CONVERT(char(10), sysdatetime(), 120);
Считается, что функция CONVERT является примитивной, и многие из нас генерируют более специализированный вывод, чем простые типы строк ISO. Давайте рассмотрим еще более простое выражение SQL FORMAT, которое создает более читабельный для человека вывод (хотя, замечу, что это на самом деле работа презентационного слоя):
DECLARE @d date = '20220114';
SELECT FORMAT(@d, 'D', 'en-us');
Этот синтаксис даст следующий результат:
Friday, January 14, 2022
Чтобы получить тот же вывод без функции FORMAT, нам потребуется следующий оператор SELECT:
SET LANGUAGE us_english;
DECLARE @d date = '20220114';
SELECT CONCAT_WS(', ',
DATENAME(WEEKDAY, @d),
DATENAME(MONTH, @d) + ' '
+ CONVERT(varchar(2), DATEPART(DAY, @d)),
DATEPART(YEAR, @d)
);
Ясно, что последнее выражение более трудоемко и выглядит не так красиво. И мы должны начать с оператора SET LANGUAGE, чтобы соответствовать тому же спецификатору локали, который встраивается в FORMAT, поскольку собственные языковые установки пользователя могут отличаться от тех, которые мы используем при тестировании.
Многие коллеги, которым требуются подобные более сложные выражения, положительно оценивают упрощения, которые предоставляет FORMAT, а также согласованность с другими языками типа C#. Они зачастую предполагают, что эти дополнительные вычисления понизят производительность до уровеня FORMAT. Ну, мы можем проверить это! Давайте создадим базу данных с включением хранилища запросов (Query Store):
USE master;
GO
DROP DATABASE IF EXISTS FormatTest;
GO
CREATE DATABASE FormatTest;
GO
ALTER DATABASE FormatTest SET QUERY_STORE = ON (QUERY_CAPTURE_MODE = ALL);
GO
USE FormatTest;
GO
Затем мы можем создать таблицу с нескольким тысячам строк:
SELECT o.*, column_name = c.name
INTO dbo.Columns
FROM sys.all_objects AS o
INNER JOIN sys.all_columns AS c
ON o.[object_id] = c.[object_id];
CREATE CLUSTERED INDEX cix ON dbo.Columns(name, column_name);
Выполним простые запросы, которые сканируют всю таблицу и преобразуют значение modify_date в каждой строке:
SET NOCOUNT ON;
GO
DBCC FREEPROCCACHE;
DBCC DROPCLEANBUFFERS;
GO
DECLARE @d varchar(50);
SELECT /* convert1 */ @d = CONCAT_WS(', ',
DATENAME(WEEKDAY, modify_date),
DATENAME(MONTH, modify_date) + ' '
+ CONVERT(varchar(2), DATEPART(DAY, modify_date)),
CONVERT(char(4), DATEPART(YEAR, modify_date)))
FROM dbo.Columns;
GO 50
DBCC FREEPROCCACHE;
DBCC DROPCLEANBUFFERS;
GO
DECLARE @d varchar(50);
SELECT /* format */ @d = FORMAT(modify_date, 'D', 'en-us')
FROM dbo.Columns;
GO 50
Если посмотреть метрики в Query Store, то можно увидеть, что мои прежние наблюдения относительно FORMAT и его накладных расходов CLR по-прежнему верны даже в сравнении с этим более сложным выражением:

Одна из причин, которая притягивает людей к использованию FORMAT (несмотря на потерю производительности), состоит в том, что они не хотят перегружать свои запросы сложными выражениями, подобные тем, которые я использовал выше. Другой способ избежать этого — спрятать сложную функциональность в пользовательскую функцию. Давайте проверим скалярную и встроенную табличнозначную функции, чтобы скрыть выражение:
CREATE FUNCTION dbo.PrettyDate_Scalar
(
@date date
)
RETURNS varchar(50)
WITH SCHEMABINDING
AS
BEGIN
RETURN (SELECT /* скалярная */ PrettyDate = CONCAT_WS(', ',
DATENAME(WEEKDAY, @date),
DATENAME(MONTH, @date) + ' '
+ CONVERT(varchar(2), DATEPART(DAY, @date)),
CONVERT(char(4), DATEPART(YEAR, @date)))
);
END
GO
CREATE FUNCTION dbo.PrettyDate_InlineTVF
(
@date date
)
RETURNS TABLE
WITH SCHEMABINDING
AS
RETURN (SELECT /* встроенная табличнозначная */ PrettyDate = CONCAT_WS(', ',
DATENAME(WEEKDAY, @date),
DATENAME(MONTH, @date) + ' '
+ CONVERT(varchar(2), DATEPART(DAY, @date)),
CONVERT(char(4), DATEPART(YEAR, @date)))
);
GO
Затем мы можем добавить эти запросы в наш тест:
DBCC FREEPROCCACHE;
DBCC DROPCLEANBUFFERS;
GO
DECLARE /* скалярная */ @d varchar(50);
SELECT /* скалярная */ @d = dbo.PrettyDate_Scalar(modify_date)
FROM dbo.Columns;
GO 50
DBCC FREEPROCCACHE;
DBCC DROPCLEANBUFFERS;
GO
DECLARE /* встроенная табличнозначная */ @d varchar(50);
SELECT /* встроенная табличнозначная */ @d = f.PrettyDate
FROM dbo.Columns AS c
CROSS APPLY dbo.PrettyDate_InlineTVF(c.modify_date) AS f;
GO 50

Это всего лишь микросекунды, и такое отличие может не быть таким очевидным при локальном тестировании, но это станет более заметным при масштабировании.
Заметим, что при использовании встроенного форматирования или функций мы можем легко добавить дополнительное форматирование, которого не может предложить FORMAT; например, мы можем добавить суффиксы для дня, типа 1st, 2nd 3rd, 4th и т.д.
+ CONVERT(varchar(2), DATEPART(DAY, @d))
+ CASE WHEN DATEPART(DAY, @d) BETWEEN 10 AND 19 THEN 'th'
WHEN DATEPART(DAY, @d) % 10 = 1 THEN 'st'
WHEN DATEPART(DAY, @d) % 10 = 2 THEN 'nd'
WHEN DATEPART(DAY, @d) % 10 = 3 THEN 'rd'
ELSE 'th' END,
Включение этой дополнительной логики форматирования во встроенный запрос преобразования и новую табличнозначную функцию дает следующие результаты:

При достаточно ощутимом скачке мы все же находимся в 10-миллисекундном диапазоне, все еще оставаясь лучше, чем FORMAT и его 200-миллисекундном времени выполнения.
Есть другие способы упрощения запросов при получении этого вывода (другие, чем обработка в слое приложения). В следующий раз мы рассмотрим способы, которые могут вообще вывести форматирование за пределы запроса, а именно, вычисляемый столбец или триггер DML.
Заключение
Хотя мне нравится идея FORMAT, поскольку она делает более удобными выражения, которые согласуются с другими языками, нельзя полностью игнорировать ухудшение производительности. Когда я выступаю против ее использования, то часто слышу в ответ: «Хорошо, но я только использую ее в одном месте» или «Эта таблица никогда не станет большой». Проблема с подобной логикой заключается в том, что очень сложно провести черту, и вашим коллегам легко можно убедиться, что когда все в порядке в ряде случаев, использование ее в других сценариях, будет не столь хорошо.
Еще одно соображение против FORMAT состоит с том, что если вы, как и я, играетесь с Azure SQL Edge в локальном окружении, то там эта функция не поддерживается.
SQL — Structured Query Language Data File
Файлы с расширением SQL содержат код, написанный на языке Structured Query Language (SQL). Код, содержащийся в файле SQL, используется для изменения содержания связанных баз данных. SQL-файлы могут быть использованы для удаления, вставки, извлечения или обновления данных и информации.
Файлы SQL записываются в формате обычного текста (ASCII) и могут содержать различную информацию, которая определяется кодом. Файл SQL может содержать утверждения, которые создают или изменяют операции с базами данных или другим файлом SQL (например, операции обновления, удаления и т.д.). Для того, чтобы правильно прочитать и выполнить файл SQL, он должен быть открыт в программе базы данных, которая поддерживает язык Structure Query Language. Тем не менее, для написания и редактирования файла SQL может быть использован любой стандартный текстовый редактор.
Вот небольшой, но неполный список программ, которые могут открывать документы SQL:
- Altova DatabaseSpy (Windows)
- Apple TextEdit (Mac)
- Bare Bones BBEdit (Mac)
- gVim (Windows)
- MacroMates TextMate (Mac)
- MalcolmHardie Solutions SQLEditor (Mac)
- Microsoft Notepad (Windows)
- MySQL (Windows, Mac & Linux)
- Richardson RazorSQL (Windows, Mac & Linux)
- Other text editors