Создание баз данных

Скалярные операторы

Язык SQL включает некоторое количество встроенных скалярных операторов и функций, которые могут использоваться для построения скалярных выражений, т.е. выражений, вычисление которых дает скалярный результат. Помимо обычных арифметических операторов (+, -, * и /) в языке определены и другие операторы, представленные в табл. ___.

Таблица ___. Скалярные операторы языка SQL

Оператор Назначение
BIT_LENGTH Возвращает длину заданной строки в битах. Например, результат вычисления выражения BIT_LENGTH(X'FFFF') равен 16
OCTET_LENGTH Возвращает длину заданной строки в октетах (длина в битах, деленная на 8). Например, результат вычисления выражения OCTET_LENGTH(X'FFFF') равен 2
CHAR_LENGTH Возвращает длину заданной строки в символах (или в октетах, если строка является битовой строкой). Например, результат вычисления выражения CHAR_LENGTH('Beech') равен 5
CAST( … AS …) Преобразует значение выражения, построенного из данных одного типа, в значение другого типа данных.
|| Оператор конкатенации. Соединенные этим оператором две символьные или битовые строки преобразуются в одну строку. Например, выражение Lname || Fname
LOWER Функция преобразует в заданной строке все прописные буквы в строчные. Например, в результате вычисления выражения ___будет получено значение
UPPER Функция преобразует в заданной строке все строчные буквы в прописные. На- пример, в результате вычисления выражения __ будет получено значение __
TRIM Функция удаляет ведущие (LEADING), конечные (TRAILING) или те и другие (BOTH) указанные символы из заданной строки. Например, вычисление выражения TRIM (BOTH '*' FROM '**Hello World *') даст результат 'Hello World'
POSITION Функция возвращает позицию одной строки в пределах другой строки. Например, в результате вычисления выражения POSITION ('ее' IN 'Beech') будет получено значение 2
SUBSTRING Функция выполняет выделение подстроки из заданной строки, Например, в результате вычисления выражения SUBSTRING( Bеесh' FROM 1 TO 3) будет получено значение 'Bee'
САSЕ Оператор возвращает одно из значений заданного набора исходя из результатов проверки выполнения указанных условий. Например: CASE type WHEN ‘дом’ THEN 1 WHEN ‘квартира’ THEN 2 ELSE 0 END
CURRENT_DАТЕ Функция возвращает текущую дату
CURRENT_TIME Функция возвращает текущее время. Например, выражение CURRENT TIME(6) возвратит текущее время с точностью до микросекунд
EXTRACT Функция возвращает значение указанного поля из значения типа даты или времени. Например, в результате вычисления выражения EXTRACT(YEAR FROM staff dob) будет извлечено значение года в колонке Dob записи таблицы Staff

В различных СУБД процедура создания баз данных существенно отличается. В многопользовательских системах право создания баз данных обычно закрепляется только за администратором базы данных (АБД). В однопользовательских системах принимаемая по умолчанию база данных может быть создана непосредственно в процессе установки и настройки параметров самой СУБД.

В соответствии со стандартом ISO, таблицы и другие объекты базы данных существуют в некоторой среде (environment). Помимо всего прочего, каждая среда состоит из одного или более каталогов (catalog), а каждый каталог — из набора схем (shema). Схема представляет собой поименованную коллекцию объектов базы данных, которые некоторым образом связаны друг с другом (все объекты в базе данных должны быть описаны в той или иной схеме). Объектами схемы могут быть таблицы, представления, домены, утверждения, сопоставления, толкования и наборы символов. Все объекты схемы имеют одного и того же владельца и множество общих значений, принимаемых по умолчанию.

Стандарт оставляет право выбора конкретного механизма создания и уничтожения каталогов за разработчиком СУБД.

однако регламентирует механизм создания и удаления схем. Оператор определения схемы имеет следующий формат (упрощенно):

CREATE SCHEMA [name | AUTHORIZATION creator-identifier]

Таким образом, если создателем схемы под именем sql test будет пользователь Smith, то данный оператор будет выглядеть следующим образом:

CREATE SCHEMA sql tests AUTHORIZATION Smith;

В стандарте ISO также указано, что должна существовать возможность определить в рамках данного оператора диапазон возможностей, доступных пользователям создаваемой схемы. Однако конкретные способы определения подобных привилегий в разных СУБД различаются между собой.

Схема удаляется с помощью оператора DROP SCHEMA, который имеет следующий формат:

DROP SCHEMA паше [ RESTRICT I CASCADE ]

Если указано ключевое слово RESTRICT (именно оно принимается по умолчанию), схема должна быть пустой, иначе выполнение операции будет отменено. Если указа- но ключевое слово CASCADE, при выполнении оператора будут автоматически удалены все связанные с удаляемой схемой объекты, причем в порядке, указанном выше. Если одна из этих операций удаления будет завершена неудачно, выполнение всего оператора DROP SCHEMA будет отменено. Общий эффект от выполнения оператора DROP SCHEMA с параметром CASCADE может оказаться весьма обширным, поэтому подобные операторы должны вводиться с исключительной осторожностью.

В настоящее время операторы CREATE SCHEMA и DROP SCHEMA реализованы в очень немногих СУБД.

Для создания БД используется оператор SQL, имеющий формат:

CREATE {DATABASE | SCHEMA} "<имя_файла>"
[ USER "имя_пользователя" [PASSWORD "пароль"]]
[PAGE_SIZE [=] целое]
[LENTH [=] целое]
[DEFAULT CHARACTER SET набор символов]

"<имя_файла>" Имя файла, в котором будет храниться содержимое БД
"имя_пользователя" "пароль" Имя пользователя и пароль, которые проверяются при соединении пользователя с сервером
PAGE_SIZE [=] целое Размер страницы БД в байтах (1024, 2048, 4096, 8192)
LENTH [=] целое Длина файла в страницах (>50, по умолчанию 75)
DEFAULT CHARACTER SET набор символов Определяет набор символов, применяемый в БД. Например, WIN1251