====== CREATE DATABASE/SCHEMA ======
===== Версии сервера =====
^ 0.9 ^ 1.0 ^ 1.5.3 ^ 1.5.4 ^ 1.5.5 ^ 2.0 ^ 2.0.3 ^ 2.0.4 ^ 2.1 ^ 2.5 ^ 3.0 ^
| + | + | + | + | + | + | + | + | + | + | + |
===== Формат =====
CREATE {DATABASE | SCHEMA} '<спецификация файла>'
[USER '<имя пользователя>' [PASSWORD '<пароль>']]
[PAGE_SIZE [=] <целое>]
[LENGTH [=] <целое> [PAGE[S]]]
[DEFAULT CHARACTER SET <набор символов>]
[<вторичный файл>]...;
<вторичный файл> ::= FILE '<спецификация файла>'
[LENGTH [=] <целое> [PAGE[S]]]
[STARTING [AT [PAGE]] <целое>]
^ Аргумент ^ Описание ^
|'<спецификация файла>'| Спецификация файла задает полный путь к создаваемому файлу базы данных и имя файла, включая его расширение. Сам файл должен отсутствовать на внешнем носителе.|
|USER '<имя пользователя>'| Имя пользователя-владельца базы данных. Может содержать до 31 символа. Нечувствительно к регистру.|
|PASSWORD '<пароль>'|Пароль пользователя-владельца базы данных. Может содержать до 64 символов, однако только первые 8 имеют значение. Чувствителен к регистру|
|PAGE_SIZE| Задает размер страницы базы данных. Допустимы значения 4096 (значение по умолчанию), 8192 и 16384.Если вы зададите неправильное значение размера страницы, то система не выдаст сообщения об ошибке, а установит размер до ближайшего меньшего числа. Если указать значение меньше чем 4096, то будет выбрано значение по умолчанию — 4096.|
|LENGTH| Задает количество страниц в первичном файле базы данных.|
|DEFAULT CHARACTER SET| Задает набор символов по умолчанию для строковых типов данных в базе данных.|
|STARTING AT PAGE| Страница, с которой начинается вторичный файл базы данных. |
===== Описание =====
Оператор CREATE DATABASE/SCHEMA создает новую базу данных. При этом в файл базы данных помещаются многочисленные системные данные.
Можно задавать CREATE DATABASE или CREATE SCHEMA. Это синонимы.
База данных может располагаться в одном или более файлах. Тогда после описания первичного файла задается описание вторичных файлов.
Для того, чтобы база данных была создана в нужном вам диалекте SQL, следует перед выполнением
оператора создания базы данных задать нужный диалект, выполнив оператор SET SQL DIALECT:
SET SQL DIALECT 3;
**Замечание:** \\
В более ранних версиях системы управления базами данных могли применяться и меньшие размеры
страниц — 1024 и 2048, однако их использование на практике оказалось весьма неэффективным.
===== Пример =====
**Пример создания однофайловой базы данных**
SET SQL DIALECT 3;
CREATE DATABASE 'D:\Work\work.fdb'
USER 'wizard' PASSWORD 'master'
PAGE_SIZE = 16384 DEFAULT CHARACTER SET WIN1251;
Здесь будет создана база данных в диалекте 3, владельцем которой является описанный в системе пользователь wizard с паролем master (этот пользователь должен быть создан в базе данных безопасности до создания демонстрационной базы данных. Размер страницы для этой базы данных установлен максимальным — 16384.
**Пример создания многофайловой базы данных**
SET SQL DIALECT 3;
CREATE DATABASE 'D:\Work\work.fdb'
USER 'wizard' PASSWORD 'master'
PAGE_SIZE = 4096
DEFAULT CHARACTER SET WIN1251
FILE 'D:\Work\work.fd2'
STARTING AT PAGE 10001
FILE 'D:\Work\work.fd3'
STARTING AT PAGE 20001;
Первичный файл будет содержать 10000 страниц размером 4096 байтов. Как только первичный
файл в процессе работы с базой данных будет заполнен пользовательскими и системными данными
(количество всех данных превысит 4096 × 10000 байтов, включая и системные данные — заголовки
страниц, указатели, индексы, генераторы и т.д.), система управления базами данных начнет помещать
новые строки таблиц во второй файл базы данных, work.fd2. Аналогичные действия произойдут, когда
будет заполнен и этот вторичный файл. Система начнет помещать данные в следующий вторичный
файл — work.fd3. Размер последнего вторичного файла будет увеличиваться до того предела, который
допускает используемая версия операционной системы, или пока не будет исчерпана память на внешнем носителе. Управлять размещением в различных файлах базы данных отдельных строк для различных таблиц пользователь не имеет возможности, все эти действия выполняет система управления базами данных.
===== См. также =====
[[ALTER DATABASE]], [[DROP DATABASE]], [[CREATE SHADOW]], [[DROP SHADOW]], [[CONNECT]]