
- •1. Основные сведения о языке sql
- •2. Определение данных
- •2.1. Создание и удаление таблицы
- •2.2. Изменение состава полей таблицы
- •2.3. Создание и удаление индекса
- •IndName on Personnel.Db (Name)
- •IndNamePosition on Personnel.Db (Name, Position)
- •3. Отбор данных из таблиц
- •3.1. Описание оператора select
- •3.2. Управление полями
- •3.3. Простое условие отбора записей
- •3.4. Сложные критерии отбора записей
- •3.5 Группирование записей
- •3.6. Сортировка записей
- •Var s: string;
- •3.7. Соединение таблиц
- •4. Модификация записей
- •4.1. Редактирование записей
- •4.2. Вставка записей
- •Insert into Store
- •Values ("Торшер", 499.9, 10);
- •Insert into CardsArchives
- •4.3. Удаление записей
- •5. Статический и динамический запросы
- •Var str: string;
2.2. Изменение состава полей таблицы
Изменение состава полей таблицы заключается в добавлении или удалении полей и приводит к изменению ее структуры, при этом таблицу не должны использовать другие приложения. Изменение состава полей таблицы выполняется оператором alter table:
ALTER TABLE <имя таблицы>
ADD <имя поля> <тип данных >,
DROP <имя поля>,
. . .
ADD <имя поля> <тип данных >,
DROP <имя поля>;
Операнд add добавляет к таблице новое поле, имя и тип которого задаются так же, как и в операторе create table, а операнд drop удаляет из таблицы поле с заданным именем. Операнды add и drop не зависят друг от друга и могут следовать в произвольном порядке.
При попытке удалить отсутствующее поле или добавить поле с существующим именем генерируется исключительная ситуация.
Пример изменения структуры таблицы:
ALTER TABLE Personnel.db
ADD Section SMALLINT,
ADD Note CHAR (30),
DROP Position;
К таблице Personnel добавляются целочисленное поле номера отдела section и символьное поле примечаний Note, поле Position удаляется.
2.3. Создание и удаление индекса
Напомним, что индекс обеспечивает быстрый доступ к данным, хранимым в поле, для которого он создан. Для ускорения операций с таблицей индексными следует делать поля, по которым часто производится поиск и отбор записей. Индекс создается оператором create index следующего формата:
CREATE INDEX
<Имя индекса> ON <Имя таблицы> (<Имя поля >, ..., [<Имя поля >]);
Одним оператором можно создать один индекс, при этом одно поле может входить в состав нескольких индексов. Кроме того, не требуется, чтобы значения составляющих индекс полей были уникальными. При сортировке по индексу записи упорядочиваются в порядке возрастания значений индексных полей.
С помощью оператора create index для таблиц dBase создаются индексы, а для таблиц Paradox — вторичные индексы. Напомним, что первичным индексом таблиц Paradox является ключ, описываемый непосредственно при создании таблицы. Использование оператора create index является единственным способом определения индекса для таблиц dBase.
Так можно создать индекс по одному полю:
CREATE INDEX
IndName on Personnel.Db (Name)
А так по двум:
CREATE INDEX
IndNamePosition on Personnel.Db (Name, Position)
Для удаления индекса используется оператор drop index формата
DROP INDEX
<Имя таблицы>.<Имя индекса >
или
DROP INDEX
<Имя таблицы >.PRIMARY
Во время удаления индекса таблица не должна использоваться другими приложениями. При выполнении оператора drop index можно удалить один индекс, обозначив его составным именем, состоящим из имени таблицы и собственно имени индекса. Если удаляется первичный индекс (ключ) таблицы Paradox, то вместо имени индекса указывается описатель primary, поскольку главный ключ не имеет имени.
Например, в операторе
DROP INDEX
"Personnel.db".indNamePosition
ИЗ таблицы Personnel удаляется индекс indNamePost, созданный по полям Name И Position.
Первичный ключ удаляется так:
DROP INDEX
"Personnel.db".PRIMARY
Если удаляемый индекс отсутствует или таблица используется другим приложением, то генерируется исключительная ситуация.