- •1 Модели данных
- •2 Иерархическая модель
- •3 Сетевая модель
- •4 Реляционная модель
- •5 Структура реляционных данных
- •Отношение Студент
- •6 Отношения : определение, свойства
- •7 Реляционная алгебра. ( основные операции)
- •Унарные операции .
- •Бинарные операции
- •8 Реляционная алгебра. ( дополнительные операции).
- •9 Реляционное исчисление доменов.
- •10 Реляционное исчисление кортежей.
- •11 Построение sql- запросов.
- •12 Sql. Операторы between, in, like, is null
- •13 Комбинированные запросы.
- •14 Вложенные запросы.
- •15 Связанные запросы.
- •16 Использование оператора exists
- •17 Использование предложения union, except, intersect
- •18 Ввод, удаление, изменение значений полей в sql.
- •19 Использование подзапросов с командами обновления
- •20 Использование функций агрегирования в построении запросов
- •21 Форматирование результатов запросов
- •22 Ограничение foreign key.
- •23 Создание, изменение и удаление таблиц средствами -sql.
- •24 Поддержка основных правил целостности данных.
- •25 Sql server. Характеристика объектов бд.
- •Представления
- •Пользовательские типы данных
- •Ограничения целостности
- •28 Основные типы данных
- •Двоичные данные
- •Специальные типы данных.
- •29 Индексы: типы, назначение, создание
- •30 Представления. Изменение значений с помощью представлений
- •31 Обновляемые представления
- •32 Концепция er-модели
- •33 Типы связей и структурные ограничения в er-модели.
- •34 Проблемы er-моделирования
- •35 Основные положения проектирования схем реляционных баз данных
- •36 Избыточность данных и аномалии обновления.
- •37 Функциональные зависимости
- •38 Нормальные формы
- •39 Многозначные зависимости и 4нф ,5нф
- •40 Обзор процесса нормализации
- •41 Основные этапы проектирования баз данных
- •42 Методология концептуального проектирования
- •43 Методология логического проектирования
- •44 Основные задачи логического этапа проектирования базы данных.
- •45 Проверка логической модели с помощью правил нормализации и в отношении транзакций пользователей.
- •46 Определение требований поддержки целостности данных
- •47 Общий обзор методологии физического проектирования реляционных баз данных
- •48 Управление транзакциями.
- •49 Этапы обработки запросов
- •50 Методы защиты базы данных.
12 Sql. Операторы between, in, like, is null
• |
Предикат Between A and B —принимает значения между A и B. Предикат истинен, когда сравниваемое значение попадает в заданный диапазон, включая границы диапазона. Одновременно в стандарте задан и противоположный предикат Not Between A and B,который истинен тогда, когда сравниваемое значение не попадает в заданный интервал, включая его границы. |
• |
Предикат вхождения в множество IN (множество) истинен тогда, когда сравниваемое значение входит в множество заданных значений. При этом множество значений может быть задано простым перечислением или встроенным подзапросом. Одновременно существует противоположный предикат NOT IN (множество), который истинен тогда, когда сравниваемое значение не входит в заданное множество. |
• |
Предикаты сравнения с образцом LIKE и NOT LIKE. Предикат LIKE требует задания шаблона, с которым сравнивается заданное значение, предикат истинен, если сравниваемое значение соответствует шаблону, и ложен в противном случае. Предикат NOT LIKE имеет противоположный смысл. |
По стандарту в шаблон могут быть включены специальные символы:
• |
символ подчеркивания ( _ ) — для обозначения любого одиночного символа; |
• |
символ процента ( % ) — для обозначения любой произвольной последовательности символов; |
• |
остальные символы, заданные в шаблоне, обозначают самих себя. |
• |
Предикат сравнения с неопределенным значением IS NULL. Понятие неопределенного значения было внесено в концепции баз данных позднее. Неопределенное значение интерпретируется в реляционной модели как значение, неизвестное на данный момент времени. Это значение при появлении дополнительной информации в любой момент времени может быть заменено на некоторое конкретное значение. При сравнении неопределенных значений не действуют стандартные правила сравнения: одно неопределенное значение никогда не считается равным другому неопределенному значению. Для выявления равенства значения некоторого атрибута неопределенному применяют специальные стандартные предикаты: |
<имя атрибута>IS NULL и <имя атрибута> IS NOT NULL.
Если в данном кортеже (в данной строке) указанный атрибут имеет неопределенное значение, то предикат IS NULL принимает значение "Истина" ( TRUE ), а предикат IS NOT NULL — "Ложь" ( FALSE ), в противном случае предикат IS NULL принимает значение "Ложь", а предикат IS NOT NULL принимает значение "Истина"
В начало
13 Комбинированные запросы.
Операции UNION, EXCEPT, INTERSECT применяются для таблиц, совместимых для объединения. Совместимыми называются таблицы ,содержащие одинаковое число столбцов , одинаковый порядок следования столбцов и совместимый тип.
Объединением двух таблиц R и S является таблица, содержащая все строки, которые имеются в первой таблице R, во второй таблице S или в обеих таблицах сразу.
SELECT R.a1, R.a2
FROM R
UNION
SELECT S.b2, S.b1
FROM S
Например, необходимо получить сводную о номерах машин, их пробеге и километраже поездок:
SELECT Номер, Километраж AS Пробег/Километраж
FROM Транспорт
UNION
SELECT Номер_авто, Пробег AS Пробег/Километраж
FROM Поездки
Пересечением двух таблиц R и S является таблица, содержащая все строки, присутствующие в обеих исходных таблицах одновременно.
(SELECT R.a1, R.a2
FROM R)
INTERSECT
(SELECT S.b2, S.b1
FROM S)
Или
SELECT R.a1, R.a2
FROM R,S
WHERE R.a1=S.b1 AND R.a2=S.b2
или
SELECT R.a1, R.a2
FROM R
WHERE R.a1 IN
(SELECT S.b1 FROM S
WHERE S.b1=R.a1) AND R.a2 IN
( SELECT S.b2
FROM S
WHERE S.b2=R.a2)
Например, отыскать номера машин, которые были в поездках
(SELECT Номер
FROM Транспорт)
INTERSECT
(SELECT Номер_авто
FROM Поездки)
Разностью двух таблиц R и S является таблица, содержащая все строки, которые присутствуют в таблице R, но отсутствуют в таблице S.
SELECT R.a1, R.a2
FROM R
WHERE NOT EXISTS
(SELECT S.b1,S.b2
FROM S
WHERE S.b1=R.a2 AND S.b2=R.a1)
Или
(SELECT R.a1, R.a2
FROM R)
EXCEPT
(SELECT S.b1,S.b2
FROM S)
Например, отыскать номера машин, которые были в поездках
(SELECT Номер
FROM Транспорт)
EXCEPT
(SELECT Номер_авто
FROM Поездки)
В начало
