Кубанский государственный университет
Опубликован: 24.12.2013 | Доступ: свободный | Студентов: 682 / 9 | Длительность: 24:28:00
Лекция 8:

Язык SQL

Аннотация: В этой лекции будут рассмотрены основы SQL —широко известного языка баз данных реляционного типа. В рамках общего курса основ баз данных невозможно подробное изучение SQL. В настоящее время это очень большой язык. Объём его стандартов давно перевалил за 1000 страниц.

Мы уже обнаружили, что реляционная алгебра и исчисления позволяют построить только языки запросов, причем с весьма ограниченными возможностями. Для практической работы необходимо ещё создавать и перестраивать схемы базы, манипулировать данными, организовывать транзакции. Поэтому в составе любого языка баз данных появляются подъязыки (языки) определения данных, манипулирования данными и управления данными, соответственно.

Расширения реляционного языка запросов неизбежно выводят его за рамки исходной реляционной модели. Современные версии SQL имеют ядро, основанное на исчислении на кортежах, но в них используются встроенные представления (переменные отношения), характерные для реляционной алгебры, многомерные модели, регулярные выражения, позволяющие препарировать значения в столбцах, и многое другое.

SQL —декларативный язык. Иначе говоря, он только определяет требования к результату инструкции, но не дает алгоритма её реализации. Поэтому СУБД должна генерировать план исполнения, который определяет способы доступа к данным. Настройка плана исполнения — это отдельная и большая тема. И последнее: SQL можно считать языком, ориентированным на предметную область (domain specific language —DSL).

8.1 Как работать с языком SQL в Cache

Чтобы загрузить в базу данных Cache учебные таблицы скачайте с сайта книги файл demobld.sql и положите его в то место на диске, к которому у вас есть права доступа. Щёлкните по кубику Cache рядом с часами и выберите "Терминал". Поскольку скрипт, находящийся в файле, заимствован у Oracle, для его исполнения необходимо набрать команду

do $system.SQL.DDLImport("Oracle","_SYSTEM","p:\demobld.sql")

"_SYSTEM" — это имя пользователя Cache по умолчанию. Вместо "p:\de-mobld.sql" укажите путь к вашему файлу demobld.sql. Нажмите клавишу Enter. Если вы всё сделали правильно, то вы увидите картину представленную на рисунке 8.1.

Так должна закончится загрузка скрипта из файла demobld.sql

увеличить изображение
Рис. 8.1. Так должна закончится загрузка скрипта из файла demobld.sql

Учебные таблицы описаны в разделе 8.5.2.

Чтобы написать запрос на SQL, щёлкните на кубике Cache и выберите пункт меню "Портал управления системой". В открывшемся окне выберите в центральной колонке "SQL", затем область USER, затем "Исполнить SQL-выражение". (рисунок 8.2).

Где писать запросы

увеличить изображение
Рис. 8.2. Где писать запросы

В Cache можно работать в SQL, используя SQL-терминал. Чтобы его запустить наберите в обычном терминале команду |do $system.SQL.Shell()

SQL-выражения выполняются по нажатию клавиши Enter, как показано на рисунке 8.3 с двумя запросами к пустой таблице qq. Если SQL-выражение должно занять больше одной строки, перед его вводом нажмите Enter. Терминал переведётся в многострочный режим, в котором Enter только переводит курсор на другую строку, а не выполняет SQL-выражение. В многострочном режиме SQL-выражения выполняются командой GO.

Запросы в однострочных и многострочных режимах

Рис. 8.3. Запросы в однострочных и многострочных режимах