Устранение избыточных, данных

Если в выходных данных запроса требуется исключить повторяющиеся значения, можно в команде SELECT использовать аргумент DISTINCT (отличие).

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

SELECT DISTINCT E_BORN FROM Employees

Соединение таблиц.

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

Операция такого рода называется соединением (join) таблиц и является одной из самых мощных операций для реляционных баз данных.

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

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

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

 

Employees.E_ID
Employees.E_NAME

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

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

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

В операции соединения можно указывать любое число таблиц, используя в предложении WHERE любые возможные реляционные и булевы операторы.

 

Функции агрегирования


Функции агрегирования (или функции «вычисления результатов») позволяют строить еще более мощные запросы, включающие элементы не только выборки, но уже и некоторой обработки информации, такой как, например, вычисление среднего или максимального значения. Агрегатные функции вставляются в предложение SELECT так же, как и имена столбцов. При этом, аргументом для каждой из этих функций является совокупность значений одного столбца (поля) некоторой таблицы.

В SQL к функциям агрегирования относятся:

 

· COUNT - определяет количество строк или значений поля, которые выбраны в результате выполнения запроса и не являются NULL-значениями;

· SUM - вычисляет арифметическую сумму всех выбранных значений, содержащихся в столбце-аргументе;

· AVG - вычисляет среднее значение всех выбранных значений, содержащихся в столбце-аргументе;

· МАХ - вычисляет наибольшее из всех выбранных значений, содержащихся в столбце-аргументе;

· MIN - вычисляет наименьшее из всех выбранных значений, содержащихся в столбце-аргументе.

 

Аргументам всех агрегатных функций (кроме COUNT (*) ) может предшествовать ключевое слово DISTINCT для исключения из аргумента повторяющихся значений.

Пример вывести общее количество заказов:

 

SELECT SUM(O_ID) FROM Orders

Модификация таблиц.

Если необходимо что-то изменить в схеме базы данных, можно воспользоваться оператором ALTER TABLE. Он используется с тем, чтобы изменять определение существующей таблицы: т. е. добавлять, удалять или изменять столбцы в таблицах.

Типичный синтаксис для добавления столбца к таблице:

 

ALTER TABLE <имя таблицы>

ADD <имя столбца> <тип данных> <размер> NULL

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

Также имеется возможность удалять или изменять столбцы, например оператором:

 

ALTER TABLE <имя таблицы>

DROP <имя столбца> <тип данных>

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

Выбор варианта сетевого решения СУБД.

На этом этапе принимается решение о создании локальной сети (если в задании на курсовую работу это предусмотрено), выбирается вариант сетевой технологии, формируется список аппаратных и программных средств (см. Приложение 2).