Создание баз данных
Скалярные операторы
Язык 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 |