- •Информационные системы, основные функции и области применения
- •Банк данных и его компоненты
- •Иерархическая модель данных
- •Сетевая модель данных
- •Реляционная модель
- •Классификация программ субд
- •Общие понятия реляционного подхода к организации бд Основные концепции и принципы
- •Индексирование
- •Отношения между таблицами
- •Управление реляционной базой данной. Реляционная алгебра. Реляционное исчисление.
- •Реляционное исчисление
- •Проектирование реляционных баз данных с использованием нормализации.
- •Первая нормальная форма таблицы
- •Вторая нормальная форма
- •Управление транзакциями
- •Транзакции и целостность бд
- •Изолированность пользователей
- •Сериализация транзакций
- •Методы сериализации транзакций
- •Синхронизационные захваты
- •Тупики распознавания и разрушения
- •Метод временных меток
- •Элементы языка sql Функции и основные возможности языка sql
- •Отличие sql от процедурных языков программирования
- •Интерактивный и встроенный sql
- •Составные части sql
- •Типы данных sql
- •Числовые типы данных:
- •Используемые термины и обозначения
- •Выборка данных с использование предложения select
- •Простейшие select-запросы
- •Преобразование вывода и встроенные функции
- •Числовые и символьные константы
- •Арифметические операции для преобразования числовых данных
- •Операция конкатенации строк
- •Агрегирование и групповые функции
- •Упорядочение выходных полей
- •Вложенные подзапросы
- •Формирование связанных подзапросов
- •Организация данных в InterBase
Числовые типы данных:
INTEGER – используется для представления целых чисел от -2^31 до 2^31.
SMALLINT – используется для представления целых чисел в диапазоне от -2^15 до 2^15.
DECIMAL(точность, масштаб)
…
Используемые термины и обозначения
Ключевые слова – это используемые в выражениях SQL слова, имеющие определенное назначение. Команды или предложения являются инструкциями с помощью которых SQL обращается к БД. Команды состоят из одной или более логических частей называемых предложениями. Предложения начинаются ключевым словом и состоят из ключевых слов и аргументов.
В описании синтаксиса команд SQL используются следующие обозначения:
[] - квадратные скобки – указывают необязательный элемент синтаксической конструкции.
… - многоточие – определяет, что выражение предшествующее ему может повторяться любое число раз.
{} – фигурные скобки – объединяют последовательность элементов в логическую группу, один из элементов которой должен обязательно использоваться.
| - вертикальная черта – указывает, что часть определения, следующая за этим символом, является одним из возможных вариантов.
<> - в угловые скобки заключаются обычные элементы, объясняемые по мере того как они вводятся.
Выборка данных с использование предложения select
Все запросы на получение любого количества данных из одного или нескольких отношений выполняются с помощью предложения SELECT. В общем случае результатом реализации предложения SELECT является отношение. К этому новому отношению может быть снова применена операция SELECT и т.д. Т.е. такие операции могут быть вложены друг в друга.
Предложение SELECT может использоваться как:
Самостоятельная команда на получение и вывод кортежей отношения, сформированного из столбцов и кортежей одного или нескольких отношений.
В качестве вложенного подзапроса.
Фраза выбора в командах определения схемы данных и модификации отношений.
Средство присвоения глобальным переменным значений кортежей сформированного отношения (Into-фраза).
Простейшие select-запросы
Упрощенный синтаксис оператора Select выглядит следующим образом:
Select [distinct] <список атрибутов >
From <список таблиц>
[Where <условие выборки>]
[Order by <список атрибутов>]
[Group by <список атрибутов>]
[Having <условие>]
[Union <выражение с операндом Select>];
В квадратных скобках указаны элементы, которые могут отсутствовать в запросе. Ключевое слово Select сообщает БД, что данное предложение является запросом на извлечение информации. После Select через запятую перечисляются наименования полей, содержимое которых запрашивается. Обязательным ключевым словом в предложении-запросе SELECT является слово From. За ним указывается список разделенных запятыми имен таблиц, из которых извлекается информация. Например:
Select name, surname
From student;
Select * -выводит все атрибуты.
Получаемые в результате выполнения SQL-запроса таблицы не в полной мере отвечают определению реляционного отношения. Т.е. в них могут оказаться кортежи с одинаковым значением атрибутов. Например: получить список названий городов, где проживают студенты, сведения о которых находятся в таблице student.
Select city
From student;
Для исключения из результата SELECT-запроса повторяющихся записей используется ключевое слово distinct. Если запрос SELECT извлекает множество полей, то distinct исключает дубликаты строк, в которых значения всех выбранных строк идентичны.
Select distinct city
From student;
Ключевое слово all в отличие от distinct оказывает противоположное действие, т.е. при его использовании повторяющиеся строки включаются в состав выходных данных.
Использование в операторe Select предложения определяемого ключевым слово Where позволяет задавать выражение условия (предикат) принимающее значение Истина или Ложь для значений полей строк таблиц к которым обращается оператор Select. Предложение Where определяет, какие строки должны быть выбраны. В таблицу являющуюся результатом запроса включаются только те строки, в которых предикат, указанный в предложении-Where принимает значение Истина.
Пример: написать запрос выполняющий выборку имен всех студентов с фамилией Петров, сведения о которых содержатся в таблице student.
Select name, surname
From student
Where surname = 'Петров';
В задаваемых предложением Where условиях могут использоваться операции сравнения, а также логические операторы. Например: запрос для получения имен и фамилий студентов, обучающихся на третьем курсе и получающих стипендию.
Select name, surname
From student
Where kurs = 3 and stipend>0;
Операторы IN, BETWEEN, LIKE, IS NULL
При задании логического условия в предложении where могут быть использованы операторы IN, BETWEEN, LIKE, IS NULL. Операторы in (равен любому из списка) и not in (не равен ни одному из списка) используются для сравнения проверяемого значения поля с заданным списком. Этот список значений указывается в скобках справа от оператора in. Построенный с использованием in предикат считается истинным, если значение поля, имя которого указано слева от in, совпадает с одним из значений, перечисленных в списке.
Предикат, построенный с использованием not in считается истинным, если значение поля не совпадает ни с одним из значений, перечисленных в списке.
Пример: получить из таблицы exam_marks сведения о студентах, имеющих оценки 9 и 10.
Select name, surname
From exam_marks
Where mark in (9,10)
Получить сведения о студентах, не имеющих ни одной оценки, равной 9 или 10:
Select name, surname
From exam_marks
Where mark not in (9,10)
Оператор Between
Используется для проверки условия вхождения значения поля в заданный интервал. Т.е. вместо списка значений атрибута этот оператор задает границы его изменения.
Пример: вывести информацию о предметах, на изучение которых отводится количество часов находящееся в пределах между 20 и 40.
Select *
From subject
Where hour between 30 and 40;
Оператор Like
Оператор Like применим только к символьным полям. Этот оператор просматривает строковые значения полей с целью определения входит ли заданная в операторе like строка в символьную строку проверяемого поля. Для выборки строковых значений по заданному образцу подстроки можно применять шаблон искомого образца строки, использующий следующие символы:
_ - определяет возможность наличия в указанном месте одного любого символа.
% - допускает присутствие в указанном месте проверяемой строки последовательности любых символов произвольной длинны.
Пример: написать запрос выбирающий информацию о студентах фамилии, которых начинаются с буквы Р.
Select *
From student
Where surname like ‘Р%’;
В случае необходимости включение в образец самих символов _ и % применяют т.н. escape символы. Например, можно задать образец поиска с помощью следующего выражения: like ‘_\_P’ escape’_\’. В этом выражении символ backslash с помощью ключевого слова escape объявляется escape-символом. Первый символ _ будет соответствовать, как и ранее любому символу проверяемой строки, однако второй символ _, следующий после символа backslash объявленного escape-символом уже будет интерпретироваться буквально как обычный символ. Замечание: рассмотренные выше операторы сравнения и операторы in, between, like нельзя использовать для проверки содержимого поля на пустое значение.
Select *
From student
Where surname is null;
