- •О. Б. Малков работа с базами данных в среде delphi Учебное пособие для студентов заочной формы обучения
- •Содержание
- •1. Реализация работы с базами данных в среде delphi
- •1.1. Базы данных и системы управления базами данных
- •1.2. Технология доступа к данным bde
- •1.3. Компоненты приложений, работающих с базами данных
- •2. Демонстрационная база данных
- •2.1. Логическая модель данных предметной области
- •2.2. Физическая модель данных предметной области
- •3. Создание базы данных
- •3.1. Создание псевдонима
- •3.2. Создание структуры таблиц базы данных
- •3.3. Свойства таблиц Paradox
- •3.4. Заполнение таблиц базы данных
- •4. МодулЬ данных
- •4.1. Создание модуля данных
- •4.2. Связывание наборов данных
- •4.3. Создание объектов-полей
- •4.4. Проектирование и анализ структуры базы данных
- •4.5. Создание объектов-столбцов
- •4.6. Реализация бизнес-правил
- •5. Создание приложения, работающего с базой данных
- •5.1. Выбор типа пользовательского интерфейса
- •5.2. Создание главной формы
- •5.3. Создание рабочих форм
- •5.4. Создание форм ввода новых данных
- •6. Создание запросов
- •6.1. Компонент Query
- •6.2. Создание sql-запросов
- •6.2.1. Простая выборка данных
- •6.2.2. Выборка из связанных таблиц
- •6.2.3. Сортировка записей
- •6.2.4. Сложные критерии отбора
- •6.2.5. Псевдонимы таблиц и комментарии
- •6.2.6. Агрегатные функции и группировка записей
- •6.2.7. Создание и удаление таблиц и индексов
- •6.2.8. Вставка, удаление и редактирование записей
- •Insert into Имя_таблицы (Список_полей
- •Values (Список_значений)
- •6.3. Построение запроса в демонстрационной базе данных
- •7. Создание отчетов
- •7.1. Основы технологии Rave Reports
- •7.2. Визуальная среда Rave Designer
- •7.3. Составляющие проекта отчета
- •7.3.1. Библиотека отчетов
- •7.3.2. Каталог глобальных страниц
- •7.3.3. Каталог объектов данных
- •7.4. Типы отчетов
- •7.4.1. Отчет с единственной таблицей или запросом
- •7.4.2. Отчет главный-детальный
- •7.4.3. Группирующий отчет
- •7.5. Пример создания отчетов в приложении Sale
- •7.6. Экспорт отчета в файл
- •8. Создание СправочнОй системЫ
- •8.1. Создание файла документа справочной информации
- •8.2. Создание проекта справочной системы
- •8.3. Доступ к справочной информации
- •9. Создание установочного диска
- •9.1. Программа InstallShield Express
- •9.2. Создание проекта инсталляционной программы
- •Библиографический список
6.2.7. Создание и удаление таблиц и индексов
Таблицы в современных СУБД создаются с помощью визуальных средств, однако некоторые эффективные, но максимально упрощенные СУБД поставляются без вспомогательного инструментария, и создавать структуру БД приходится вручную. При этом, прежде всего, требуется создать таблицу. Это делается с помощью следующего оператора:
CREATE TABLE Имя_таблицы (0пределения_полей)
Здесь Имя_таблицы – произвольное имя, не совпадающее с именами уже существующих в БД таблиц; Определения_полей – список имен полей с обязательным указанием их типов. Например:
CREATE TABLE NewTable (Field1 CHAR(20), Field2 INT)
При определении текстовых полей полезно явно указывать кодировку символов, иначе на нерусифицированных версиях Windows в такой столбец невозможно будет ввести русскоязычные строки:
CREATE TABLE NewTable (Field1 CHAR(20) CHARACTER
SET Win1251, Field2 INT)
Допустимые типы полей зависят от типа таблиц. При использовании таблиц типа Paradox, в операторе CREATE TABLE можно применять следующие типы полей:
CHAR(N), CHARACTER(N) – символьное поле длиной N символов (до 255);
INT, INTEGER – соответствует типу Integer языка Object Pascal;
SMALLINT – соответствует типу Smallint языка Object Pascal;
BLOB – цепочка байтов неопределенной длины;
FLOAT – соответствует типу Real языка Object Pascal;
DATE – поле для хранения даты;
BOOLEAN – соответствует типу Boolean языка Object Pascal.
За типом поля при его описании можно указывать зарезервированные слова NOT NULL (поле не может быть пустым), PRIMARY KEY (по полю строится первичный ключ), UNIQUE (значения поля не должны повторяться). Например:
CREATE TABLE Test
(ID integer NOT NULL PRIMARY KEY, Stroka char(50) )
Для удаления существующей таблицы используется оператор
DROP TABLE Имя_таблицы
Для создания индекса служит оператор
CREATE INDEX Имя_индекса ON Имя_таблицы (Список_полей)
Например:
CREATE INDEX Index1 ON NewTab1e(Field1)
Следующий оператор удаляет ранее созданный индекс:
DROP INDEX Имя_индекса
6.2.8. Вставка, удаление и редактирование записей
В таблицу БД запись вставляется с помощью оператора
Insert into Имя_таблицы (Список_полей
Values (Список_значений)
Каждому полю в списке полей должно соответствовать нужное значение в списке значений. Если заполняются все поля записи, список полей вместе с обрамляющими скобками можно опускать. Например:
INSERT INTO Izdelie
VALUES (‘006’, ‘Балтика «Экспортное»’, ‘шт’, 35)
С помощью оператора INSERT можно вставить сразу группу записей. Пусть, например, таблица создана показанным ниже оператором:
CREATE TABLE
NewTable(TNNom CHAR(4), TKod CHAR(4), TKol SMALLINT)
Тогда следующий оператор вставит в нее список изделий для накладной 0028:
INSERT INTO NewTable
SELECT * FROM Snakl
WHERE SnNNom = ’0028’
Для удаления записей используется оператор
DELETE FROM Имя_таблицы WHERE Условие_выборки_записей
Например:
DELETE FROM Zakazcik WHERE ZKod = ‘002’
Если опустить секцию WHERE, из таблицы будут удалены все записи. Изменение отдельных полей таблицы реализуется оператором
UPDATE Имя_таблицы SET Имя_поля = 3начение
WHERE Условие_выборки
Например:
UPDATE Izdelie SET ICena = 35 WHERE IKod = ‘001’
За словом SET может стоять произвольное количество полей с указанием их значений. Два соседних присваивания Имя_поля=3начение разделяются запятой. Если опустить секцию WHERE, будут изменены значения всех записей таблицы.