- •1.1. Технические параметры баз данных
- •1.2. Организация субд
- •1.6. Сетевая и иерархическая модели данных
- •1.7. Case - методы проектирования баз данных
- •1.8. Понятия “сущность” и “взаимосвязь”
- •4. Складывание.
- •5.3. Индексированные файлы
- •5.4. Операции с поиском по неключевым полям
- •6.2. Типы данных в sql
- •Int Число без десятичной точки. Эквивалентно decimal, но без
- •6.3. Обозначения в командах sql
- •6.... Оператор in
- •6.... Оператор between
- •6.... Оператор like
- •6.... Оператор is null
- •7.5... Скалярное выражение на основе выбранных полей
- •7.6... Упорядочение вывода полей
- •7.7.. Объединения нескольких таблиц в запросе
- •7.8.. Создание обьединения
- •7.9..Объединение таблиц через справочную целостность
- •7.10.. Объединения таблиц по равенству значений
- •7.11.. Объединение более двух таблиц
- •7.12. Объединение таблицы с собой
- •8.2. Значения, которые могут выдавать подзапросы
- •8.3. Предикаты с подзапросами являются необратимыми
- •8.4. Использование агрегатных функций в подзапросах
- •8.5. Использование подзапросов которые выдают
- •8.8. Подзапросы в предложении having
- •Insert into Londonstaff
- •Insert into Daytotals (date, total)
- •Insert для этой таблицы. Null - это наиболее широко используемое
- •1009, И Hoffman и Clemens будут также автоматически изменены.
- •Insert Пользователь с этой привилегией может выполнять
- •Insauth Имеет ли пользователь привилегию insert
- •Values ( :id_num, :salesperson, :loc, :comm)
- •Values (:id_num, :salesperson, :loc, :comm);
- •Into :id_num, :salesperson, :loc, :comm
- •Into :salesnum
- •1. Команда выполнилась без ошибки, но не произвела никакого
- •Into :id_num, :salesperson, :loc, :comm;
- •Indicator.
- •Indicator, связывая ее с каждой переменной главного языка, специальным способом, эмулирующим поведение null значений sql.
- •Values (:Id_num, :salesperson, :loc:i_a, :comm:i_b);
- •Indicator. Переменные indicator следуют за другим именами переменных в команде sql, без каких бы то ни было посторонних символов
6.... Оператор in
Оператор IN определяет набор значений, в которое данное значение может или не может быть включено. В соответствии с приведенными ранее прмерами если вы хотите найти всех продавцов, которые размещены в Barcelona или в London, вы должны
использовать следующий запрос:
SELECT *
FROM Salespeople
WHERE city = ‘Barcelona’
OR city = ‘London’;
Однако имеется и более простой способ получить ту же информацию:
SELECT *
FROM Salespeople
WHERE city IN ( ‘Barcelona’, ‘London’ );
Как можно видеть, оператор IN определяет набор значений в виде членов набора, заключенных в круглые скобки и отделенных запятыми.
Программа СУБД проверяет различные значения указанного поля пытаясь найти совпадение со значениями из набора. Если это случается, то предикат верен.
Пример.
======= SQL Execution Log ==================
SELECT *
FROM Salespeople
WHERE city IN (‘Barcelona’, ‘London’;
=========================================
| snum sname city comm |
|---------------------------------------------------------------------|
| 1001 Peel London 0.12 |
| 1004 Motika London 0.11 |
| 1007 Rifkin Barcelona 0.15 |
=========================================
6.... Оператор between
Оператор BETWEEN похож на оператор IN. В отличии от определения по значениям из набора, как это делает оператор IN, оператор BETWEEN определяет диапазон значений, в котором истинен
предикат. Необходимо ввести ключевое слово BETWEEN с начальным значением, ключевое AND и конечное значение. В отличие от оператора IN, оператор BETWEEN чувствителен к порядку, и первое значение
в предложении должно быть первым по алфавитному или числовому порядку.
Следующий запрос будет извлекать из таблицы Salespeople всех продавцов с комиссионными между 0.10 и 0.12 (вывод показывается вслед за запросом):
SELECT *
FROM Salespeople
WHERE comm BETWEEN .10 AND .12;
=========================================
| snum sname city comm|
|--------------------------------------------------------------------|
| 1001 Peel London 0.12 |
| 1004 Motika London 0.11 |
| 1003 Axelrod New York 0.10 |
=========================================
Для включенного оператора BETWEEN, значение совпадающее с любым из двух значений границы ( в примере, 0.10 и 0.12 ) заставляет предикат быть истинным.
Язык SQL не делает непосредственной поддержки невключения границ. Вы должны или определить ваши граничные значения так, чтобы включающая интерпретация была приемлема, или сделать что-нибудь типа следующего:
SELECT *
FROM Salespeople
WHERE ( comm BETWEEN .10, AND .12 )
AND NOT comm IN ( .10, .12 );
По общему признанию, это немного неуклюже.
Также, как и операторы отношения, BETWEEN может работать
с символьными полями. Это означает, что вы можете использовать BETWEEN чтобы выбирать ряд значений из упорядоченных по алфавиту значений.
Следующий запрос выбирает всех продавцов, чьи имена попали в определенный алфавитный диапазон:
SELECT *
FROM Salespeople
WHERE sname BETWEEN ‘A’ AND ‘G’;
Оператор LIKE применим только к полям типа CHAR или VARCHAR, с которыми он используется, чтобы находить подстроки. В качестве условия оператор LIKE использует групповые символы (wildсards), то есть специальные символы, которые могут соответствовать чему-нибудь.
Имеются два типа групповых символов, используемых с оператором LIKE:
- символ подчеркивания ( _ ) замещает любой одиночный символ.
Например, ‘b_t’ будет соответствовать словам ‘bat’ или
‘bit’, но не будет соответствовать ‘brat’.
- знак процента (%) замещает последовательность любого числа
символов. Например ‘%p%t’ будет соответствовать словам ‘put’, ‘posit’, или ‘opt’, но не ‘spite’.