Устранение избыточных, данных
Если в выходных данных запроса требуется исключить повторяющиеся значения, можно в команде 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).