Программирование в Microsoft SQL Server 2000

         

Создание объектов


Объекты базы данных создаются программным путем с помощью оператора CREATE. Точный синтаксис оператора CREATE различен для каждого объекта, однако объекты, которые вы можете создавать, а также базовый синтаксис оператора CREATE для каждого объекта, вы можете найти в таблице 22.1.

Таблица 22.1. Операторы CREATE.

Синтаксис оператора CREATEСоздаваемый объект
CREATE DATABASE <имя>Создает базу данных
CREATE DEFAULT <имя> AS < выражение_константы >Создает значение по умолчанию
CREATE FUNCTION <имя> RETURNS <возвращаемое_значение> AS <операторы_tsql>Создает пользовательскую функцию (См. урок 30, "Пользовательские функции")
CREATE INDEX <имя> ON <таблица_или_представление> (<индексируемые_столбцы>)Создает индекс в таблице или представление
CREATE PROCEDURE <имя> AS < операторы_tsql>Создает хранимую процедуру (См. урок 28, "Хранимые процедуры")
CREATE RULE <имя> AS <условное_выражение>Создает роль базы данных
CREATE SCHEMA AUTHORIZATION <владелец> <определения_объектов>Создает таблицы, представления и разрешения как один объект
CREATE STATISTICS <имя> ON < таблица_или_представление> (<столбцы>)Создает статистические данные, используемые оптимизатором запросов
CREATE TABLE <имя> (<определение_таблицы>)Создает таблицу
CREATE TRIGGER <имя> {FOR | AFTER | INSTEAD OF} < действие_dml> AS <операторы_tsql>Создает триггер (См. уроку 29, "Триггеры")
CREATE VIEW <имя> AS < оператор_выборки>Создает представление

Из операторов CREATE, рассмотренных в таблице 22.1, только оператор CREATE TABLE является достаточно сложным. Это вызвано тем, что определение таблицы составляет несколько различных элементов. Вы должны определить столбцы, а каждый столбец должен иметь имя и тип данных. Вы можете задать для столбцов возможность использования нулевых (NULL) значений идентификационной строке или в GUID, значение по умолчанию, любые ограничения, применимые к столбцу, а также несколько других свойств, которые мы не будем здесь рассматривать. Упрощенная версия синтаксиса, для определения столбцов имеет следующий вид:


<имя_столбца> <тип_данных> [NULL | NOT NULL] [ [DEFAULT <значение_по_умолчанию>] | [IDENTITY [(начальное_значение>, <шаг_увеличения>)[NOT FOR REPLLCATION]]]] [ROWGUIDCOL] [<ограничение_для_столбца>[, <ограничение_для_столбца>...]]

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

Описание для <ограничение_для_столбца> представлено ниже:

[CONSTRAINT <имя_ограничения] [ [PRIMARY KEY | UNIQUE] [CLUSTERED | NONCLUSTERED] | [[FOREIGN KEY] REFERENCES <ссылочная_таблица> (имя_столбца)] | [CHECK [NOT FOR REPLICATION] (<логическое выражение>)] ]

Вы можете задавать более одного выражения <ограничение_для_столбца> для столбца, но при этом вы должны задать тип каждого ограничения (PRIMARY KEY/UNIQUE, FOREIGN KEY или CHECK).

Все это выглядят несколько пугающе, но если вы начнете с основных определений (например, MyColumn varchar 20) и будете просто добавлять необходимые фразы, то увидите, что все не так уж сложно. Как и в приведенных ниже примерах, вам почти никогда не придется использовать более двух или трех фраз в одном определении столбца:

MyColumn varchar(20) MyColumn varchar(20) NOT NULL MyColumn varchar(20) PRIMARY KEY CLUSTERED MyColumn varchar(20) IDENTITY (1, 1) PRIMARY KEY CLUSTERED MyColumn varchar(20) NOT NULL FOREIGN KEY REFERENCES Oils (OilName)




увеличить изображение

  • Нажмите клавишу F5, чтобы обновить содержимое экрана. В списке появится SimpleTable.


    увеличить изображение



  • Совет. Если окно Query (Запрос) отобразит сообщение о том, что объект с именем "SimpleTable" уже существует, то вам не следует щелкать на Object Browser перед нажатием клавиши F5.

    Создайте таблицу с ограничением внешнего ключа.

    1. В окне запроса выберите вкладку Editor (Редактор) и в панели инструментов анализатора запросов Query Analyzer нажмите кнопку Clear Window (Очистить окно)
      для очистки содержимого панели редактирования Editor Pane.
    2. В панели редактирования введите следующий оператор:

      CREATE TABLE RelatedTable ( RelatedID smallint IDENTITY (1,1) PRIMARY KEY CLUSTERED, SimpleID smallint REFERENCES SimpleTable (SimpleID), RelatedDescription varchar(20) )



    3. Чтобы выполнить оператор, в панели инструментов анализатора запросов Query Analyzer нажмите на кнопку Execute Query (Выполнить запрос).
      Query Analyzer создаст таблицу.
    4. Чтобы выбрать Object Browser, щелкните на любом месте в его панели.
    5. Нажмите клавишу F5, чтобы обновить содержимое экрана. Object Browser отобразит в папке User Tables новую таблицу RelatedTable.


      увеличить изображение



    Создайте представление

    1. В окне запроса выберите вкладку Editor (Редактор) и в панели инструментов анализатора запросов Query Analyzer нажмите кнопку Clear Window (Очистить окно)
      для очистки содержимого панели редактирования Editor Pane.
    2. В панели редактирования введите следующий оператор:

      CREATE VIEW SimpleView AS

      SELECT RelatedID, SimpleDescription, RelatedDescription FROM RelatedTable INNER JOIN SimpleTable ON RelatedTable.SimpleID = SimpleTable.SimpleID



    3. Для выполнения оператора, в панели инструментов анализатора запросов Query Analyzer нажмите на кнопку Execute Query (Выполнить запрос).
      Query Analyzer создаст представление.
    4. В Object Browser раскройте папку View для базы данных Aromatherapy. (Если папка View уже раскрыта, щелкните на любом месте в панели Object Browser для ее выбора.)


      увеличить изображение

    5. Нажмите клавишу F5, чтобы обновить содержимое экрана. Object Browser отобразит в папке View новое представление SimpleView.




      увеличить изображение



    Создайте индекс

    1. В окне запроса выберите вкладку Editor (Редактор) и в панели инструментов анализатора запросов Query Analyzer нажмите кнопку Clear Window (Очистить окно)
      для очистки содержимого панели редактирования Editor Pane.
    2. В панели редактирования введите следующий оператор:

      CREATE INDEX SimpleIndex ON SimpleTable (SimpleDescription)



    3. Для выполнения оператора в панели инструментов анализатора запросов Query Analyzer нажмите на кнопку Execute Query (Выполнить запрос).
      Query Analyzer создаст индекс.
    4. В таблице SimpleTable раскройте папку Indexes и убедитесь, что индекс SimpleIndex добавлен.


      увеличить изображение




    Содержание раздела