- •Язык запросов sql
- •Общие сведения
- •Insert - запрос на добавление;
- •Инструкция select
- •Синтаксис select
- •Расширения инструкции select в access
- •Порядок выполнения выборки
- •Управление списком выбора
- •Указание источника данных
- •Применение реляционных операторов
- •Применение булевых операторов
- •Обработка неопределенных значений
- •Сортировка данных
- •Вычисление агрегатных функций
- •Группировка данных
- •Ограничение для групп данных
- •Выборка из нескольких таблиц
- •Соединение отношений
- •Выборка из нескольких таблиц
- •Соединение отношений
- •Запрос с соединением, использующий from и where
- •Запрос с соединением join
- •Запрос с соединением, использующий from и where
- •Запрос с соединением join
- •Операции с таблицами
- •Изменение структуры таблицы
- •Удаление таблицы
- •Действия со строками
- •Вставка строк в таблицу
- •Изменение данных в таблице
- •Удаление данных из таблицы
- •Инструкция transform
- •In ("Физика", "Математика");
- •Глава 5 Работа с формами
Операции с таблицами
При помощи команд языка SQL можно создавать, удалять таблицы, изменять столбцы, вносить и удалять данные. Эти операции могут быть также реализованы средствами Visual Basic for Application (подробнее об этом рассказано в главе 10 «Visual Basic»).
Оператор языка SQL, при помощи которого выполняется создание таблицы, имеет следующий упрощенный синтаксис:
CREATE TABLE table_name (columnl_name data_type [constraint]
[,column2_name data_type [constraint]]...
[CONSTRAINT key | index]);
где: table_name - имя таблицы;
columnl_name, column2 - name, ... - имена столбцов;
data_type - тип данных столбца;
constraint - накладываемое на столбец ограничение. Существуют следующие ограничения: NULL, NOT NULL, PRIMARY KEY, UNIQUE (подробнее ниже);
key | index - имя создаваемого ключа или индекса.
Приведем пример создания таблицы tbIFaculties (сведения о факультетах):
CREATE TABLE tbIFaculties ( fIDFaculty COUNTER NOT NULL PRIMARY KEY, fFaculty CHAR(l) UNIQUE, fFacultyFull VARCHAR(20) UNIQUE);
где: fIDFaculty - код факультета. Имеет тип данных COUNTER (счетчик) и такие ограничения:
NOT NULL - указывает на то, что столбец не может содержать неопределенных значений;
PRIMARY KEY - задает первичный ключ отношения; fFaculty - символ факультета. Имеет строковый тип данных CHAR(l) (указывающий на то, что это текстовое поле, которое состоит из 1 символа) и содержит ограничение UNIQUE. С помощью UNIQUE задается уникальность значений в столбце. Такому столбцу автоматически устанавливается свойство NOT NULL;
fFacultyFull - полное название факультета. Имеет строковый тип данных VARCHAR(20) (указывающий на то, что это текстовое поле, которое состоит максимум из 20 символов) и содержит ограничение UNIQUE.
В табл. 4.1 описаны ключевые слова для обозначения основных типов данных Access (с указанием синонимов).
Таблица
4.1
Ключевые
слова для обозначения основных типов
данных Access
Название
типа
Уточнение
типа
Ключевое
слово (Синонимы)
Текстовый
-
CHAR
|
VARCHAR
Поле
MEMO
-
MEMO
|
NOTE
6-8301
Название типа |
Уточнение типа |
Ключевое слово (Синонимы) |
Числовой |
Байт |
BYTE |
Числовой |
Целое |
SHORT |
Числовой |
Длинное целое |
INTEGER | INT | LONG |
Числовой |
Одинарное с плавающей точкой |
SINGLE | REAL |
Числовой |
Двойное с плавающей точкой |
DOUBLE | FLOAT | NUMBER |
Дата/время |
- . |
DATA | TIME | DATA- TIME |
Денежный |
- |
CURRENCY | MONEY |
Счетчик |
- |
COUNTER | AUTOINCREMENT |
Логический |
|
BOOLEAN | LOGICAL |
Поле объекта OLE |
- |
OLEOBJECT | GENERAL |
Рассмотрим создание в таблице внешних ключей. Приведем пример записи команды создания таблицы tbIGroups (информация
о группах), связанной с таблицей tbIFaculties по полю fIDFaculty:
CREATE TABLE tbIGroups (
fIDGroup COUNTER NOT NULL PRIMARY KEY,
fGroup CHAR(3) UNIQUE,
fIDFaculty INT REFERENCES tblFaculties(flDFaculty), fCourse BYTE NOT NULL, fGroupNumber BYTE NOT NULL);
где: fIDGroup - код группы (первичный ключ); fGroup - шифр группы (поле из трех символов); fIDFaculty - код факультета (целочисленный тип данных INT); fCourse - номер курса (целочисленный тип данных BYTE); fGroupNumber - номер группы (целочисленный тип данных BYTE).
В этой команде поле fIDFaculty таблицы tbIGroups является внешним ключом и связывается при помощи предложения REF-
ERENCES с одноименным полем таблицы tbIFaculties, которое является в ней первичным ключом.
Примечание. В диалекте SQL для Access отсутствует ключевое слово DEFAULT, с помощью которого можно установить для столбца таблицы значение по умолчанию. Также отсутствует ключевое слово CHECK, с помощью которого можно задать для столбца таблицы условие на значение.
При создании таблицы можно с помощью конструкции CONSTRAINT установить первичный ключ, простой или составной индекс, добавить ограничения (NOT NULL, UNIQUE) для столбца, а также установить связь с другой таблицей по внешнему ключу (FOREIGN KEY). Например, создадим таблицу tbIStudents с составным индексом FIO:
CREATE TABLE tbIStudents ( fIDStudent COUNTER NOT NULL PRIMARY KEY, flDGroup INT REFERENCES tblGroups(flDGroup), fLastName CHAR(20) NOT NULL, fFirstName CHAR(20) NOT NULL, fMiddleName CHAR(20) NOT NULL,
CONSTRAINT FIO UNIQUE (fFirstName, fLastName, fMiddleName)); Подробнее об установлении связи по внешнему ключу при помощи конструкции CONSTRAINT будет рассказано ниже.