Реляционные операции. Команды языка манипулирования данными



Наиболее важной командой языка манипулирования данными является команда SELECT

Начнем с базовых операций реляционных баз данных. Таковыми являются:

выборка(Restriction)

проекция(Projection)

соединение(Join)

объединение(Union)

Операция выборки позволяет получить все строки (записи) либо часть строк одной таблицы.

SELECT * FROM country

Эти примеры иллюстрируют общую форму команды SELECT в языке SQL (для одной таблицы):

 

SELECT (выбрать) специфицированные поля
FROM (из) специфицированной таблицы
WHERE (где) некоторое специфицированное условие является истинны

 

Операция соединения позволяет соединять строки из более чем одной таблицы (по некоторому условию) для образования новых строк данных.

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

Для справки, приведем общую форму команды SELECT, учитывающую возможность соединения нескольких таблиц и объединения результатов:

 

SELECT [DISTINCT] список_выбираемых_элементов (полей)
FROM список_таблиц (или представлений)
[WHERE предикат]
[GROUP BY поле (или поля) [HAVING предикат]]
[UNION другое_выражение_Select]
[ORDER BY поле (или поля) или номер (номера)];

Рис. 2: Общий формат команды SELECT

 

Отметим, что под предикатом понимается некоторое специфицированное условие (отбора), значение которого имеет булевский тип. Квадратные скобки означают необязательность использования дополнительных конструкций команды. Точка с запятой является стандартным терминатором команды. Отметим, что в WISQL и в компоненте TQuery ставить конечный терминатор не обязательно. При этом там, где допустим один пробел между элементами, разрешено ставить любое количество пробелов и пустых строк - выполняя желаемое форматирование для большей наглядности.

Команда SELECT

Простейшие конструкции команды SELECT

Итак, начнем с рассмотрения простейших конструкций языка SQL. После такого рассмотрения мы научимся:

назначать поля, которые должны быть выбраны

назначать к выборке "все поля"

управлять "вертикальным" и "горизонтальным" порядком выбираемых полей

подставлять собственные заголовки полей в результирующей таблице

производить вычисления в списке выбираемых элементов

использовать литералы в списке выбираемых элементов

ограничивать число возвращаемых строк

формировать сложные условия поиска, используя реляционные и логические операторы

устранять одинаковые строки из результата.

Список выбираемых элементов может содержать следующее:

имена полей

*

вычисления

литералы

функции

агрегирующие конструкции

Список полей

SELECT first_name, last_name, phone_no

FROM phone_list

получить список имен, фамилий и служебных телефонов всех работников предприятия

Все поля

SELECT *

FROM phone_list

получить список служебных телефонов всех работников предприятия со всей необходимой информацией

Все поля в произвольном порядке

SELECT first_name, last_name, phone_no,

location, phone_ext, emp_no

FROM phone_list

получить список служебных телефонов всех работников предприятия со всей необходимой информацией, расположив их в требуемом порядке

Вычисления

SELECT emp_no, salary, salary * 1.15

FROM employee

получить список номеров служащих и их зарплату, в том числе увеличенную на 15%

Порядок вычисления выражений подчиняется общепринятым правилам: сначала выполняется умножение и деление, а затем - сложение и вычитание. Операции одного уровня выполняются слева направо. Разрешено применять скобки для изменения порядка вычислений.

Литералы

Литералы - это строковые константы, которые применяются наряду с наименованиями столбцов и, таким образом, выступают в роли "псевдостолбцов". Строка символов, представляющая собой литерал, должна быть заключена в одинарные или двойные скобки.

SELECT first_name, "получает", salary,

"долларов в год"

FROM employee

получить список сотрудников и их зарплату

Конкатенация

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

SELECT "сотрудник " || first_name || " " ||

last_name

FROM employee

получить список всех сотрудников


Дата добавления: 2020-01-07; просмотров: 199; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!