На базе принципов реляционного исчисления и реляционной алгебры построены современные языки запросов реляционных СУБД. Они представлены системой команд манипулирования данными.
Наибольшую популярность среди языков запросов приобрёл язык SQL, разработанный фирмой Microsoft. Практически, он принят за стандарт, поэтому любая серьёзная реляционная СУБД обеспечивает поддержку этого языка, и всем, кто хочет работать с БД, необходимо знать язык SQL.
Использование SQL - языка в различных СУБД позволяет обращаться к данным различного формата с помощью технологии ОДВС (подбор драйверов, осуществляющих перевод запросов SQL к необходимому формату). Принят стандарт языка - ANSI SQL.
Но к сожалению, рынок программного обеспечения развивается не по принципам единого планирования. Каждый продукт, поддерживающий SQL, применяет его диалект, отличающийся от ANSI - стандарта. Однако, изучив реализацию языка в одном предложении, можно легко перейти в другой диалект.
Рассмотрим в качестве примера ЯМД реализацию SQL языка в Visual FoxPro (основные команды).
Существует всего 4 основных типа команд-запросов: запросы выборки (читают значения из отношений), запросы добавления (заносят строки в отношения), запросы модификации (обновляют значения строк), запросы удаления (удаляют строки из отношения).
В языке SQL различают базовые отношения и порождаемые (это отношения, порождаемые из одного или нескольких отношений путём выполнения спецификации запроса. (Столбцы и их значения в порождённой таблице определяются столбцами выборки из исходных таблиц)).
Запросы выборки.
Спецификация запрса выборки выглядит следующим образом:
SELECT [ALL / DISTINCT] <list column> FROM <table>, где <list column> - список столбцов отношения <table> и (или) выражений, указанных в порядке их размещения в порождённом отношении, <table> - имя исходного отношения.
Команда выборки всех записей из таблицы выглядит следующим образом:
SELECT * FROM mytable , где * означает все записи.
Пример:
SELECT model, gost FROM detal - из отношения detal выводятся только значения полей model и gost (для всех записей).
Если необходимо иметь наглядные заголовки, то необходимо использовать ключевое слово AS:
SELECT model AS наименование детали;
gost AS ГОСТ FROM detal.
Если в примере осуществить выборку по полям model (название) и material (материал), то в выборке могут совпадать записи. Чтобы избежать этого, используют ключевое слово DISTINCT:
SELECT DISTINCT...... (см. предыдущий пример).
Если, наоборот, нужны все записи, то вместо DISTINCT используют ALL (по умолчанию).
Полявыводятся в порядке, указанном в запросе. Помимо полей из таблиц в список выводимых данных можно включать функции, переменные, константы и выражения, например,
SELECT IIF (MOD(RECNO( )?3)=0? «Y»? «N»)? RECNO( ), cost;
FROM mytable
Выводится Y для каждой 3-ей записи (иначе N), номер записи, значение поля cost из отношения mytable.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.