18.2.5. Реляционные операции

В определении СУБД упоминаются три операции по выборке данных: проектирование выбирает столбцы, выбор – строки, операция соединения собирает вместе данные из связанных таблиц.

Логическая и физическая независимость означает, что вам не нужно беспокоиться о физическом расположении данных и о том, как их искать – это проблемы исключительно СУБД. SQL является непроцедурным языком программирования, так как он позволяет вам выразить то, что вы хотите получить, не вдаваясь в детали самого процесса.

Все эти операции записываются с использованием оператора SELECT. Например, если вы хотите просмотреть все строки таблицы Автор (табл. 1), содержащей информацию об авторах, но вам нужны только их адреса:

SQL>SELECT Aдpec FROM Автор;

результат проектирования:

Адрес

Академгородок 10, кв. 10

Академгородок 20, кв. 46

Мира 130, кв. 24

Опять-таки не смотрите на синтаксис языка. Взгляните на это с абстрактной точки зрения: операция проектирования определяет подмножество столбцов в таблице. Обратите внимание, что результат выполнения проектирования также отображается в форме таблицы.

Операция выбора позволяет вам получать из таблицы подмножества ее строк. Чтобы указать, какие строки вам нужны, соответствующие условия нужно указать после WHERE. Например, вы хотите получить фамилии писателей, проживающих в Академгородке:

SQL>SELECT Фамилия FROM Автор WHERE Адрес  LIKE 'Академгородок%';

Результат выбора:

Фамилия

Деменюк

Корякина

Операция соединения может работать одновременно с одной или несколькими таблицами, соединяя данные таким образом, что вы сможете легко сопоставить или выделить определенную информацию в БД.

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

Когда вы «соединяете» две таблицы, на период действия запроса они как бы становятся единой таблицей. Операция соединения соединяет данные, сравнивая значения в заданных столбцах и отражая результат.