
- •1 . Архитектуры обработки данных. 1
- •Архитектура файл/сервер.
- •Архитектура клиент/сервер.
- •Многозвенная архитектура.
- •Способы организации данных.
- •Сетевая модель данных
- •Реляционная модель данных.
- •ЯзыкSqLкак язык работы с реляционными базами.
- •Данные и взаимосвязи.
- •Объекты.
- •Первичные ключи. Что выбрать в качестве первичных ключей для каждой из таблиц?
- •Нормализация данных.
- •Первая нормальная форма.
- •Вторая нормальная форма.
- •Третья нормальная форма.
- •Типы данных.
- •Числовые целые типы данных.
- •Числовые типы данных с плавающей точкой.
- •Символьные типы данных.
- •. Типы данных date, time и datetime.
- •Специальные типы данных.
- •Структура запроса, основные ключевые слова и операторы
- •Список основных операторовSql
- •Список основных ключевых словSql
- •ОператорSelect
- •ПредложениеSelect
- •ПредложениеFrom
- •Повторяющиеся строки (ключевое слово distinct).
- •ПредложениеWhere
- •Условия поиска.
- •Составные условия поиска (and, or и not)
- •Проверка на принадлежность диапазону значений (between)
- •Проверка на членство в множестве (in)
- •Проверка на равенство значению null (is null)
- •Проверка на соответствие шаблону (like)
- •Подстановочные знаки
- •Сортировка результатов запроса (предложениеOrder by)
- •Агрегатные функции
- •Вычисление суммы столбца (sum)
- •Вычисление экстремумов (min и max)
- •Вычисление среднего значения (avg)
- •Вычисление количества значений в столбце (count)
- •Запросы с группировкой (предложениеGroup by)
- •Условия поиска групп having
- •Работа с несколькими таблицами
- •Вложенные запросы
- •Исходная база данных
- •Вложение запросов.
- •Оператор exists
- •Объединение множества запросов в один
- •Когда можно выполнить объединение запросов ?
- •Использование union с order by.
- •Команды модификации данных
- •Ввод значений (insert)
- •Вставка пустых указателей (null)
- •Именование названий столбцов для вставки
- •Вставка результатов запроса
- •Удаление строк из таблиц (delete)
- •Изменение значений поля (update)
- •Использование подзапросов для команд модификации данных
- •Использование подзапросов в insert
- •Использование подзапросов с delete
- •Модификация структуры данных
- •Команда сreate table
- •Команда alter table.
- •Команда drop table
Составные условия поиска (and, or и not)
Простые условия поиска, описанные выше, после применения к некоторой строке возвращают значения TRUE, FALSE или NULL. С помощью правил логики эти простые условия можно объединять в более сложные, как показано ниже. Обратим внимание на то, что условия поиска, объединенные с помощью ключевых слов AND, OR и NOT, сами могут быть составными.
WHEREусловие
поиска
NOT
AND
OR
Таблица истинности операции AND.
AND |
TRUE |
FALSE |
NULL |
TRUE |
TRUE |
FALSE |
NULL |
FALSE |
FALSE |
FALSE |
FALSE |
NULL |
NULL |
FALSE |
NULL |
Таблица истинности операции OR.
OR |
TRUE |
FALSE |
NULL |
TRUE |
TRUE |
TRUE |
TRUE |
FALSE |
TRUE |
FALSE |
NULL |
NULL |
TRUE |
NULL |
NULL |
Таблица истинности операции NOT.
NOT |
TRUE |
FALSE |
NULL |
|
FALSE |
TRUE |
NULL |
Предположим, что нам нужно достать все документы за определенные промежутки времени, исключая 8 марта.
SELECT *
FROM ДОКУМЕНТ
WHERE (ДАТА>’1.03.2000’ AND ДАТА<’13.03.2000’)
OR (ДАТА=’18.01.2000’) AND NOT (ДАТА=’8.03.2000’)
Вывести все документы за восьмое число января, февраля, и марта.
SELECT *
FROM ДОКУМЕНТ
WHERE ДАТА=’8.01.2000’ OR ДАТА=’8.02.2000’ OR ДАТА=’8.03.2000’
Проверка на принадлежность диапазону значений (between)
Другой формой условия поиска является проверка на принадлежность диапазону значений (ключевое слово BETWEEN), схематически показанная ниже. При этом проверяется, находится ли значение данных между двумя определенными значениями. В условие поиска входят три выражения. Первое выражение определяет проверяемое значение; второе и третье выражения определяют верхний и нижний пределы проверяемого диапазона. Типы данных трех выражений должны быть сравнимыми.
Синтаксическая диаграмма проверки на принадлежность диапазону (BETWEEN).
Проверяемое
выр-е
BETWEEN
нижнее
выр-е AND
верхнее
выр-е
NOT
Найти все документы за последний квартал 2000 года.
SELECT *
FROM ДОКУМЕНТ
WHERE ДАТА BETWEEN ’01.10.2000’ AND ’31.12.2000’
Вывести все перемещения для первых пяти номеров.
SELECT *
FROM ПЕРЕМЕЩЕНИЕ
WHERE ПОРЯДКОВ№ BETWEEN ‘1’ AND ‘5’
Проверка на членство в множестве (in)
Еще одним распространенным условием поиска является проверка на членство в множестве (IN), схематически показанная ниже. В этом случае проверяется, соответствует ли значение данных какому-либо значению из заданного списка.
Синтаксическая диаграмма проверки на членство в множестве (IN)
Проверяемое
выражениеIN
(
константа
)
NOT ,
Вывести все документы за восьмое число января, февраля, и марта. (5.2.4 - 1)
SELECT *
FROM ДОКУМЕНТ
WHERE ДАТА IN (‘8.01.2000’, ‘8.02.2000’, ‘8.03.2000’,)
Вывести все перемещения, у которых цена равна 2000, 3000, 4000.
SELECT *
FROM ПЕРЕМЕЩЕНИЕ
WHERE ЦЕНА IN (‘2000’,’3000’,’4000’)
С помощью формы NOT IN можно убедиться в том , что значение данных не является членом заданного множества. Поверяемое выражение в проверке IN может быть любым допустимым выражением, однако обычно оно представляет собой короткое имя столбца.