Язык структурированных запросов к базам данных SQL
Общая информация
Язык SQL является мощнейшим средством, обеспечивающим простой и прозрачный способ доступа к разнородным данным вне зависимости от формата их представления, способа хранения и физического расположения. Строгость синтаксиса языка, сочетающаяся с простотой построения языковых конструкций и малым количеством зарезервированных служебных слов делают этот язык простым и прозрачным в изучении и использовании.
Внешняя простота и компактность языка не являются признаком его ограниченности в области предоставляемого спектра функций доступа к данным. Скорее можно сказать, что эта простота является следствием его универсальности, способности поддерживать доступ к любым данным.
На данный момент разработано значительное количество Систем Управления Базами Данных (СУБД). Каждая из них имеет свои полюсы и минусы, каждая претендует, или же претендовала в свое время, на то, что бы быть лучшей системой, поддерживающей такие функции, как хранение, сортировка, обработка данных и доступ к ним извне. Большинство СУБД использовали свои собственные, уникальные для данной системы форматы данных. Таковой подход является неизбежным следствием движения по пути стремления к совершенству, коим следует постоянно развивающийся информационный мир.
Так же не стоит забывать и о том, что существуют различные, порой не совместимые между собой, виды компьютерных систем. Для каждого вида, в свою очередь, создано множество операционных систем, что так же вносит свою лепту в еще большее увеличение и без того значительного множества способов представления данных.
Все эти факторы являются объективной неизбежностью, и нет смысла доказывать, что невозможно создать одну совершенную систему хранения и обработки данных, которая бы включала в себя все полюсы существующих систем и не имела бы ни одного минуса. Таким образом, остается лишь искать средство, которое могло бы стать связующим звеном во всем этом многообразии.
Таковым звеном смело может быть назван язык запросов SQL. В отличие от многих других способов доступа к данным SQL оперирует не с форматами данных, а самими данными непосредственно. При написании запроса не имеет значения ни формат хранения данных, ни ид операционной системы, под управлением которой работает та или иная СУБД. Наконец, не имеет значения где именно находится та база данных, в которой хранится информация, которую вы желаете получить. Вне зависимости от всех этих факторов данные будут извлечены, структурированы именно таким образом, как вы сами того хотите и представлены в виде, приемлемом для вашего восприятия и в формате, допустимом для той информационной системы, в которой вы работаете.
Именно в этой универсальности и кроется основная мощь языка запросов SQL, и именно она обуславливает простоту синтаксиса и компактность функционального набора языка.
Функции языка
Полный функциональный набор языка можно разделить на следующие три группы:
Функции определения данных
С помощью этой функциональной группы предоставляется возможность создания базы данных и ее индексации. Когда у пользователя возникает необходимость в формировании новой базы данных, он должен, во-первых, разработать структуру будущих таблиц. Не редко бывает так, что используемая СУБД искусственно накладывает ограничения на возможные варианты формируемых структур. Таким образом, пользователь должен ориентироваться именно на ту СУБД, с которой он будет работать и в случае, если возникнет необходимость перехода на другую СУБД, возможно, что придется перерабатывать всю структуру данных.
Работая с SQL, пользователь может не задумываться о том, в каком именно формате будут сохранены его данные. Он просто формирует структуру базы данных. Записывает предложение SQL в соответствие со сформированной им структурой. Затем он просто отсылает это предложение на выполнение SQL - серверу и сервер создает запрашиваемую базу данных именно в том виде, в котором ее описал пользователь.
Функции доступа к данным
Оперируя функциями, входящими в эту группу пользователь получает возможность доступа к данным. Как и ранее формат данных и способ их хранения не имеет для пользователя никакого значения. Пользователь должен лишь знать какие именно данные он хотел бы получить и что именно он хотел бы с ними сделать.
Доступ к данным посредством языка SQL осуществляется за счет выполнения запросов, поэтому сам язык так же называется языком запросов. Запросы могут быть простейшими, осуществляющими элементарную выборку данных из одной таблицы. Возможно создание объединенных, перекрестных запросов, осуществляющих выборку данных из разных таблиц. При этом сложность запроса ограничивается в большинстве случаев лишь квалификацией пользователя.
Запросы к данным можно разделить на следующие группы:
Запросы на выборку данных позволяют непосредственно получить данные из таблиц. Получаемые данные структурируются в соответствии с желанием пользователя и предоставляются ему именно в том виде, в котором он их запрашивал. Полученные же данные могут быть либо просто выведены на экран для просмотра, либо сохранены в файле для дальнейшего использования.
Запросы на обновление данных позволяют вносить изменения в данные уже находящиеся в базах данных, либо же вносить новые. Здесь, как и ранее пользователь должен знать лишь какие данные он хотел бы изменить или добавить и ему нет нужды знать в каком именно виде они будут сохранены.
Запросы на удаление данных позволяют удалять из баз данных те данные, в дальнейшем хранении которых нет более необходимости.
Помимо вышеперечисленных видов запросов пользователь так же может формировать комбинированные запросы. Простейшим примером такого запроса может быть выборка данных из одной таблицы и перенос их в другую. При этом не обязательно что бы таблицы имели одинаковую структуру.
Статистические функции
Функции данной группы позволяют выполнять некоторые статистические операции над сохраненными данными. К ним относятся функции вычисления средних значений, максимального и минимального значения некоторой выборки, суммирования выбранных значений. То есть, проще говоря, предоставляется возможность выполнения основных статистических операций.
Заключение
Само собой разумеется, что язык запросов SQL не является некоторым совершенным механизмом, обеспечивающим доступ к данным. Тем не менее, он, пожалуй, является единственным средством, позволяющим обрабатывать данные вне зависимости от формата их представления, способа хранения реального местоположения.