Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив2 / курсач docx11 / Moy_kursach_-_kopia.docx
Скачиваний:
107
Добавлен:
07.08.2013
Размер:
3.77 Mб
Скачать

Порядок отбора.

Комбинируя операторы ANDиORможно создать сложные фильтры.

SELECT [Заказано датчиков], [Количество датчиков на складе]

FROM ЗаказДатчиков

WHERE ([Заказано датчиков]=2 Or [Заказано датчиков]>4) And [Количество датчиков на складе]>3;

При такой комбинации могут быть ошибки в выводе результатов, поскольку SQLвыбирает сначала операторENO, а затемOR, поэтому необходимо использовать прямые скобки, так как они имеют больший приоритет.

Те же функции, что и ORвыполняет ключевое словоIN. Однако при использованииINоблегчается чтение данных, предложение управляется порядком отбора за счет уменьшения количества операторов, повышается быстрота обработки, а также может содержаться еще одна инструкцияSELECT.

SELECT [Ответственный за обслуживание датчика], [Важность]

FROM [Обслуживание датчиков]

WHERE [Ответственный за обслуживание датчика] In ("Тишин С.М.","Холопов В.А.");

Логический оператор NOTпредложенияWHEREотрицает се предложения, следующие за ним.

SELECT [Ответственный за обслуживание датчика], [Важность]

FROM [Обслуживание датчиков]

WHERE NOT [Ответственный за обслуживание датчика]="Холопов В.А.";

Предложения оператора SELECTи последовательность их использования:

SELECT– столбцы или предложения, которые должны быть возвращены.

FROM– таблица для возвращения данных

WHERE– фильтрация на уровне строк

GROUPBY– определенные группы (для таблиц)

HAVING– фильтрация на уровне групп

Создание групп. Предложение группы by.

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

SELECT[Назначение датчика],COUNT(*)ASОбщее

FROM[Технические данные датчиков]

GROUPBY[Назначение датчика];

SELECTвыводит 2 столбца. ФункцияCOUNT(*) подсчитывает все строки.

Использование предложения HAVING.

Все типы выражений в предложении WHERE, могут использоваться в предложенииHAVING. Разница состоит в том, чтоWHEREфильтрует строки, аHAVINGгруппы.

SELECT [Назначение датчика], COUNT(*) AS Общее

FROM [Технические данные датчиков]

GROUP BY [Назначение датчика]

HAVING COUNT(*)>=4;

HAVINGфильтрует группы с помощьюCOUNT(*)>=2.

Совместное использование WHERE и HAVING.

Предложение WHEREфильтрует до того, как данные будут сгруппированы, аHAVINGфильтрует после того, как данные были разделены на группы. Таким образом строки, выброшенные по предложениюWHEREне будут включены в группу.

SELECT [Назначение датчика], COUNT(*) AS Общее

FROM [Технические данные датчиков]

WHERE [Длина зоны обнаружения, м]="120"

GROUPBY[Назначение датчика]

HAVINGCOUNT(*)>=2;

Объединение таблиц.

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

SELECT *

FROM ЗаказДатчиков INNER JOIN [Технические данные датчиков] ON [ЗаказДатчиков].[Серийный номер датчика на складе]=[Технические данные датчиков].[Код датчика];

Конструкция INNERJOINпозволяет возвратить все записи, для которых выполняется условие равенства столбцов, объединение таблиц.

Добавление записи INSERT INTO.

1 способ: Добавление данных в указанные поля.

INSERT INTO ЗаказДатчиков ( [Серийный номер датчика на складе], [Цена датчика], [Количество датчиков на складе], [Заказано датчиков], [Организация-заказчик] )

VALUES ([11], [1000], [5], [3], [ФБУ ИК-3]);

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

2 способ: Добавление записей с помощью SELECT.

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

INSERT INTO ЗаказДатчиков ( [Серийный номер датчика на складе], [Цена датчика], [Количество датчиков на складе], [Заказано датчиков], [Организация-заказчик] )

SELECT [Технические данные датчиков].Код, [Название датчика], [Назначение датчика], [Рабочая температура, С], [Назначение датчика]

FROM [Технические данные датчиков];

Соседние файлы в папке курсач docx11