Список стандартных функций

Функция Возвращаемый результат
Bit_Length(<строка>) Количество битов в <строке>
Cast(<значение> As <тип данных>) <значение>, преобразованное в указанный <тип данных>
Char[acter]_Length(<строка>) Длина <строки> символов
Convert(<строка> using <функция>) <строка>, преобразованная в соответствии с указанной <функцией>
Current_Date Текущая дата
Current_Time(<точность>) Текущее время с указанной <точностью>
Current_TimeStamp(<точность>) Текущая дата и время с указанной <точностью>
Extract(<часть> from <значение>) Указанная <часть> (Day, Hour и т.п.) из <значения> даты
Lower(<строка>) <строка>, преобразованная к нижнему регистру
Octet_Length(<строка>) Число байтов в <строке>
Position(<строка1> in <строка2>) Позиция, с которой <строка1> входит в <строку2>
Substring(<строка> from for <длина>) Часть <строки>, начинающаяся с позиции и имеющая указанную <длину>
Trim(Leading|Trailing|Both <символ> from <строка>) <строка>, у которой удалены ведущие | концевые | с обоих сторон <символы>
Upper(<строка>) <строка>, преобразованная к верхнему регистру
User Определяет идентификатор пользователя

2) Обзор функций MS SQL Server
Так в SQL Server предусмотрено много функций, разделенных на следующие группы:
→ Строковые;
→ Математические;
→ Преобразования;
→ Для работы с данными типа Text и Image;
→ Для работы с датами;
→ Системные;
→ Ниладические (нульместные – без параметров).
А так же целый ряд других функций.

3) Обзор функций Oracle
→ Для работы с ошибками;
→ Числовые;
→ Строковые;
→ Преобразования;
→ Трансляции, для работы с датами;
→ Различного назначения.

Объявление хранимой функции

CREATE FUNCTION <имя функции> ([<имя параметра> <тип данных> [(<размер>)], …]) RETURNS <тип данных> [(<размер>)] [[NOT]DETERMINISTIC] [CONTAINS SQL|READS SQL DATA|MODIFIES SQL DATA] BEGIN <SQL-операторы> RETURN <возвращаемое значение> END

Ключевые слова
[NOT] DETERMINISTIC показывает, возвращает или нет функция одинаковые значения при одних и тех же входных значениях. Например, функция CURRENT_TIME является NOT DETERMINISTIC.
CONTAINS SQL показывает, что в функции нет SQL-операторов, читающих и модифицирующих данные. Это значение установлено по умолчанию.
READS SQL DATA показывает, что функция содержит инструкции SELECT или FETCH.
MODIFIES SQL DATA показывает, что функция содержит инструкции INSERT, UPDATE или DELETE.

 

 

Как бы тщательно не планировалась структура таблицы, иногда возникает необходимость внести в нее некоторые изменения. Предположим, что в уже сформированную таблицу «Преподаватели» необходимо добавить номер домашнего телефона и домашний адрес. Эту операцию можно выполнять различными путями. Например, можно удалит таблицу со старой структурой и создать вместо нее новую таблицу с нужной структурой. Недостатком этого метода является то, что необходимо будет куда-то скопировать имеющиеся в таблице данные и переписать их в новую таблицу после ее создания.
Специальная команда ALTER TABLE предназначена для модификации структуры таблицы. С ее помощью модно изменять свойства существующих столбцов, удалять или добавлять в таблицу столбцы, а также управлять ограничением целостности как на уровне столбца, так и на уровне таблицы, т.е. выполнять следующие функции:
• добавить в таблицу определение нового столбца;
• удалить столбец из таблицы;
• изменить значение по умолчанию для какого-либо столбца;
• добавить или удалить первичный ключ таблицы;
• добавить или удалить внешний ключ таблицы;
• добавить или удалить условие уникальности;
• добавить или удалить условие на значение.
Рассмотрим общий синтаксис команды ALTER TABLE:
ALTER TABLE<имя_таблицы>
[ALTER COLUMN <имя_столбца> [SET DEFAULT <выражение>] | [DROP DEFAULT] ]
|[ADD <определение_столбца>]
|[DROP COLUMN <имя_столбца> [CASCADE] | [RESRTICT]]
|[ADD [<определение_первичного_ключа>] | [<определение_внешнего_ключа>] | [<условие_уникальности>] | [<условие_на_значение>]]
|[DROP CONSTRAINT <имя_ограничения> [CASCATE] | [RESTRICT]]
Команда ALTER TABLE берет на себя все действия по копированию данных во временную таблицу, удалению старой таблицы и созданию вместо нее новой таблицы с нужной структурой и последующим переписыванием в нее данных.
Назначение многих параметров и ключевых слов команды ALTER TABLE аналогично назначению соответствующих параметров и ключевых лов команды CREATE TABLE (например, синтаксис конструкции <определение_столбца> совпадает с синтаксисом аналогичной конструкции CREATE TABLE).
Основные режимы использования команды ALTER TABLE следующие:
• добавление столбца;
• удаление столбца;
• модификация столбца;
• изменение, добавление и удаление ограничений (первичных и внешних ключей, значений по умолчанию).
1. Добавление столбца.
ALTER TABLE Студенты
ADD Год_поступления INTEGER NOT NUL DEFAULT YEAR(GETDATE())
В структуру таблицы «Студент» будет добавлен еще один столбец со значением по умолчанию, равным текущему году.
2. Модификация столбца.
Для модификации существующего столбца служит ключевое слово ALTER COLUMN. Изменение столбца невозможно, если:
• столбец участвует в ограничениях PRIMARY KEY или FOREGIG KEY;
• на столбец наложены ограничения целостности CHECK или UNIQUE (исключение – столбцы, имеющие тип данных переменной длины, т.е. типы данных, начинающиеся на var);
• со столбцом связано значение по умолчанию.
Определяя для столбца новый тип данных, следует помнить о том, что старый тип данных должен конвертироваться в новый.
ALTER TABLE Студенты
ALTER COLUMN Номер_группы CHAR(6) NOT NULL
3. Удаление столбца.
Нельзя удалять столбцы с ограничением целостности CHECK, FOREIGN KEY, UNIQUE или PRIMARY KEY, а также столбцы, для которых определены значения по умолчанию.
ALTER TABLE Студенты
DROP COLUMN Год_поступления

Удаление таблиц.
Невозможно удалить таблицу, если та нее с помощью ограничения целостности FOREIGN KEY ссылается другая таблица: попытка удаления таблицы «Дисциплины» вызовет сообщение об ошибке, так как на таблицу «Дисциплины» ссылается таблица «Учебный_план»: DROP TABLE Дисциплины.

40)+Microsoft SQL Server. Резервное копирование и восстановление.

 

В процессе функционирования SQL Server в силу различных причин может произойти сбой в работе сервера, что может привести к повреждению баз данных. Вы должны быть готовы воспользоваться имеющимися резервными копиями, чтобы восстановить работоспособность сервера в минимальный срок. Поскольку очень важно как можно быстрее предоставить пользователям возможность нормально работать с базами данных, следует иметь четкий и проверенный план действий по восстановлению.

SQL Server обладает возможностями автоматического восстановления при сбое системы. Каждый раз, когда происходит открытие базы данных, например, при запуске системы, SQL Server проверяет целостность баз данных, анализируя соответственные журналы транзакций. Для анализа используется участок журнала, содержащий сведения обо всех транзакциях, произошедших, начиная с момента выполнения последней операции CHECKPOINT, и заканчивается остановкой SQL Server. Система обнаруживает транзакции, которые не завершены, и производит их откат (roll back). Одновременно с этим происходит поиск завершенных транзакций, которые не были сохранены на диске, и осуществляется их фиксация (forward back). Это гарантирует, что в случае неудачного завершения работы сервера при его следующем запуске будут сохранены целостность и постоянство данных.

Вы можете инициировать процесс восстановления базы данных в любой момент, когда сочтете это нужным. Однако в SQL Server встроены внутренние механизмы, которые препятствуют случайному стиранию базы данных вследствие невнимательности. Процесс восстановления будет прерван в случае, если вы пытаетесь восстановить базу данных, которая уже имеется на сервере, и при этом база данных, которую вы пытаетесь восстановить, отличается от базы данных, содержащейся в резервной копии, либо имена этих двух баз данных не совпадают. С другой стороны, вы можете отключить вышеуказанные меры предосторожности.

Можно прибегнуть к восстановлению данных с резервных и с том случае, когда необходимо создать на другом сервере абсолютно идентичную копию существующей базы данных.

Восстановление данных подразумевает загрузку последней архивной копии данных и всех архивных копий журнала транзакций, выполненных с момента архивирования данных. Таким образом, данные восстанавливаются по состоянию на момент создания последней архивной копии журнала транзакций. Если повреждено устройство, на котором размещена БД, и это повлекло за собой потерю данных, данные могут быть восстановлены путем загрузки последних архивных копий данных и тех копий журнала транзакций, которые удалось восстановить.

При восстановлении данных и журнала транзакций необходимо учитывать следующее:

• Когда БД восстанавливается на основе архивной копии, она должна быть закрыта, так как данные в этой БД перезаписываются на загружаемые данные.

• Если данные восстанавливаются из-за повреждения физического устройства, в первую очередь необходимо стереть поврежденную БД. Это можно выполнить с помощью команды DROP DATABASE или системной процедуры sp_dbremove. Только после этого можно пересоздать БД и восстановить данные из архивной копии.

• Загрузка архивной копии журнала транзакций выполняется путем повторного выполнения записанных в нем изменений и отмены транзакций, которые не были завершены на момент создания архивной копии.

• Архивные копии журнала транзакций должны загружаться в последовательности, в которой были созданы. SQL Server проверяет дату и время создания архивных копий БД и журнала транзакций для контроля правильной последовательности использования копий. После завершения загрузки всех архивных копий журнала транзакций содержание БД восстанавливается в том виде, в котором оно существовало на момент создания последней копии журнала транзакций (за исключением незавершенных транзакций). Такой процесс позволяет восстановить максимально возможный объем данных, потерянных из-за отказа системы.

• Если БД создана с опцией FOR LOAD, а затем в нее загружена архивная копия данных, то эта БД получает статус «dbo use only» — «только для владельца БД». Таким образом, перед ее использованием другими пользователями вы должны отменить этот статус.