Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000555.doc
Скачиваний:
31
Добавлен:
30.04.2022
Размер:
19.12 Mб
Скачать

9.4.4. Добавление в таблицу новых столбцов

В SQL можно добавлять в таблицу новые столбцы.

Для этого существует команда ALTER TABLE.

В общем виде она выглядит так:

ALTER TABLE <Имя таблицы> ADD <Имя поля> <Тип> <Размер>;

Например:

ALTER TABLE Spisok ADD AgeS INTEGER

Чтобы добавлять новые столбцы к уже существующей таблице с помощью команды ALTER TABLE, можно помещать ограничение столбцов, типа NOT NULL, для этих новых столбцов. Однако, если новому столбцу предписывается значение NOT NULL, текущая таблица должна быть пустой.

Когда вставляется строка в таблицу без указания значений в ней для каждого поля, SQL должен иметь значение по умолчанию для включения его в определенное поле, или же команда будет отклонена.

Наиболее общим значением по умолчанию является - NULL. Это - значение по умолчанию для любого столбца, которому не было дано ограничение NOT NULL или который имел другое назначение по умолчанию.

Значение DEFAULT(ПО УМОЛЧАНИЮ) указывается в команде CREATE TABLE тем же способом что и ограничение столбца, хотя, с технической точки зрения, значение DEFAULT не ограничительного свойства - оно не ограничивает значения, которые можно вводить, а просто определяет, что может случиться, если не введется любое из них.

Предположим, что фирма расположена в Воронеже и подавляющее большинство сотрудников живут в Воронеже.

Тогда можно указать Воронеж в качестве значения поля City по умолчанию для таблицы Sotrudniky:

CREATE TABLE Sotrudniky

( NumberS integer NOT NULL UNIQUE,

NameS char(10) NOT NULL UNIQUE,

City char(10) DEFAULT = 'Voronesh',

AgeS decimal CHECK (AgeS< 100);

10. Реализация sql- запросов

10.1. Компонент tadoQuery для sql- запросов

В технологии ADO для отправки SQL-запроса в базу данных используется компонент TADOQuery с вкладки dbGo.

Откроем наш проект и дополним его возможностями поиска посредством отправки в базу данных SQL-запроса.

Откроем модуль данных DataModule (Рис 8.2), где у нас расположены все компоненты доступа к базе данных.

Добавим к нему компоненты TADOQuery (назовем его FindQuery) и TDataSource (назовем его FindSource).

Теперь надо связать эти компоненты, указав у компонента FindSource в свойстве DataSet компонент FindQuery.

Как уже отмечалось выше, компонент FindSource отвечает за отображение данных из таблиц.

Компонент FindQuery предназначен для отправки SQL-запросов базе данных.

Результат запросов возвращается в виде таблиц, и для отображения результата нам будет необходим компонент FindQuery.

Именно поэтому мы их установили на форму и связали между собой, чтобы компонент отображения видел данные, которые надо отображать.

Теперь выделим компонент FindQuery. В свойстве Connection компонента FindQuery укажем компонент подключения к базе данных ADOConnection1. Этим мы укажем компоненту, к какой базе будут отправляться запросы и через какое соединение.

Теперь напишем сам запрос. Для этого дважды щелкнем кнопкой мыши по свойству SQL компонента FindQuery, и перед вами откроется окно редактора запросов (рис 101.1).

Рис. 10.1

В этом редакторе уже написан простейший запрос — выбор всех строк и всех столбцов из таблицы Список, к которой мы подключились:

SELECT *

FROM Список

Для выполнения запроса нужно установить свойство Active компонента FindQuery в true.

Возможно, отображение полей компонента FindQuery еще не настроено.

Но все это можно исправить. если перейти в объектный инспектор и дважды щелкнуть по компоненту FindOuery.

Перед вами откроется окно настройки свойств полей компонента FindQuery.

В появившемся окне щелкните правой кнопкой мыши и выберите пункт меню Add all fields.

В редакторе должны отобразиться все поля результирующей таблицы.

Теперь дважды щелкните кнопкой мыши по компоненту SpisokTable, чтобы отобразить окно свойств нашей уже настроенной таблицы.

Расположите оба окна рядом друг с другом, чтобы вы могли их видеть.

Теперь сравнивайте и при необходимости редактируйте свойства результирующей таблицы так, чтобы свойства таблиц, указанные в обоих редакторах, совпадали.