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

          

Использование фразы HAVING


Фраза HAVING ограничивает строки, возвращаемые фразой GROUP BY, таким же образом, как фраза WHERE ограничивает строки, возвращаемые фразой SELECT. В один оператор SELECT может быть включена и фраза WHERE, и фраза HAVING – при этом фраза WHERE применяется до операции группировки, а фраза HAVING – после нее.

Синтаксис фразы HAVING идентичен синтаксису фразы WHERE, за исключением того, что фраза HAVING может включать одну из функций агрегирования, включенных в список столбцов фразы SELECT. Заметим, однако, что вы должны повторять функцию агрегирования. Например, фраза HAVING, используемая в следующем операторе, является корректной:

SELECT PlantParts.PlantPart, Count(Oils.OilName) as NumberOfOils FROM Oils INNER JOIN PlantParts ON Oils.PlantPartID = PlantParts.PlantPartID GROUP BY PlantParts.PlantPart HAVING Count(Oils.OilName) > 3

Однако вы не можете использовать псевдоним для функции Count в фразе HAVING. Следовательно, приведенная ниже фраза HAVING не будет правильной:

HAVING NumberOfOils > 3

Создайте запрос с использованием ключевого слова HAVING в панели сетки Grid Pane

Скройте панель SQL Pane

Программирование в Microsoft SQL Server 2000
и отобразите панель сетки Grid Pane.
Программирование в Microsoft SQL Server 2000

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

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

Добавьте > 5 в ячейку Criteria столбца OilName.

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

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

Нажмите кнопку Run (Выполнить)

Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы повторно исполнить запрос.

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

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



Использование ключевого слова GROUP BY


Фраза GROUP BY может быть задана с использованием любой из панелей конструктора запросов, но лучше всего это делать с помощью панели сетки Grid Pane и панели SQL Pane.

Создайте запрос GROUP BY с использованием панели сетки Grid Pane

Скройте панель SQL Pane

Программирование в Microsoft SQL Server 2000
и отобразите панель сетки Grid Pane.
Программирование в Microsoft SQL Server 2000

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

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

Добавьте в запрос столбец OilName.

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

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

Нажмите кнопку Group By (Сгруппировать)

Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов. Конструктор запросов Query Designer добавит столбец Group By в сетку и установит оба значения равными Group By.

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

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

Измените значение ячейки Group By для строки OilName на Count.

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

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

Нажмите кнопку Run (Выполнить)

Программирование в Microsoft SQL Server 2000
, чтобы повторно исполнить запрос. Конструктор запросов Query Designer отобразит количество элементов OilName для каждого типа PlantType.

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

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



Использование оператора SELECT DISTINCT


Ключевое слово DISTINCT может быть задано в операторе SQL конструктора запросов Query Designer, либо путем установки свойств запроса.

Создайте запрос SELECT DISTINCT с использованием панели диаграмм Diagram Pane

Откройте конструктор запросов Query Designer для таблицы Oils, щелкнув правой кнопкой мыши на имени таблицы в рабочей панели Details Pane, укажите на Open Table (Открытие таблицы) и выберите Return All Rows (Показать все строки).Отобразите панель диаграмм Diagram Pane, щелкнув на кнопке Diagram Pane (Панель диаграмм)

Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов.

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

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

Нажмите кнопку Add Table (Добавить таблицу).

Программирование в Microsoft SQL Server 2000
Конструктор запросов Query Designer отобразит диалоговое окно Add Table (Добавление таблицы).

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

Выберите PlantParts в списке таблиц и нажмите Add (Добавить). Конструктор запросов Query Designer добавит таблицу в запрос.Нажмите кнопку Close (Закрыть), чтобы закрыть диалоговое окно.

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

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

Щелкните на кнопке SQL Pane (Панель SQL)

Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов. Конструктор запросов Query Designer отобразит панель SQL Pane.

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

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

Удалите знак * после ключевого слова SELECT.

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

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

Щелкните на кнопке SQL Pane (Панель SQL) в панели инструментов конструктора запросов. (Нажмите ОК, если конструктор запросов отобразит сообщение об ошибке в синтаксисе оператора SELECT.) Конструктор запросов Query Designer скроет панель SQL Pane.

Внимание! Когда вы открываете конструктор запросов Query Designer, базовым оператором SQL всегда является SELECT *. Выбор определенных столбцов в панели диаграмм Diagram Pane приводит к добавлению их в список столбцов. Эта возможность предусмотрена Microsoft.


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


Установите флажок DISTINCT Values (Различать значения).

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


Нажмите кнопку Close (Закрыть), чтобы закрыть диалоговое окно.Нажмите кнопку Run (Выполнить)
Программирование в Microsoft SQL Server 2000
, чтобы повторно исполнить запрос.

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

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

Конструктор запросов Query Designer отобразит каждое значение лишь единожды.

Создайте запрос SELECT DISTINCT с использованием панели SQL Pane

Скройте панель диаграмм Diagram Pane
Программирование в Microsoft SQL Server 2000
и отобразите панель SQL Pane
Программирование в Microsoft SQL Server 2000
.Замените имеющийся оператор SELECT на следующий:

SELECT DISTINCT PlantTypes.PlantType FROM Oils INNER JOIN PlantTypes ON Oils.PlantTypeID = PlantTypes.PlantTypeID

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

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

Нажмите кнопку Run (Выполнить)
Программирование в Microsoft SQL Server 2000
, чтобы повторно исполнить запрос. Конструктор запросов Query Designer отобразит отличающиеся значения PlantType, имеющиеся в таблице Oils.

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

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




Оператор GROUP BY


Ключевое слово DISTINCT инструктирует SQL Server возвращать только уникальные строки, в то время как фраза GROUP BY инструктирует SQL Server объединять строки с одинаковыми значениями в столбце или в столбцах, заданных во фразе, в одну строку.

Внимание! Каждая строка, включенная во фразу GROUP BY, должна быть включена в выход запроса.

Фраза GROUP BY чаще всего используется совместно с функцией агрегирования. Функция агрегирования выполняет вычисления над множеством значений и возвращает в результате единственное значение. Наиболее распространенными функциями агрегирования, используемой с GROUP BY, являются: функция MIN, которая возвращает наименьшее значение во множестве, функция MAX, которая возвращает наибольшее значение во множестве, и функция COUNT, возвращающая количество значений во множестве.



Оператор SELECT DISTINCT


Хотя одной из целей применения реляционной модели базы данных является устранение повторяющихся данных, большинство баз данных неизбежно будут содержать одинаковые значения в нескольких строках. Например, таблица, содержащая информацию об адресах клиентов, будет, вероятно, включать одни и те же значения страны и штата для многих строк. Это не создает повторы строк и вполне допустимо, поскольку каждое значение штата является атрибутом отдельного клиента. Аналогично, таблица на стороне многих в отношении один-ко-многим может иметь любое заданное значение внешнего ключа, повторяющееся многократно. Это не только не является неправильным, но и необходимо для реляционной целостности базы данных.

Однако это повторение может дать двусмысленные результаты после выполнения запроса. Для упомянутой таблицы клиентов Customer, содержащей, допустим, 10000 строк, из которых 90 процентов относятся к клиентам из Калифорнии, следующий запрос возвратит значение CA (штат Калифорния) 9000 раз – результат, который едва ли можно назвать полезным.

SELECT State FROM Customer

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

SELECT DISTINCT State FROM Customer

Совет. Ключевое слово DISTINCT имеет антипод ALL, который инструктирует SQL Server возвращать все строки, как уникальные, так или нет. Поскольку этот режим действует для оператора SELECT, слово ALL обычно не используется, но вы можете его включить, если при этом синтаксис запроса становится более понятным и очевидным.



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


Создав представление, вы можете использовать его точно так же, как таблицу. Вы можете открыть его в Enterprise Manager с использованием конструктора представлений View Designer, либо включить его в другие запросы.

Если вы открываете конструктор представлений View Designer для существующего представления, Enterprise Manager трактует его как виртуальную таблицу. Базовым оператором SQL является либо SELECT * FROM <имя представления>, либо SELECT TOP n FROM <имя представления>, но не оператор запроса, создавший представление.

Откройте конструктор View Designer для представления

Перейдите к папке Views базы данных Aromatherapy в дереве консоли Console Tree. Enterprise Manager отобразит список представлений для базы данных.

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

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

Щелкните правой кнопкой мыши на OilPropertiesExtended в рабочей панели Details Pane, укажите на Open View (Открытие представления) и выберите Return All Rows (Показать все строки). Enterprise Manager откроет конструктор представлений View Designer для данного представления.

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

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

Щелкните на кнопке SQL Pane (Панель SQL)

Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора представлений. Конструктор представлений View Designer отобразит панель SQL Pane, содержащую оператор SELECT для представления.

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

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

Закройте конструктор представлений View Designer.


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


Откройте вкладку Views (Представления) в диалоговом окне Add Table (Добавление таблицы).

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


Выделите OilPropertiesExtended в списке представлений, нажмите кнопку Add (Добавить), чтобы добавить представление в запрос, а затем нажмите кнопку Close (Закрыть), чтобы закрыть диалоговое окно. Конструктор запросов Query Designer добавит представление в запрос.

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

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

Щелкните на кнопке SQL Pane (Панель SQL).
Программирование в Microsoft SQL Server 2000
Конструктор запросов Query Designer отобразит оператор SELECT для запроса.

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

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

В панели SQL Pane замените * на Oils.OilName, OilPropertiesExtended.Property.

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

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

Щелкните на кнопке SQL Pane (Панель SQL)
Программирование в Microsoft SQL Server 2000
, чтобы скрыть панель SQL Pane.

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

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

Нажмите кнопку Run (Выполнить)
Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит столбцы OilName Property.

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

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

Закройте конструктор запросов Query Designer.


Изменение представлений


Представление может быть изменено двумя способами: вы можете изменить его имя, либо вы можете изменить базовый оператор SQL для представления.

Переименуйте представление

Перейдите к папке Views базы данных Aromatherapy в дереве консоли Console Tree. Enterprise Manager отобразит список представлений для базы данных.

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

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

Щелкните правой кнопкой мыши на представлении OilPropertiesExtended в рабочей панели Details Pane и выберите Rename (Переименовать). Enterprise Manager выделит имя представления.

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

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

Измените имя представления на OilPropExt и нажмите клавишу Enter. Enterprise Manager отобразит диалоговое окно, предупреждающее, что изменение имени представления сделает использование любых других объектов, которые на него ссылаются, некорректным.

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

Нажмите Yes (Да). Enterprise Manager подтвердит изменение имени представления.

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

Модифицируйте представление

Щелкните правой кнопкой мыши на OilCautionsExtended в рабочей панели Details Pane и выберите Design View (Конструирование представления). Enterprise Manager откроет конструктор View Designer для представления.

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

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

Скройте панель SQL Pane, щелкнув на кнопке SQL Pane (Панель SQL)

Программирование в Microsoft SQL Server 2000
, и скройте панель результатов Results Pane, щелкнув на кнопке Results Pane (Панель результатов).
Программирование в Microsoft SQL Server 2000

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

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

Добавьте столбец OilID в таблицу Oils представления.

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

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

Нажмите кнопку Save (Сохранить)

Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора представлений. Конструктор представлений View Designer сохранит новое определение представления. Закройте конструктор представлений View Designer.



Понятие о представлениях


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

Вы можете считать представление виртуальной таблицей. Она может использоваться точно так же, как обычная таблица. Возможность использования результатов выполнения одного оператора SELECT в качестве входной информации для другого оператора SELECT является одним из фундаментальных требований реляционной модели. Это требование основано на принципе замкнутости.

Индексированные представления

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

Индексированные представления работают лучше, если базовые данные меняются не слишком часто; в противном случае затраты на сопровождение индексированного представления будут выше, чем если бы вы пересчитывали представление по мере необходимости. Индексированные представления лучше всего использовать для следующих двух типов запросов:

запросы связывания и агрегирования, которые обрабатывают большое количество строк;операции связывания и агрегирования, которые часто выполняются в других запросах.



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


Enterprise Manager предусматривает два метода для создания нового представления: мастер создания представления Create View Wizard, который проводит вас по всем этапам процедуры создания представления; и команда New View (Создать представление), которая открывает конструктор представлений View Designer. Конструктор представлений аналогичен конструктору запросов, за исключением того, что он дает возможность сохранять созданный вами оператор SELECT. Мастер создания представлений Create View Wizard является полезным инструментом, но иногда проще создать представление с помощью конструктора представлений View Designer.

Создайте представление с использованием мастера Create View Wizard

Нажмите кнопку Wizard (Мастер)

Программирование в Microsoft SQL Server 2000
в панели инструментов Enterprise Manager. Enterprise Manager отобразит диалоговое окно Select Wizard (Выбор мастера).

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

Раскройте раздел Database, выберите Create View Wizard и нажмите ОК. Enterprise Manager отобразит первую страницу мастера создания представлений Create View Wizard.

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

Нажмите Next (Далее). Мастер создания представлений Create View Wizard отобразит страницу, запрашивающую имя базы данных, к которой будет относиться представление. Выберите базу данных Aromatherapy.

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

Нажмите Next (Далее). Мастер создания представлений отобразит страницу, предлагающую вам выбрать объекты для включения в представление.

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


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


Нажмите Finish (Готово). Мастер создания представлений Create View Wizard отобразит сообщение, подтверждающее создание представления.

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




Создайте представление с использованием конструктора View Designer

В дереве консоли Console Tree Enterprise Manager перейдите к папке Views базы данных Aromatherapy. Enterprise Manager отобразит список имеющихся представлений.

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

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

Нажмите New (Создать)
Программирование в Microsoft SQL Server 2000
в панели инструментов Enterprise Manager. Enterprise Manager откроет конструктор представлений View Designer с отображением всех четырех панелей.

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

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

Щелкните на кнопке Add Table (Добавить таблицу)
Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора представлений. Конструктор представлений View Designer отобразит диалоговое окно Add Table (Добавление таблицы).

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


На вкладке Tables (Таблицы) добавьте в запрос Properties, OilProperties и Oils, а затем нажмите Close (Закрыть), чтобы закрыть диалоговое окно.

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

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

В панели сетки Grid Pane выберите столбцы Oils.OilID, Oils.OilName и Properties.Property для отображения их в результате.

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

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

Нажмите кнопку Save (Сохранить).
Программирование в Microsoft SQL Server 2000
Конструктор запросов Query Designer отобразит диалоговое окно Save As (Сохранить как).

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


Введите OilPropertiesExtended в качестве имени представления.

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


Нажмите ОК. Конструктор представлений View Designer создаст новое представление.Закройте конструктор представлений View Designer.


Удаление представлений


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

Удалите представление

Щелкните правой кнопкой мыши на OilPropExt в рабочей панели Details Pane и выберите Delete (Удалить). Enterprise Manager отобразит диалоговое окно, предлагающее вам подтвердить удаление.

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

Нажмите кнопку Drop All (Убрать все). Enterprise Manager удалит представление из базы данных.

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

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



Управление представлениями


Как и для других объектов базы данных, вполне вероятно, что у вас может возникнуть необходимость изменить представление. Это легко можно сделать средствами Enterprise Manager.



Использование оператора INSERT


Оператор INSERT может быть создан с использованием панели сетки Grid Pane путем задания столбцов, либо с использованием панели SQL Pane путем непосредственного ввода оператора.



Понятие об операторе INSERT


Синтаксис оператора INSERT похож на синтаксис оператора SELECT. Его базовая форма имеет следующий вид:

INSERT [INTO] таблица_или_представление [(список_столбцов)] VALUES (список_значений)

Каждый оператор INSERT может модифицировать только одну таблицу или представление. При использовании оператора INSERT для модификации представления следует учитывать следующие ограничения:

представление не должно содержать функций агрегирования, таких как COUNT или AVG;представление не должно содержать операторов TOP, GROUP BY, UNION или DISTINCT;представление не должно содержать вычисляемых столбцов;представление должно ссылаться на таблицу во фразе FROM;оператор INSERT модифицирует столбцы только из одной таблицы.

Список столбцов в операторе INSERT не является обязательным. Если он не указан, оператор INSERT должен включать значения для всех столбцов в таблице или представлении, а порядок их должен соответствовать порядку столбцов в таблице или представлении. Вы можете использовать ключевое слово DEFAULT, чтобы задать для строки значения, установленные по умолчанию.

Если список столбцов присутствует, формат его подобен формату, используемому для списка столбцов в операторе SELECT: имена столбцов отделяются запятыми. Поскольку оператор INSERT может добавлять строку только в одну таблицу, вам нет необходимости использовать идентификатор имени таблицы в имени столбца.



Вставка нескольких строк


Оператор INSERT имеет вторую форму, которая использует оператор SELECT вместо списка VALUES с целью задания значений для строки (или строк), которая будет добавлена. Эта форма оператора INSERT имеет следующий вид:

INSERT INTO таблица_или_представление [(список_столбцов)] SELECT [(список_столбцов) FROM таблица_или_представление [WHERE (условие)]

Фраза WHERE в операторе является необязательной. Если она отсутствует, в таблицу или представление, заданные в фразе INSERT, будут добавлены все строки из таблицы или представления, заданных в фразе FROM.

Вставьте несколько строк с использованием панели сетки Grid Pane

Перейдите к папке Tables базы данных Aromatherapy, щелкните правой кнопкой мыши на таблице MyOils, откройте Open Table (Открытие таблицы) и выберите Return All Rows (Показать все строки). Будет открыт новый экземпляр конструктора запросов Query Designer.

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

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

Не закрывая конструктор запросов Query Designer, откройте новое представление таблицы Oils, щелкнув правой кнопкой мыши на таблице Oils, открыв Open Table (Открытие таблицы) и выбрав Query (Запрос). Будет открыт новый экземпляр конструктора запросов Query Designer.

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

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

Скройте панель SQL Pane

Программирование в Microsoft SQL Server 2000
и панель Results Pane.
Программирование в Microsoft SQL Server 2000

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

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

Щелкните на кнопке Change Query Type (Изменить тип запроса)

Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов и выберите Insert From (Вставить из) в списке. Конструктор запросов Query Designer отобразит диалоговое окно, предлагающее вам выбрать таблицу-адресат.

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

Выберите MyOils из списка и нажмите ОК. Конструктор запросов Query Designer добавит в панель сетки Grid Pane столбец Append.

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

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

Измените запрос, чтобы вставить только столбцы OilName и LatinName.

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

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

Добавьте Left(OilName, 6) в качестве вычисляемого столбца в панель сетки Grid Pane, снимите флажок в ячейке вывода Output и установите в ячейке условия Criteria значение <> 'Insert'.

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

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

Нажмите кнопку Run (Выполнить)

Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение, подтверждающее, что запрос был исполнен.

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

Нажмите ОК, чтобы закрыть окно сообщения. Перейдите к окну конструктора запросов Query Designer, отображающему все строки в таблице MyOils.Нажмите кнопку Run (Выполнить)

Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы повторно исполнить запрос SELECT *.

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

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


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


Нажмите ОК, чтобы закрыть окно сообщения. Перейдите к окну конструктора запросов Query Designer, отображающему все строки в таблице MyOils.Нажмите кнопку Run (Выполнить)
Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы повторно исполнить запрос SELECT *.

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

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



Вставьте несколько строк с использованием панели SQL Pane

Перейдите к окну конструктора запросов Query Designer, содержащему оператор INSERT.Скройте панель диаграмм Diagram Pane
Программирование в Microsoft SQL Server 2000
и панель сетки Grid Pane
Программирование в Microsoft SQL Server 2000
и отобразите панель SQL Pane.
Программирование в Microsoft SQL Server 2000


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

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

Замените оператор SQL на следующий: INSERT INTO MyOils (OilName, LatinName) SELECT OilName, LatinName FROM Oils WHERE (LEFT(OilName, 6) = 'Insert')

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

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



Примечание. Единственное изменение здесь затрагивает только оператор WHERE.

Нажмите кнопку Run (Выполнить)
Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы исполнить запрос. Enterprise Manager отобразит сообщение, подтверждающее, что запрос был исполнен.

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


Нажмите ОК, чтобы закрыть окно сообщения. Перейдите к окну конструктора запросов Query Designer, отображающему все строки таблицы MyOils.Нажмите кнопку Run (Выполнить)
Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы повторно исполнить запрос SELECT *. Осуществите прокрутку до конца таблицы, чтобы убедиться, что новые строки были добавлены.

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

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

Закройте оба окна конструктора запросов Query Designer.


Вставка строк с использованием панели сетки Grid Pane


Панель сетки Grid Pane предоставляет самый простой способ создания оператора INSERT, поскольку при этом не требуется запоминать синтаксис оператора.

Вставьте строку с использованием панели сетки Grid Pane

Перейдите к папке Tables базы данных Aromatherapy, щелкните правой кнопкой мыши на таблице Oils в рабочей панели Details Pane, откройте меню Open Table (Открытие таблицы) и выберите Query (Запрос). Будет открыт конструктор запросов Query Designer с отображением четырех панелей.

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

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

Совет. Применение команды Query (Запрос) в меню Open Table (Открытие таблицы) или Open View (Открытие представления) является самым простым способом открыть конструктор запросов Query Designer с отображением всех панелей. Хотя устанавливаемым по умолчанию оператором SQL является SELECT * FROM <таблица_или_представление>, запрос не исполняется, поэтому никакие строки не возвращаются и не показываются.

Скройте панель SQL Pane

Программирование в Microsoft SQL Server 2000
и панель результатов Results Pane.
Программирование в Microsoft SQL Server 2000

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

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

Щелкните на кнопке Change Query Type (Изменить тип запроса)

Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов и выберите Insert Into (Вставить в) из списка. Конструктор запросов Query Designer изменит вид панели сетки Grid Pane, чтобы она отображала только ячейки Column и New Value.

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

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

Добавьте столбец OilName в панели сетки Grid Pane и установите для New Value значение 'InsertFromGrid'.

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

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

Нажмите кнопку Run (Выполнить)

Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение, подтверждающее, что в таблицу добавлена одна строка.

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

Нажмите ОК, чтобы закрыть окно сообщения. Не закрывая конструктор запросов Query Designer, откройте новое представление таблицы Oils, щелкнув правой кнопкой мыши на таблице Oils в рабочей панели Details Pane, указав на Open Table (Открытие таблицы) и выбрав Return All Rows (Показать все строки). Откроется новый экземпляр конструктора запросов, в котором будут отображены все строки из таблицы Oils.

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

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

Осуществите прокрутку до конца таблицы, чтобы убедиться, что новая строка добавлена.

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

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

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



Вставка строк с использованием панели SQL Pane


Хотя панель сетки Grid Pane предоставляет простой метод создания оператора INSERT, но использование панели SQL Pane, позволяющее вводить оператор непосредственно, предоставляет большие функциональные возможности.

Вставьте строку с использованием панели SQL Pane

Перейдите к окну конструктора запросов Query Designer, содержащему оператор INSERT.Скройте панель сетки Grid Pane

Программирование в Microsoft SQL Server 2000
и панель диаграмм Diagram Pane
Программирование в Microsoft SQL Server 2000
и отобразите панель SQL Pane.
Программирование в Microsoft SQL Server 2000

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

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

Замените оператор SQL на следующий:

INSERT INTO Oils (OilName) VALUES ('InsertFromSQL')

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

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

Нажмите кнопку Run (Выполнить)

Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение, подтверждающее, что строка добавлена.

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

Нажмите ОК, чтобы закрыть окно сообщения. Перейдите к окну конструктора запросов Query Designer, отображающему все строки из таблицы Oils.Нажмите кнопку Run (Выполнить)

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

в панели инструментов конструктора запросов, чтобы повторно исполнить запрос SELECT *, и осуществите прокрутку до конца таблицы, чтобы убедиться, что новая строка была добавлена.

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

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


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

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



Вставьте строку с использованием значений DEFAULT и NULL

Перейдите к окну конструктора запросов Query Designer, содержащему оператор INSERT.Измените оператор SQL следующим образом:

INSERT INTO Oils (OilName, LatinName, Sample) VALUES ('InsertDefault', NULL, DEFAULT)

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

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

Нажмите кнопку Run (Выполнить)
Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение, подтверждающее, что строка была добавлена.

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


Нажмите ОК, чтобы закрыть окно сообщения. Перейдите к окну конструктора запросов Query Designer, отображающему все строки из таблицы Oils.Нажмите кнопку Run (Выполнить)
Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы повторно исполнить запрос SELECT *, прокрутите окно до конца таблицы, чтобы убедиться, что новая строка была добавлена.

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

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

Закройте окна конструктора запросов Query Designer.


Использование оператора UPDATE


Как и большинство других форм запросов, вы можете создавать запрос UPDATE в конструкторе запросов Query Designer с использованием панели сетки Grid Pane, либо непосредственно вводя оператор в панели SQL Pane.



Модификация строк с использованием фразы FROM


Можно использовать фразу SELECT в операторе INSERT, чтобы вставить значения из другой таблицы (см. урок 17). Оператор UPDATE использует фразу FROM для извлечения значений из другой таблицы:

UPDATE таблица_или_представление SET объекты_изменения FROM таблица_или_представление оператор_связывания условие_связывания [WHERE (условие_ограничения)]

Фраза FROM здесь имеет тот же формат, что и фраза FROM в операторе SELECT. Так же, как и для оператора SELECT, вы можете задать более одной таблицы или представления путем добавления операторов связывания. Необязательное условие WHERE может использоваться для ограничения множества модифицируемых строк.

Модифицируйте строки с использованием оператора FROM

Вернитесь к окну конструктора запросов Query Designer, содержащему оператор UPDATE.Измените оператор SQL следующим образом:

UPDATE MyOils SET MyOils.PlantPartID = Oils.PlantPartID FROM MyOils INNER JOIN Oils ON MyOils.OilName = Oils.OilName

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

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

Внимание! Вы не можете использовать столбцы OilID для связывания двух таблиц, поскольку команды INSERT, которые вы использовали для добавления строк в уроке 17, создали новые значения OilID для каждой строки в таблице MyOils.

Нажмите кнопку Run (Выполнить)

Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение о количестве строк, подвергшихся изменениям.

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

Вернитесь к окну конструктора запросов Query Designer, отображающему все строки из таблицы MyOils.Нажмите кнопку Run (Выполнить)

Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы исполнить запрос SELECT *.

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

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



Модификация строк с использованием панели сетки Grid Pane


Панель сетки Grid Pane конструктора запросов предоставляет возможности для создания запроса UPDATE.

Модифицируйте все строки с использованием панели сетки Grid Pane

Перейдите к папке Tables базы данных Aromatherapy, щелкните правой кнопкой мыши на таблице MyOils в рабочей панели Details Pane, укажите на Open Table (Открытие таблицы) и выберите Query (Запрос). Будет открыт конструктор запросов Query Designer.

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

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

Скройте панель SQL Pane и панель диаграмм Diagram Pane, щелкнув на кнопке SQL

Программирование в Microsoft SQL Server 2000
и на кнопке Diagram (Диаграмма).
Программирование в Microsoft SQL Server 2000

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

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

Не закрывая конструктор запросов Query Designer, откройте новое представление таблицы MyOils, щелкнув правой кнопкой мыши на таблице MyOils в рабочей панели Details Pane, указав на Open Table (Открытие таблицы) и выбрав Return All Rows (Показать все строки). Будет открыт новый экземпляр конструктора запросов Query Designer, отображающий все строки из таблицы MyOils.

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

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

Перейдите в окно конструктора запросов Query Designer, отображающее панель сетки Grid Pane и панель результатов Results Pane. Щелкните на кнопке Change Query Type (Изменить тип запроса)

Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов и выберите Update (Модифицировать). Конструктор запросов добавит в сетку столбец нового значения New Value.

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

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

Добавьте столбец описания Description в панель сетки Grid Pane и установите на ячейке New Value значение "Description".

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

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

Нажмите кнопку Run (Выполнить)

Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение, подтверждающее, что строки были модифицированы.

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

Перейдите к окну конструктора запросов Query Designer, отображающему все строки из таблицы MyOils.Нажмите кнопку Run (Выполнить) в панели инструментов конструктора запросов, чтобы повторно исполнить запрос SELECT *.

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

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


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

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

Добавьте столбец OilName в сетку и установите для него в ячейке условия Criteria значение = "Basil".

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

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

Нажмите кнопку Run (Выполнить)
Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение, подтверждающее, что строка была модифицирована.

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


Перейдите к окну конструктора запросов Query Designer, отображающему все строки из таблицы MyOils.Нажмите кнопку Run (Выполнить)
Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы исполнить запрос SELECT *.

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

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




Модификация строк с использованием панели SQL Pane


Как и для других форм запросов, непосредственный ввод оператора UPDATE в панели SQL обеспечивает большую гибкость.

Модифицируйте все строки с использованием панели SQL Pane

Перейдите к окну, содержащему оператор UPDATE.Отобразите панель SQL Pane

Программирование в Microsoft SQL Server 2000
и скройте панель сетки Grid Pane.
Программирование в Microsoft SQL Server 2000

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

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

Измените оператор SQL следующим образом:

UPDATE MyOils SET Sample = "Sample Field"

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

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

Нажмите кнопку Run (Выполнить)

Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение о количестве строк, подвергшихся изменениям в результате выполнения запроса.

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

Перейдите к окну конструктора запросов Query Designer, отображающему все строки из таблицы MyOils.Нажмите кнопку Run (Выполнить)

Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы повторно исполнить запрос SELECT *.

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

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



Понятие об операторе UPDATE


Оператор UPDATE позволяет изменять значения в одной или в нескольких строках таблицы. Базовый синтаксис оператора UPDATE следующий:

UPDATE таблица_или_представление SET объекты_изменения [WHERE (условие)]

Подобно оператору INSERT, один оператор UPDATE может модифицировать только одну таблицу или представление. Для обновления представления с помощью оператора UPDATE существуют те же ограничения, что и для обновления представления с помощью оператора INSERT:

представление не должно содержать функций агрегирования, таких как COUNT или AVG;представление не должно содержать TOP, GROUP BY, UNION или DISTINCT;представление не должно содержать вычисляемых столбцов;представление должно ссылаться на таблицу, указанную в фразе FROM;оператор UPDATE должен модифицировать столбцы только из одной таблицы.

За ключевым словом SET следует перечень подлежащих обновлению столбцов, отделяемых запятыми, а также их новые значения. Форма записи при этом следующая: имя_столбца = новое_значение. Новое значение может быть константой или выражением, которое также может ссылаться на сам столбец. Например, выражение SalesPrice = SalesPrice * .90 будет уменьшать значения в столбце SalesPrice на 10 процентов.

Фраза WHERE является необязательной. Если она имеется, то должна задавать строки, подлежащие обновлению. Если фраза WHERE в операторе UPDATE отсутствует, будут модифицироваться все строки в таблице.



Использование оператора DELETE


Подобно другим операторам SQL, используемым в конструкторе запросов Query Designer, оператор DELETE может быть непосредственно введен в панели SQL Pane, либо создан с использованием графических панелей.



Оператор TRUNCATE TABLE


Результат выполнения оператора TRUNCATE TABLE идентичен результату выполнения оператора DELETE, для которого не указано условие WHERE, т.е. из таблицы удаляются все строки. Оператор TRUNCATE TABLE, отличается от оператора DELETE тем, что оператор TRUNCATE TABLE не записывается в журнал транзакций, что существенно ускоряет его выполнение.



Понятие об операторе DELETE


Базовая структура оператора DELETE несколько отличается от других операторов SQL, с которыми мы сталкивались ранее. Его синтаксис следующий:

DELETE таблица_или_представление [FROM источники_таблиц] [WHERE условие_отбора]

Список столбцов в операторе DELETE не указывается, поскольку при удалении строки удаляются также все столбцы. Необязательная фраза WHERE дает возможность указывать, какие строки следует удалить. Если фраза WHERE опущена, удаляются все строки в указанной таблице или представлении.

Фраза FROM, также необязательная, позволяет задавать дополнительные источники (таблицы или представления), которые будут использоваться в условии отбора в фразе WHERE. Подобный синтаксис оператора может ввести в заблуждение, поскольку строки не будут удаляться из таблиц и представлений, указанных в фразе FROM. Если в фразе FROM вы указываете более одной таблицы или представления, их имена следует отделять запятыми.

Совет. Оператор DELETE не поддерживает применение операции JOIN, поэтому вам следует связывать таблицы или представления в фразе WHERE оператора.

Если таблица участвует в отношении, важно не допустить, чтобы при удалении в главной таблице оставались "висячие" строки. Висячими строками называют строки в зависимой таблице (таблице внешнего ключа), которые не имеют соответствующих строк в главной таблице (таблице первичного ключа). Новинкой в SQL Server 2000 является возможность каскадных удалений в отношении. Если для отношения задается каскадное удаление, SQL Server автоматически удалит строки в зависимой таблице, чтобы не оставлять висячих строк. На рис. 19.1 показано отношение, установленное между таблицами Oils и PlantParts.

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

Рис. 19.1.  Каскадные удаления выполняются на вкладке Relationships (Отношения) диалогового окна Properties (Свойства).



Удаление строк с использованием панели сетки Grid Pane и панели диаграмм Diagram Pane


Панель сетки и панель диаграмм конструктора запросов Query Designer предоставляют графические средства для создания операторов DELETE; однако, они не поддерживают применение фразы FROM, которая дает возможность использовать в операторе DELETE дополнительные таблицы и представления.

Удалите избранные строки из таблицы

Перейдите к папке Tables базы данных Aromatherapy. SQL Server отобразит список таблиц в рабочей панели Details Pane.

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

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

Щелкните правой кнопкой мыши на таблице MyOils, укажите на Open Table (Открытие таблицы) и выберите Query (Запрос). Будет открыт конструктор запросов Query Designer.

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

Скройте панель SQL Pane

Программирование в Microsoft SQL Server 2000
и панель результатов Results Pane.
Программирование в Microsoft SQL Server 2000

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

Щелкните на кнопке Change Query Type (Изменить тип запроса)

Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, а затем выберите Delete (Удалить).

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

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



Удаление строк с использованием панели SQL Pane


Как и в других случаях, непосредственный ввод оператора DELETE в панели SQL Pane конструктора запросов Query Designer обеспечивает большую гибкость, однако при этом вам необходимо помнить синтаксис оператора.

Удалите строки с использованием фразы WHERE

Вернитесь к окну конструктора запросов, содержащему оператор DELETE.Отобразите панель SQL Pane

Программирование в Microsoft SQL Server 2000
и скройте панель диаграмм Diagram Pane
Программирование в Microsoft SQL Server 2000
и панель сетки Grid Pane.
Программирование в Microsoft SQL Server 2000

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

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

Замените оператор SQL следующим:

DELETE FROM MyOils WHERE (OilName = 'Basil')

Программирование в Microsoft SQL Server 2000
Нажмите кнопку Run (Выполнить)
Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы исполнить запрос. Enterprise Manager отобразит сообщение, подтверждающее, что строка была удалена.

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

Вернитесь к окну конструктора запросов, отображающему все строки в таблице MyOils.Нажмите кнопку Run (Выполнить)

Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы повторно исполнить базовый запрос SELECT*. Убедитесь, что строка для Basil была удалена.

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

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


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

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

Скройте панель диаграмм Diagram Pane
Программирование в Microsoft SQL Server 2000
и панель сетки Grid Pane.
Программирование в Microsoft SQL Server 2000


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

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

Щелкните на кнопке Change Query Type (Изменить тип запроса)
Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов и выберите Delete (Удалить). Конструктор запросов изменит оператор DELETE в панели SQL Pane.

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

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

Не закрывая окно конструктора запросов, откройте представление таблицы Oils, щелкнув правой кнопкой мыши на имени таблицы в рабочей панели Details Pane, открыв Open Table (Открытие таблицы) и выбрав Return All Rows (Показать все строки).

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

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

Вернитесь к окну конструктора запросов, содержащему оператор DELETE.Измените оператор SQL следующим образом:

DELETE PlantParts WHERE (PlantPartID = 10)

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

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

Нажмите кнопку Run (Выполнить)
Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы исполнить запрос. Enterprise Manager отобразит сообщение, подтверждающее, что строка была удалена.

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


Вернитесь к окну конструктора запросов, отображающему все строки из таблицы Oils.Нажмите кнопку Run (Выполнить)
Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы повторно исполнить базовый запрос SELECT *. Убедитесь, что строки, для которых значение PlantPartID равно 10, были удалены.

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

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

Закройте окна конструктора запросов Query Designer.


Удаление всех строк с помощью оператора TRUNCATE TABLE


Оператор TRUNCATE TABLE может быть выполнен только из панели SQL Pane конструктора запросов Query Designer.

Удалите все строки с использованием оператора TRUNCATE TABLE

Щелкните правой кнопкой мыши на таблице MyOils в рабочей панели Details Pane, открыв меню Open Table (Открытие таблицы) и выбрав Query (Запрос). Будет открыто окно конструктора запросов Query Designer.

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

Скройте панель диаграмм Diagram Pane

Программирование в Microsoft SQL Server 2000
и панель сетки Grid Pane.
Программирование в Microsoft SQL Server 2000

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

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

Замените имеющийся оператор SQL на следующий:

TRUNCATE TABLE MyOils

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

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

Не закрывая текущее окно конструктора запросов, откройте новое представление таблицы MyOils, щелкнув правой кнопкой мыши на имени таблицы в рабочей панели Details Pane, открыв меню Open Table (Открытие таблицы) и выбрав Return All Rows (Показать все строки).

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

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

Вернитесь к окну конструктора запросов, содержащему оператор TRUNCATE TABLE.Нажмите кнопку Run (Выполнить)

Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы исполнить запрос. Enterprise Manager отобразит сообщение, подтверждающее, что запрос был успешно исполнен.

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

Вернитесь к окну конструктора запросов, отображающему все строки из таблицы MyOils.Нажмите кнопку Run (Выполнить)

Программирование в Microsoft SQL Server 2000
в панели инструментов конструктора запросов, чтобы повторно исполнить базовый запрос SELECT *. Убедитесь, что все строки были удалены.

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

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



Использование мастера Copy Database Wizard


Мастер копирования Copy Database Wizard может быть вызван через диалоговое окно Select Wizard (Выбор мастера), а также через меню All Tasks (Все задачи) контекстного меню для папки Server или для папки Databases.

Скопируйте базу данных

Внимание! Чтобы выполнить это упражнение, вы должны иметь доступ к серверу.

Перейдите к базе данных Aromatherapy, а затем щелкните на кнопке Wizard (Мастер).

Программирование в Microsoft SQL Server 2000
SQL Server отобразит диалоговое окно Select Wizard (Выбор мастера).

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

Выберите Copy Database Wizard в категории Management, а затем нажмите ОК. SQL Server отобразит первую страницу мастера Copy Database Wizard.

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

Нажмите Next (Далее). Мастер отобразит страницу, запрашивающую имя сервера, на котором содержится копируемая база данных.

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

Если необходимо, выберите метод аутентификации, а затем нажмите Next (Далее). Мастер отобразит страницу, запрашивающую имя сервера, на который будет копироваться база данных.

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

Выберите место назначения из поля списка, а затем нажмите Next (Далее). Мастер отобразит страницу, запрашивающую имя базы данных, подлежащей перемещению или копированию.

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

Установите флажок Copy (Копировать) для базы данных Aromatherapy.

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

Нажмите Next (Далее). Мастер отобразит страницу, показывающую место размещения выходного файла.

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

Совет. Если для какого-либо файла в ячейке статуса Status имеется крестик, вы можете воспользоваться кнопкой Modify (Изменить), чтобы разрешить проблему.



Использование мастера импорта DTS Import Wizard


Мастер DTS Import Wizard дает возможность импортировать данные из различных типов источников данных, в том числе:

источников данных OLE DB и ODBC;текстовых файлов;соединений с другими экземплярами Microsoft SQL Server;баз данных Oracle и Informix;рабочих листов Microsoft Excel;баз данных Microsoft Access и Microsoft FoxPro;баз данных dBase и Paradox.

Импортируйте таблицу с использованием мастера DTS Import Wizard

Перейдите к базе данных Aromatherapy в Enterprise Manager. SQL Server отобразит список объектов, имеющихся в базе данных.

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

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

Нажмите кнопку Wizard (Мастер)

Программирование в Microsoft SQL Server 2000
в панели инструментов Enterprise Manager. SQL Server отобразит диалоговое окно Select Wizard (Выбор мастера).

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

Выберите DTS Import Wizard в категории Data Transformation Services и нажмите ОК. SQL Server отобразит первую страницу мастера экспорта/импорта DTS Import/Export Wizard.

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

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

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

Выберите в качестве источника данных Microsoft Access. Мастер изменит параметры для источника данных.

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

Нажмите кнопку Browse (Обзор)

Программирование в Microsoft SQL Server 2000
, чтобы указать имя и местонахождение файла источника данных. Мастер отобразит диалоговое окно Select File (Выбор файла).

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

Перейдите к папке SQL 2000 Step by Step в корневой директории и выделите базу Aromatherapy.

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


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


Здесь мы также принимаем предложенные по умолчанию параметры, поскольку нам требуется скопировать данные из таблиц. Нажмите Next (Далее). Мастер отобразит список таблиц, имеющихся в базе данных.

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




Примечание. При выборе на предыдущей странице другой опции, Use A Query To Specify The Data To Transfer (Использовать запрос для указания передаваемых данных), появится диалоговое окно, предлагающее ввести оператор SQL.

Выберите таблицу NewOils. Мастер предполагает, что таблица назначения будет носить такое же имя, что и исходная.

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


Нажмите кнопку Browse (Обзор)
Программирование в Microsoft SQL Server 2000
в столбце Transform. Мастер отобразит диалоговое окно Column Mappings And Transformation (Соответствия столбцов и преобразования).

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


Измените размер столбца OilName на 25, чтобы импортировать только начальную часть содержимого столбца OilName.

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


Нажмите ОК, чтобы закрыть диалоговое окно, а затем нажмите Next (Далее). Мастер отобразит страницу, запрашивающую, хотите ли вы импортировать данные немедленно, либо сделать это позднее.

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




Совет. Эта страница мастера также предоставляет вам возможность сохранить ваши параметры для импорта в виде DTS-пакета. Это может оказаться особенно полезным, если вам потребуется снова выполнить операцию импортирования.

Примите предложенную по умолчанию опцию Run Immediately (Выполнить немедленно) и нажмите Next (Далее). Мастер отобразит страницу, подтверждающую выбранные вами параметры.

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


Нажмите кнопку Finish (Готово). Мастер отобразит диалоговое окно, показывающее ход исполнения DTS-пакета, после чего выведет сообщение, подтверждающее, что таблица была успешно импортирована.

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


Нажмите ОК, чтобы закрыть окно сообщения.

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


Нажмите Done (Готово).Перейдите к папке Tables, чтобы убедиться, что таблица NewOils была добавлена в базу данных Aromatherapy.

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

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



Совет. Если таблица не отображается, выберите Refresh (Обновить) из меню Action (Действие), чтобы обновить список.


Использование мастера экспорта DTS Export Wizard


Как вы можете догадаться, мастер экспорта DTS Export Wizard выполняет ту же функцию, что и мастер импорта DTS Import Wizard, но в обратном направлении.

Экспортируйте таблицу с использованием мастера экспорта DTS Export Wizard

Перейдите к базе данных Aromatherapy и нажмите кнопку Wizard (Мастер).

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

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

Выберите DTS Export Wizard в категории Data Transformation services, а затем нажмите ОК. SQL Server отобразит первую страницу мастера DTS Import/Export Wizard.

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

Нажмите Next (Далее). Мастер отобразит страницу, запрашивающую источник данных.

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

Выберите в качестве базы данных Aromatherapy, а затем нажмите Next (Далее). Мастер отобразит страницу, запрашивающую вид выходных данных.

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

Выберите в качестве выходных данных Text File.

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

Нажмите кнопку Browse (Обзор)

Программирование в Microsoft SQL Server 2000
справа от поля имени файла File Name. Мастер отобразит диалоговое окно Select File (Выбор файла).

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



Мастер копирования Copy Database Wizard


Мастер Copy Database Wizard предоставляет простой путь для копирования или перемещения базы данных из одного экземпляра SQL Server в другой. Вы можете копировать базу данных между различными экземплярами SQL Server 2000, либо между SQL Server 2000 SQL Server 7.0.



Мастера служб преобразования данных


Службы преобразования данных Data Transformation Services (DTS) –мощный набор графических инструментальных средств и программных объектов, который дает возможность импортировать и экспортировать данные, преобразовывать структуры данных и объединять данные из различных источников для их анализа и составления отчетов.

Как и для любых других мощных графических инструментов с широкими возможностями, использование DTS может вызвать определенные затруднения. К счастью, Enterprise Manager имеет в своем составе два мастера, облегчающие выполнение наиболее распространенных задач: импорт и экспорт данных.



Отключение базы данных


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

Отключите базу данных Aromatherapy

Щелкните правой кнопкой мыши на базе данных Aromatherapy в дереве консоли Console Tree, укажите на All Tasks (Все задачи), а затем выберите Detach Database (Отключить базу данных). SQL Server отобразит диалоговое окно Detach Database (Отключение базы данных).

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

Нажмите ОК. SQL Server отобразит сообщение, подтверждающее, что база данных была отключена.

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



Подключение базы данных


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

Повторно подключите базу данных Aromatherapy

Щелкните правой кнопкой мыши на папке Database сервера, который вы используете для выполнения упражнений, укажите на All Tasks (Все задачи) и выберите Attach Database (Подключить базу данных). SQL Server отобразит диалоговое окно Attach Database (Подключение базы данных).

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

Нажмите кнопку Browse (Обзор).

Программирование в Microsoft SQL Server 2000
SQL Server отобразит диалоговое окно Browse For Existing File (Просмотр файлов).

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

Перейдите к папке SQL 2000 Step by Step в корневой директории, выберите Aromatherapy.mdf, а затем нажмите ОК. SQL Server запишет в место размещения файла файл данных и журнал транзакций.

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

Нажмите ОК. SQL Server отобразит сообщение, подтверждающее, что база данных была успешно подключена.

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



Подключение и отключение баз данных


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

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



Добавление объектов в панель редактирования Editor Pane


Наиболее простой и удобной возможностью при работе в Object Browser является использование приема "перетащить-и-оставить". Всякий раз, когда вам необходимо задать объект в Object Browser, вам достаточно просто перетащите его в панель редактирования Editor Pane окна Query (Запрос), и его имя будет вставлено в окно редактирования.

Совет. Если вы перетащили одну из функций, отображенную в папке Common Objects, Object Browser вставит только имя функции, без параметров. Для вставки полного синтаксиса функции используйте команду Scripting, которую мы рассмотрим в следующем разделе.

Добавьте объект базы данных

Выберите окно Query (Запрос), убедитесь, что вкладка Editor (Редактор) открыта, а затем в панели инструментов анализатора запросов Query Analyzer нажмите кнопку Clear Window (Очистить окно).

Программирование в Microsoft SQL Server 2000
Query Analyzer очистит панель редактирования Editor Pane.В панели редактирования Editor Pane введите следующий оператор SQL (не забудьте поставить пробел после FROM):

SELECT * FROM

В Object Browser раскройте папку User Tables.

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

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

Перетащите таблицу dbo.Properties из панели Object Browser в панель редактирования Editor Pane и поместите ее после слова FROM. Query Analyzer вставит имя таблицы в оператор.

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

Нажмите на кнопке Execute Query (Выполнить запрос)

Программирование в Microsoft SQL Server 2000
для выполнения запроса. Query Analyzer отобразит результаты в панели сетки Grids Pane.

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

Добавьте в папку все объекты

В окне Query (Запрос) выберите еще раз вкладку Editor (Редактор).Удалите * из оператора SELECT.

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

В Object Browser раскройте папку dbo.Properties.

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

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

Перетащите папку Columns из панели Object Browser в панель редактирования Editor Pane и вставьте ее после слова SELECT. Query Analyzer вставит в оператор все имена столбцов.

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

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

Для выполнения запроса нажмите кнопку Execute Query (Выполнить запрос)

Программирование в Microsoft SQL Server 2000
в панели инструментов анализатора запросов Query Analyzer. Query Analyzer отобразит результаты в панели сетки Grids Pane.

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



Использование Object Browser


Средство Object Browser представляет собой панель в левой части окна анализатора запросов Query Analyzer. Подобно тому, как дерево консоли Console Tree в Enterprise Manager предоставляет иерархическое отображение объектов в установленном экземпляре SQL Server, так и вкладка Objects (Объекты) в Object Browser отображает иерархическое представление баз данных на сервере, с которым вы соединяетесь, а также другие распространенные объекты, используемые при создании программ Transact-SQL.

Совет. Вкладка Templates (Шаблоны) в Object Browser показывает в иерархическом порядке доступные программные шаблоны. Шаблоны мы рассмотрим в следующем уроке.

Вкладка Objects (Объекты) в Object Browser несколько отличается от дерева консоли Console Tree в Enterprise Manager. В списке отображаются только объекты базы данных, поэтому такие элементы, как Logins (Учетные записи) и Data Transformation Services (Службы преобразования данных), невидимы. Для удобства таблицы в базе данных размещены в двух папках: User Tables (Пользовательские таблицы) и System Tables (Системные таблицы).

Также, в отличие от простого отображения списка таблиц базы данных в, как это имеет место в дереве консоли Console Tree Enterprise Manager, Object Browser отображает столбцы, индексы, ограничения и триггеры, которые вы установили для таблицы, а также зависимости, представления и таблицы, которые зависят от данной таблицы. На рис. 21-2 показано, Object Browser отображает таблицу Oils.

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

Рис. 21.2.  Object Browser отображает информацию о таблице из вашей базы данных, которая полезна с точки зрения программирования.

В Object Browser папка Common Objects содержит встроенные типы данных и набор основных функций Transact-SQL сгруппированных в категории. Для каждой функции папка Parameters содержит описание каждого параметра, включая его имя и тип данных. На рис. 21-3 представлена функция LEFT, как она отображена в окне Object Browser.

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

Рис. 21.3.  Object Browser отображает в папке Common Objects функции по категориям.

Используя Object Browser, вы можете открывать таблицу или представление подобно тому, как вы отображаете строки в конструкторе запросов Query Designer в Enterprise Manager. При этом возможно просматривать строки, или же вставлять новые или редактировать существующие строки.

Вы также можете использовать Object Browser для создания программ на Transact-SQL. Вы можете добавлять объекты в окно Query (Запрос), используя технику "перетащить-и-оставить" (drag-and-drop), а также автоматически создавать несколько разных типов сценариев из контекстного меню.



Использование окна Query


Query Analyzer первоначально отображает два окна: Object Browser (Просмотр объектов) и Query (Запрос). При запуске Query Analyzer открывается одно окно Query (Запрос), но вы в любое время можете открыть новое окно, нажав в панели инструментов Query Analyzer на кнопке New Query (Новый запрос).

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

Окно Query (Запрос) отображает в строке заголовка имя сервера базы данных, текущую базу данных, текущую учетную запись и имя запроса. Окно Query (Запрос) схоже с окном конструктора запросов Query Designer в Enterprise Manager, но имеет более мощные возможности.

В качестве редактора окно Query (Запрос) является более гибким и мощным инструментом, чем панель SQL в конструкторе запросов Query Designer. Конструктор запросов Query Designer может выполнять только ограниченное число операторов Transact-SQL, окно запроса Query может выполнять любые операторы Transact-SQL, и вы можете вводить множество операторов для их выполнения в одном пакете. Окно Query (Запрос) не поддерживает просмотр в режиме сетки Grid или в режиме диаграмм Diagram, которые доступны в конструкторе запросов Query Designer, оно поддерживает дополнительные представления запросов, которые применяются для анализа производительности, о чем мы поговорим в уроке 23.

Окно Query (Запрос) также предоставляет возможность отображения каждого вида запроса на отдельной вкладке, а не в панели. Это является наиболее удобным способом просмотра запроса.



Использование сценариев SQL


Сценарий (script) представляет собой набор операторов Transact-SQL, хранимых в файле. Сценарии часто используются для постоянного хранения команд для записей, используемых для создания и заполнения объектов базы данных. Поскольку сценарии хранятся в тестовом файле, а не в базе данных, то они могут быть использованы для воссоздания базы данных на других серверах. (SQL Server использовал сценарии для создания шаблонных баз данных Pubs и Northwind).

Хотя сценарии очень часто используются для создания объектов базы данных, они могут применяться не только для этого. В сценарий может быть включен любой допустимый операторы Transact-SQL.

В сценарии операторы SQL группируются в пакеты. Сценарий может содержать один или несколько пакетов, а каждый пакет может содержать один или более операторов SQL. В сценарии, содержащем более одного пакета, пакеты разделяются командой GO. Если сценарий не содержит команды GO, все операторы будут выполняться как один пакет.

Создайте сценарий

В окне Query (Запрос) измените оператор SQL, как показано ниже:

SELECT, OilName, LEFT(LatinName, 10) FROM Oils GO SELECT PlantPartID, PlantPart FROM PlantParts

Примечание. В запрос, использовавшийся в предыдущем упражнении, были добавлены только три последние строки.

В панели инструментов анализатора запросов Query Analyzer нажмите кнопку Execute Query (Выполнить запрос). Query Analyzer отобразит результат в двух панелях вкладки Grids (Сетка) окна Query (Запрос).

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

В окне Query (Запрос) выберите вкладку Editor (Редактор) и нажмите кнопку Save (Сохранть)

Программирование в Microsoft SQL Server 2000
в панели инструментов анализатора запросов Query Analyzer. Query Analyzer отобразит диалоговое окно Save Query (Сохранение запроса).

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

Примечание. Если вы не выберите вкладку Editor (Редактор) перед нажатием кнопки Save (Сохранть), анализатор запросов Query Analyzer сохранит результаты выполнения запроса, а не сам запрос.

Перейдите к папке SQL 2000 Step By Step в корневой директории и присвойте сценарию имя Lesson21.

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

Нажмите Save (Сохранить). Query Analyzer сохранит новый файл сценария.


Откройте сценарий

В панели инструментов анализатора запросов Query Analyzer нажмите кнопку New Query (Новый запрос).
Программирование в Microsoft SQL Server 2000
Query Analyzer откроет новое пустое окно Query (Зарос).

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


Нажмите кнопку Open (Открыть)
Программирование в Microsoft SQL Server 2000
в панели инструментов анализатора запросов Query Analyzer. Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла запроса).

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


В корневой директории найдите и откройте папку SQL 2000 Step by Step, и выберите Lesson21.

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


Нажмите Open (Открыть). Query Analyzer отобразит сценарий в окне Query (Запрос).

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


В панели инструментов анализатора запросов Query Analyzer нажмите кнопку Execute Query (Выполнить запрос)
Программирование в Microsoft SQL Server 2000
для запуска сценария. Query Analyzer отобразит результаты во вкладке Grids (Сетка).

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


Закройте окно сценария.


Открытие объектов


Если вы в Object Browser нажмете правой кнопкой мыши на таблице или представлении и выберите Open (Открыть), анализатор запросов Query Analyzer отобразит строки в таблице (или результаты выполнения оператора SELECT для представления) в окне Open Table (Открытие таблицы).

Откройте таблицу

В Object Browser раскройте папку User Tables базы данных Aromatherapy. Query Analyzer отобразит список таблиц базы данных.

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

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

Правой кнопкой мыши щелкните на dbo.PlantParts и выберите Open (Открыть). Query Analyzer отобразит в окне Open Table (Открытие таблицы) строки из таблицы.

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

Закончив просмотр строк в таблице, закройте окно Open Table (Открытие таблицы).

Откройте представление

В Object Browser раскройте папку Views базы данных Aromatherapy. Query Analyzer отобразит список всех представлений в базе данных.

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

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

Правой кнопкой мыши щелкните на dbo.OilCautionsExtented и выберите Open (Открыть). Query Analyzer отобразит ряды, возвращенные после запроса, в окне Open Table (Открытие таблицы).

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

Закончив просмотр строк в таблице, закройте окно Open Table (Открытие таблицы).



Понятие о Query Analyzer


Хотя можно создавать и выполнять запросы и другие операторы Transact-SQL в Enterprise Manager, лучше выполнять это с помощью утилиты для администрирования базы данных. Анализатор запросов Query Analyzer в первую очередь является программным инструментом.

Query Analyzer предоставляет мощные средства для написания и отладки сложных наборов операторов Transact-SQL различных типов. (Мы рассмотрим один из таких типов – SQL-сценарии). Query Analyzer также предоставляет средства для анализа производительности запросов посредством выполнения планов или с помощью мастера настройки индексов Index Tuning Wizard, который мы рассмотрим в уроке 23.



Скриптование объектов


Скриптование (создание сценария действия) является более сложной версией приема "перетащить-и-оставить" Object Browser. Скриптование создает полный оператор Transact-SQL и может выполняться из контекстного меню большинства объектов. Не все типы сценариев применимы ко всем типам объектов, а к таким типам, как параметры функции или столбцы, операция скриптования не может быть применена вообще.

Имеющиеся сценарии и объекты, к которым они могут быть применены, представлены в Таблице 21.2. Большинство из этих сценариев мы рассмотрим в следующем уроке о, посвященном созданию и обслуживанию объектов базы данных.

Таблица 21.2. Опции скриптования

Команда сценарияОбъекты
Create (Cоздать)Таблица, индекс, ограничение, триггер, представление, хранимая процедура
Alter (Изменить)Триггер, вид
Drop (Изъять)Таблица, индекс, ограничение, триггер, представление, хранимая процедура
Select (Выбрать)Таблица, представление
Insert (Вставить)Таблица, представление
Update (Обновить)Таблица, представление
Delete (Удалить)Таблица, представление
Execute (Выполнить)Хранимая процедура, функция

Сценарии могут быть записаны в новое окне Query (Запрос), в файл сценария или в буфер обмена (откуда они могут быть вставлены в существующее окно запроса Query). Некоторые сценарии, такие как сценарии выполнения функции, используют замещаемые параметры. Query Analyzer предоставляет диалоговое окно для удобства замещения этих параметров соответствующими значениями.

Напишите сценарий для оператора SELECT

В Object Browser в базе данных Aromatherapy раскройте папку User Tables.Правой кнопкой мыши щелкните на таблице dbo.OilProperties, укажите на Script Object To New Window As (Описать объект в новом окне как) и выберите Select (Выбрать). Query Analyzer откроет новое окно Query (Запрос), содержащий оператор SELECT.

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

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

Совет. Object Browser создает оператор SELECT в отдельной строке. Для удобства вы можете отредактировать его, что показано на рисунке.

Для выполнения запроса нажмите кнопку Execute Query (Выполнить запрос)

Программирование в Microsoft SQL Server 2000
в панели инструментов анализатора запросов Query Analyzer. Query Analyzer отобразит результаты в панели сетки Grids Pane.


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


После завершения работы с запросом закройте окно Query (Запрос).
Напишите сценарий для функции
В папке Common Objects раскройте папку String Functions.
Программирование в Microsoft SQL Server 2000


Правой кнопкой мыши щелкните на функции LEFT, перейдите к Script Object To New Window As (Описать объект в новом окне как) и выберите Execute (Выполнить). Query Analyzer откроет новое окно Query (Зарос) с оператором SELECT, включающим функцию.
Программирование в Microsoft SQL Server 2000

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

В меню Edit (Правка) выберите Replace Template Parameters (Заместить шаблонные параметры).
Программирование в Microsoft SQL Server 2000


Для параметра character_expression введите значение 'Test Expression', а для параметра integer_expression введите значение 4.
Программирование в Microsoft SQL Server 2000


Нажмите Replace All (Заместить все). Query Analyzer заместит параметры в запрос.
Программирование в Microsoft SQL Server 2000


Для выполнения запроса нажмите кнопку Execute Query (Выполнить запрос)
Программирование в Microsoft SQL Server 2000
в панели инструментов анализатора запросов Query Analyzer. Query Analyzer отобразит результаты в панели сетки Grids Pane.
Программирование в Microsoft SQL Server 2000




Ввод операторов Transact-SQL


Простейшим способом использования окна Query (Запрос) является ввод операторов SQL, как мы это делали в панели SQL конструктора запросов Query Designer. В отличии от окна конструктора запросов Query Designer, окно Query (Запрос) анализатора запросов Query Analyzer предоставляет некоторый дополнительный сервис, выделяя различными цветами введенные вами операторов Transact-SQL. В Таблица 21.1 приведены цвета, используемые в окне Query (Запрос).

Таблица 21.1. Цветное кодирование, используемое в окне Query анализатора запросов Query Analyzer.

ЦветНазначение
СинийКлючевое слово
Темно зеленыйКомментарий
Темно красныйХранимая процедура
СерыйОператор
ЗеленыйСистемная таблица
ПурпурныйСистемная функция
КрасныйСимвольная строка

Выполните запрос SELECT

В окне Query введите следующий оператор SELECT:

SELECT OilName, LEFT(LatinName, 10) FROM Oils Окно Query (Запрос) изменит цвет введенного текста.

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

В панели инструментов анализатора запросов Query Analyzer нажмите на кнопке Execute Query (Выполнить запрос).

Программирование в Microsoft SQL Server 2000
Анализатор запросов Query Analyzer добавит в окно Query (Запрос) панель, содержащую две вкладки: вкладку Grids (Сетка), содержащую результаты запроса и вкладку Messages (Сообщения), содержащую сообщения.

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

Выберите вкладку Messages(Сообщения). Окно Query (Запрос) отобразит сообщения, сформированные запросом.

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

Отобразите результаты запроса в отдельной таблице

В меню Tools (Сервис) анализатора запросов Query Analyzer выберите Options (Параметры). Query Analyzer отобразит диалоговое окно Options (Параметры).Выберите вкладку Editor (Редактор)

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

Установите флажок Tabbed Mode (Vs. Splitter Mode).Нажмите OK. Query Analyzer изменит способ отображения окна Query (Запрос).

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



Выбор базы данных


Query Analyzer будет использовать текущую выбранную базу данных для разрешения ссылок в запросах и других операторах Transact-SQL. Панель инструментов, показанная на рис. 21-1, содержит поле со списком, в котором отображается текущая выбранная база данных. Вы можете переключится на другую базу данных, выбрав ее имя в панели инструментов или в меню Query (Запрос).

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

увеличить изображение
Рис. 21.1. 

Выберите базу данных с помощью панели инструментов

В поле со списком панели инструментов выберите Northwind.

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

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

Выберите базу данных из меню Query (Запрос)

В меню Query (Запрос) выберите Change Database (Сменить базу данных). Query Analyzer отобразит диалоговое окно Select Database (Выбор базы данных).

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

Совет. Вы также можете воспользоваться комбинацией клавиш Ctrl + U для открытия диалогового окна Select Database (Выбор базы данных).

Нажмите в любое место этой таблицы для выбора базы данных Aromatherapy.

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

Нажмите OK. Query Analyzer выберет базу данных Aromatherapy.



Запуск Query Analyzer


Вы можете запустить Query Analyzer из Enterprise Manager или из меню Start (Пуск) в Windows. Если вы запустили Query Analyzer из Enterprise Manager, Query Analyzer будет передавать информацию о соединении из Enterprise Manager: если вы подключены к серверу, то Query Analyzer будет соединяться с этим сервером, и если у вас по умолчанию установлена какая-либо база данных, то Query Analyzer будет выбирать именно эту базу данных.

Совет. Для запуска Query Analyzer воспользуйтесь командой isqlw из командной строки.

Если вы запустили Query Analyzer из меню Start (Пуск) или если вы не создали в Enterprise Manager соединения с сервером или базой данных, вы должны будете в Query Analyzer создать соединение вручную.

Запустите Query Analyzer из Enterprise Manager

В Enterprise Manager в дереве консоли Console Tree найдите базу данных Aromatherapy. В рабочей панели Details Pane SQL Server отобразит список объектов базы данных.

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

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

В меню Tools (Сервис) выберите SQL Query Analyzer. SQL Server откроет Query Analyzer и автоматически соединиться с сервером и базой данных Aromatherapy.

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

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

Примечание. Если в Query Analyzer не отображается окно просмотра объектов Object Browser, нажмите F8 для его отображения.

Закройте Query Analyzer.

Запустите Query Analyzer из меню Start (Пуск)

В панели задач нажмите кнопку Start (Пуск).Перейдите к Programs (Программы) и выберите папку Microsoft SQL Server. Откроется папка Microsoft SQL Server со списком значков.Щелкните на значке Query Analyzer.

Программирование в Microsoft SQL Server 2000
Query Analyzer отобразит диалоговое окно Connect To SQL Server (Соединение с SQL Server).

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

Убедитесь в правильном выборе сервера и режима аутентификации, а затем нажмите OK. Query Analyzer соединится с сервером, а затем откроется. Query Analyzer соединится с той базой данных, которая была выбрана по умолчанию для вашей учетной записи.

Совет. Если ваш сервер не настроен на автоматический запуск при соединении, вы можете установить флажок Start SQL Server If It Stopped (Запускать SQL Server, если он остановлен) для включения этой опции.

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

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



Использование Object Browser для определения данных


DDL-операторы являются не слишком сложными, хотя и составными, однако анализатор запросов Query Analyzer посредством Object Browser предоставляет два метода, с помощью которых DDL будет еще проще использовать. В прошлом уроке мы говорили, что контекстное меню большинства объектов поддерживает команды скриптования, и вы можете использовать их для операторов CREATE, ALTER и DROP применительно к этим объектам.

Query Analyzer также предоставляет шаблоны, которые являются образцами файлов SQL-сценариев с замещаемыми параметрами. Вы можете создать и свои собственные шаблоны, однако SQL Server 2000 предоставляет базовые шаблоны для большинства операторов CREATE.



Использование шаблонов


Язык SQL несколько отличается от большинства других языков программирования, таких как C++ или Microsoft Visual Basic, тем, что в нем есть относительно немного операторов, но синтаксис их может быть довольно сложным. Одна из претензий, часто предъявляемых к языку SQL, состоит в том, что все данные извлекаются с помощью одного оператора: оператора SELECT.

Шаблоны являются превосходным средством для работы с составными операторами SQL. При работе с SQL длительное время, вы начинаете замечать, что часто используете лишь несколько более или менее стандартных комбинаций основных команд: например оператор SELECT для двух таблиц, имеющих внутреннюю связь INNER JOIN, или оператор CREATE TABLE с идентификационным столбцом IDENTITY. Сохранив, эти операторы как шаблон, вы одной командой сможете воспроизвести весь содержащийся в шаблоне текст. Для настройки операторов вы можете воспользоваться удобным диалоговым окном.

Совет. Шаблоны могут применяться не только к одной команде. Они могут состоять из любого числа операторов, подобно файлам SQL-сценариев, и могут содержать множество команд и пакетов.

Несмотря на широту предоставляемых возможностей, шаблоны просты в использовании и создании. Они являются обычными файлами SQL-сценариев с расширением .tql (по умолчанию). Элементы шаблона могут настраиваться. Например, в операторе CREATE TABLE имена столбцов и таблиц могут быть определены как параметры. В шаблоне параметр имеет такую форму: <имя_параметра, тип_данных, значение>. Например, представленный ниже шаблон сценария, содержит два параметра: table_name и sort_name:

SELECT * FROM <table_name, sysname, test_view> ORDER BY <sort_column, sysname, test_column>

Сценарий определяет оба параметра как имеющие тип данных sysname, который является специальным типом, используемым для указания имен объектов. Параметр table_name имеет значение по умолчанию "test_view", а параметр sort_column имеет значение по умолчанию "test_column".

Анализатор запросов Query Analyzer предоставляет диалоговое окно Replace Template Parameters (Замещение параметров шаблона) для удобного ввода текста в шаблон. Чтобы отобразить это диалоговое окно, откройте шаблон в окне Query (Запрос) и выберите Replace Template Parameters (Замещение параметров шаблона) из меню Edit (Правка).

Совет. Для открытия диалогового окна Replace Template Parameters (Замещение параметров шаблона) вы также можете воспользоваться комбинацией клавиш Ctrl + Shift + M.

Сформируйте оператор CREATE TABLE с помощью шаблона

В Object Browser выберите вкладку Templates (Шаблоны). Query Analyzer отобразит список категорий для доступных шаблонов.


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

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

Раскройте папку CREATE TABLE и дважды щелкните на кнопке CREATE TABLE WITH IDENTITY. Query Analyzer откроет новое окно запроса и вставит туда шаблонный текст.

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

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

В меню Edit (Правка) выберите Replace Template Parameters (Замещение параметров шаблона). Query Analyzer откроет диалоговое окно Replace Template Parameters (Замещение параметров шаблона).

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


Установите следующие значения параметров: ПараметрЗначение
Table_nameTemplateTable
Column_1TemplateID
Datatype_for_column_1Smallint
Seed1
Increment1
Column_2Description
Datatype_for_column_2Varchar (20)
Программирование в Microsoft SQL Server 2000


Нажмите Replace All (Заместить все). Query Analyzer закроет диалоговое окно и подставит значения параметра в параметр в шаблоне.

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

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

Убедитесь, что база данных Aromatherapy выбрана в панели инструментов анализатора запросов Query Analyzer.

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

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

Чтобы выполнить оператор, нажмите кнопку Execute Query (Выполнить запрос)
Программирование в Microsoft SQL Server 2000
в панели инструментов анализатора запросов Query Analyzer. Query Analyzer создаст таблицу.В Object Browser выберите вкладку Objects (Объекты), раскройте папку User Tables и нажмите клавишу F5 для обновления содержимого экрана. Object Browser отобразит в списке новую таблицу TemplateTable.

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

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

Закройте окно Query (Запрос), содержащее оператор CREATE TABLE.


Изменение объектов


В то время как оператор CREATE создает новый объект, оператор ALTER предоставляет механизм для изменения определения объекта. Не все объекты, созданные с помощью оператора CREATE, имеют соответствующий оператор ALTER. В таблице 22.2 приведен синтаксис для объектов, которые могут быть изменены.

Таблица 22.2. Операторы ALTER

Синтаксис оператора ALTERДействие
ALTER DATABASE <имя> <спецификация_файла>Изменяет файлы, используемые для хранения базы данных

ALTER FUNCTION <имя> RETURNS <возвращаемое_значение> AS < операторы_tsql>

Изменяет операторы Transact-SQL, содержащие функцию

ALTER PROCEDURE <имя> AS < операторы_tsql>

Изменяет операторы Transact-SQL, содержащие в себе хранимую процедуру (См. урок 28, "Хранимые процедуры")

ALTER TABLE <имя> <определение_изменения>

Изменяет определение таблицы (В этом уроке мы подробно рассмотрим <определение_изменения>.)

ALTER TRIGGER <имя> {FOR | AFTER | INSTEAD OF} <действие_dml>

Изменяет операторы Transact-SQL, содержащие в себе триггер (См. урок 29, "Триггеры")

ALTER VIEW <имя> AS <оператор_выборки>

Изменяет операторы SELECT, которые создают представление

Оператор ALTER TABLE является составным по той же причине, почему и оператор CREATE TABLE: определение таблицы состоит из нескольких различных частей. Упрощенная версия синтаксиса для оператора ALTER TABLE приведена ниже:

ALTER TABLE <имя> { [ALTER COLUMN <определение_столбца>] | [ADD <определение_столбца>] | [DROP COLUMN <имя_столбца>] | [ADD [WITH NOCHECK] CONSTRAINT <ограничение_для_таблицы>] }

Ключевые слова CHECK (подразумевается) и NOCHECK перед ограничением таблицы, предписывают SQL Server тестировать или не тестировать имеющиеся в таблице данные с учетом нового ограничения. WITH NOCHECK используется лишь в крайне редких случаях.

Изменение столбцов

Ниже представлено несколько ограничений для фразы ALTER COLUMN. Столбец не может быть изменена, если он:

имеет тип данных text, image, ntext или timestamp;определен в таблице как ROWGIDCOL;является вычисляемым столбцом или используется в вычисляемом столбце;является реплицированным;используется в индексе – если только столбец не имеет тип данных varchar, nvarchar или varbinary; тип данных не изменяется и размер столбца не уменьшается;используется в статистике, генерируемой оператором CREATE STATISTIC;используется в ограничении PRIMARY KEY;используется в ограничении FOREIGN KEY REFERENCES;используется в ограничении CHECK;используется в ограничении UNIQUE;указывается как DEFAULT.


Измените представления

В Object Browser раскройте папку Columns запроса SimpleView.

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

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

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

ALTER VIEW SimpleView AS SELECT SimpleDescription, RelatedDescription FROM RelatedTable INNER JOIN SimpleTable ON RelatedTable.SimpleID = SimpleTable.SimpleID

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


Для выполнения оператора в панели инструментов анализатора запросов Query Analyzer нажмите на кнопку Execute Query (Выполнить запрос).
Программирование в Microsoft SQL Server 2000
Щелкните на любом месте в панели Object Browser для ее выбора и нажмите клавишу F5 для обновления содержимого экрана. Object Browser отобразит только столбцы SimpleDescription и RelatedDescription.

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

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



Добавьте столбцы в таблицу

В Object Browser раскройте папку Columns таблицы SimpleTable.

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

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

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

ALTER TABLE SimpleTable ADD NewColumn varchar(20)

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


Для выполнения оператора в панели инструментов анализатора запросов Query Analyzer нажмите на кнопку Execute Query (Выполнить запрос).
Программирование в Microsoft SQL Server 2000
Query Analyzer добавит столбец в таблицу.Щелкните на любом месте в панели Object Browser для ее выбора и нажмите клавишу F5 для обновления содержимого окна. Object Browser отобразит новый столбец.

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

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



Измените столбцы в таблице

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

ALTER TABLE SimpleTable ADD COLUMN NewColumn varchar(10)



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


Для выполнения оператора, в панели инструментов анализатора запросов Query Analyzer нажмите на кнопку Execute Query (Выполнить запрос).
Программирование в Microsoft SQL Server 2000
Query Analyzer добавит столбец в таблицу. Щелкните на любом месте в панели Object Browser для ее выбора и нажмите клавишу F5 для обновления содержимого окна. Object Browser отобразит новый столбец.

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

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



Удалите столбцы из таблицы

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

ALTER TABLE SimpleTable DROP COLUMN NewColumn

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


Для выполнения оператора в панели инструментов анализатора запросов Query Analyzer нажмите на кнопку Execute Query (Выполнить запрос).
Программирование в Microsoft SQL Server 2000
Query Analyzer удалит столбец из таблицы.Щелкните на любом месте в панели Object Browser для ее выбора и нажмите клавишу F5 для обновления содержимого окна. Object Browser больше не будет отображать столбец NewColumn.

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

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




Понятие о DDL


Язык SQL имеет две составляющие: язык обращения с данными Data Manipulation Language (DML) и язык определения данных Data Definition Language (DDL). DML состоит из операторов, используемых для создания и получения данных. DDL состоит из операторов, используемых для создания объектов в базе данных и для установки свойств и значений атрибутов самой базы данных.

DML и DDL

Чем же отличаются эти две группы операторов? В то время, как операторы DML достаточно однотипны для различных реализаций SQL (что дает возможность каждому поставщику программной продукции вводить свои расширения), DDL имеет существенные различия для разных продуктов. Каждый поставщик системы управления базой данных на физическом уровне различным образом реализует реляционную модель и каждый поставщик DDL неизбежно отражает эти различия. Большинство поставщиков предоставляют графические инструменты для определения данных и многие, включая и Microsoft, не ограничивают вас использованием только SQL DDL. Например, Microsoft предоставляет поддержку двух стандартов определения данных: ADO и DAO.

Мы уже успели рассмотреть основные операторы DML: SELECT, INSERT, UPDATE и DELETE. Базовыми же операторами SQL DDL являются CREATE, ALTER и DROP, каждый из которых имеет несколько вариаций для создания объектов различных типов. Несколько из этих операторов мы рассмотрим в этом уроке, а остальные в следующих уроках.



Скриптование DDL


Создать два сценария для операторов SELECT можно в панели Object Browser. Object Browser поддерживает сценарии CREATE, ALTER и DROP для большинства объектов базы данных. После генерации сценария вы можете видоизменить его для решения своих задач.

Совет. Операторы CREATE, созданные скриптованием, могут быть сохранены в файле сценария. Это удобно для документирования структуры базы данных.

Сформируйте сценарий CREATE TABLE

В Object Browser щелкните правой кнопкой мыши на таблице Cautions, перейдите к Script Object To New Window AS и выберите CREATE. Query Analyzer откроет новое окно запроса, содержащие оператор CREATE для создания таблицы Cautions.

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

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

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

Измените имя таблицы в операторе на DuplicateCautions, а имя в ограничении PRIMARY KEY на PK_ DuplicateCautions.

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

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

Для выполнения оператора в панели инструментов анализатора запросов Query Analyzer нажмите на кнопку Execute Query (Выполнить запрос).

Программирование в Microsoft SQL Server 2000
Query Analyzer создаст новую таблицу.Щелкните на любом месте в панели Object Browser для ее выбора и нажмите клавишу F5 для обновления содержимого окна. Object Browser отобразит в списке новую таблицу DuplicateCautions.

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

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

Закройте окно запроса, содержащее оператор CREATE.



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


Объекты базы данных создаются программным путем с помощью оператора 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)



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

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

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

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

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



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

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

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

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

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


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

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

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



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

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

CREATE VIEW SimpleView AS

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

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


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

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

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

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



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

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



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

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

CREATE INDEX SimpleIndex ON SimpleTable (SimpleDescription)

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


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

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

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




Удаление объектов


Оператор DROP удаляет объект базы данных. В отличие от операторов CREATE и ALTER, операторы DROP имеют простой и неизменный синтаксис:

DROP <тип_объекта> <имя>

<тип_объекта> - любой объект из таблицы 22.1, исключая схему.

Удалите индекс

В Object Browser раскройте папку Indexes таблицы SimpleTable.

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

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

В окне запроса выберите вкладку Editor (Редактор) и в панели инструментов анализатора запросов Query Analyzer нажмите кнопку Clear Window (Очистить окно)

Программирование в Microsoft SQL Server 2000
для очистки содержимого панели редактирования Editor Pane.В панели редактирования введите следующий оператор:

DROP INDEX SimpleTable.SimpleIndex

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

Для выполнения оператора в панели инструментов анализатора запросов Query Analyzer нажмите на кнопку Execute Query (Выполнить запрос).

Программирование в Microsoft SQL Server 2000
Query Analyzer удалит индекс.Щелкните на любом месте в панели Object Browser для ее выбора и нажмите клавишу F5 для обновления содержимого окна. Object Browser отобразит пустую папку индексов.

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

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

Удалите таблицу

В окне запроса выберите вкладку Editor (Редактор) и в панели инструментов анализатора запросов Query Analyzer нажмите кнопку Clear Window (Очистить окно)

Программирование в Microsoft SQL Server 2000
для очистки содержимого панели редактирования Editor Pane. В панели редактирования введите следующий оператор:

DROP TABLE RelatedTable

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

Для выполнения оператора в панели инструментов анализатора запросов Query Analyzer нажмите на кнопку Execute Query (Выполнить запрос).

Программирование в Microsoft SQL Server 2000
Query Analyzer удалит таблицу.В панели Object Browser раскройте папку User Tables базы данных Aromatherapy и нажмите клавишу F5 для обновления содержимого экрана. Таблицы RelatedTable в списке уже не будет.

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

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