
- •Введение в теорию баз данных (данные, база данных, предметная область, запись, атрибут, объект, субд).
- •Индексирование бд. Правила индексирования.
- •Модель данных. Взаимосвязи в модели данных (один к одному, один ко многим, многие ко многим).
- •Связанные таблицы. Ключи. Виды ключей.
- •Нормализация. 1нф, 2нф, 3нф.
- •Проектирование бд. Правила проектирования.
- •Иерархическая модель данных.
- •Реляционная модель данных.
- •Сетевая модель данных.
- •Создание структуры базы данных средствами субд ms Access.
- •Работа с sql-запросами в ms Access.
- •Организация поиска в базе данных на примере ms Access.
- •Работа с формами и отчётами в ms Access.
- •Типы данных в sql.
- •Предложение select. Область применения. Формат записи.
- •Выборка вычисляемых значений. Исключение дубликатов.
- •Фраза where. Операторы сравнения.
- •Фразы between, in, like.
- •Выборка с упорядочением.
- •Использование фразы having.
- •Запросы с использованием нескольких таблиц.
- •Предложение delete. Удаление единственной записи. Удаление множества записей.
- •Предложение insert. Вставка единственной записи. Вставка множества записей.
- •Обзор визуальных компонентов среды delphi, необходимых для работы с базами данных.
- •Обзор не визуальных компонентов среды delphi, необходимых для работы с базами данных.
- •Реализация sql-запросов при работе с базой данных в среде delphi.
- •Сравнение технологий bde и ado.
Типы данных в sql.
Целые числа
Общий вид указания типа данных: префиксINT [UNSIGNED]
Необязательный флаг UNSIGNED задает, что будет создано поле для хранения без знаковых чисел. TINYINT Может хранить числа от -128 до 127
SMALLINT 2 байта
MEDIUMINT 3 байта
INT 4 байта
BIGINT 8 байт
Дробные числа
В общем виде они записываются так: ИмяТипа[(length, decimals)] [UNSIGNED]
Здесь length - количество знакомест (ширина поля), в которых будет размещено дробное число при его передаче. decimals - количество знаков после десятичной точки, которые будут учитываться.
UNSIGNED - задает беззнаковые числа.
FLOAT Число с плавающей точкой небольшой точности.
DOUBLE И REAL Число с плавающей точкой двойной точности.
DECIMAL и NUMERIC Дробное число, хранящееся в виде строки.
Строки
Строки представляют собой массивы символов. Обычно при поиске по текстовым полям по запросу SELECT не берется в рассмотрение регистр символов, т.е. строки "Вася" и "ВАСЯ" считаются одинаковыми. Для начала ознакомимся с типом строки, которая может хранить не более length символов, где length принадлежит диапазону от 1 до 255.
VARCHAR (length) [BINARY]
При занесении некоторого значения в поле такого типа из него автоматически вырезаются концевые пробелы. Если указан флаг BINARY, то при запросе SELECT строка будет сравниваться с учетом регистра.
VARCHAR и TINYTEXT Может хранить не более 255 символов. 1 байт
TEXT Может хранить не более 65 535 символов. 2 байта
MEDIUMTEXT Может хранить не более 16 777 215 символов. 3 байта
LONGTEXT Может хранить не более 4 294 967 295 символов. 4 байта
BINARY (ДВОИЧНЫЕ)
Дата и время
DATE Дата в формате ГГГГ-ММ-ДД
TIME Время в формате ЧЧ:ММ:СС
DATETIME Дата и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС
MONEY(ДЕНЬГИ)
Предложение select. Область применения. Формат записи.
Оператор SELECT - наиболее часто используемый оператор SQL. Он позволяет производить выборки данных из таблиц БД и преобразовывать к нужному виду полученные результаты. С его помощью можно реализовать весьма сложные условия выбора данных из различных таблиц.
В самом общем виде он имеет следующий формат:
SELECT список полей 1 , агрегир. Ф-и(min,max,avg,count,sum)
FROM список имен таблиц
[WHERE <условия_поиска>]
[ORDER BY <список_ имен полей 2>]
[GROUP BY <список_ имен полей 3>]
В простейшем случае, когда требуется создание набора данных, состоящего из всех записей одной или нескольких таблиц, оператор SELECT имеет такой вид:
SELECT * FROM <таблица1> [, < таблица2> ...]
Звездочка «*» указывает, что в результат выполнения запроса нужно включить все столбцы той или иной таблицы. После FROM указывается список таблиц БД, из которых будет происходить выборка данных.
Выборка вычисляемых значений. Исключение дубликатов.
Для расчета значений вычисляемых столбцов результирующего набора данных используются арифметические выражения. При этом в списке возвращаемых столбцов после SELECT вместо имени вычисляемого столбца указывается выражение.
Предположим что вы хотите выполнять простые числовые вычисления данных чтобы затем помещать их в форму больше соответствующую вашим потребностям. SQL позволяет вам помещать скалярные выражения и константы среди выбраных полей. Эти выражения могут дополнять или замещать поля в предложениях SELECT, и могут включать в себя одно или более выбранных полей.
SELECT snum, sname, city, comm * 100
FROM Salespeople;
Рассмотрим еще один момент, связанный с простейшей формой оператора SELECT. Иногда в качестве результатов запроса вы получаете набор строк, некоторые из которых дублируются. Так, например, вы хотели бы получить список стран, в которых родились Ваши абитуриенты. Как было показано выше, для этого достаточно применить следующий запрос:
SELECT birth_place
FROM entrant
Однако, есть одна проблема: в качестве результата Вы скорее всего получите список, содержащий одинаковые значения.
Обычно это не то, что требуется. Для получения нужного результата следует удалить из этого списка повторяющиеся города. Этот результат достигается при помощи ключевого слова DISTINCT:
SELECT DISTINCT birth_place
FROM entrant
Противоположность DISTINCT – ключевое слово ALL. Во всех предыдущих запросах мы ничего не указывали после SELECT и ALL подразумевалось по умолчанию.