Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Метод указания AIS

.pdf
Скачиваний:
8
Добавлен:
18.02.2016
Размер:
9.86 Mб
Скачать

3.Щелкните на значке Query Analyzer. Query Analyzer отобразит диалоговое окно Connect To SQL Server (Соединение с SQL Server).

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

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

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

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

КАТУВыберите базу данныхИМс помощьюпанели.инструментовСЕЙФУЛЛИНА

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

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

К.Т1. В.менюНQuery. ОМАРБЕКОВА(Запрос) выберите Change Database (Сменить базу данных). QueryАAnalyzer.С.

отобразит диалоговое окно Select Database (Выбор базы данных).

Совет. Вы также можете воспользоватьсяСУБДкомбинацией клавиш Ctrl + U для открытия диалогового окна

Select Database (Выбор базы данных).

2. Нажмите в любое место этой таблицы для выбора базы данных kontengent. 3. Нажмите OK. Query Analyzer выберет базу данных kontengent.

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

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

запрос).

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

Query Designer в Enterprise Manager, но имеет более мощные возможности.

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

111

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

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

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

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

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

 

 

 

 

 

Цвет

Назначение

 

 

 

 

 

Синий

Ключевое слово

 

 

КАТУ ИМ.С.СЕЙФУЛЛИНА

 

 

Темно зеленый

Комментарий

 

 

 

 

 

Темно красный

Хранимая процедура

 

 

 

 

 

Серый

Оператор

 

 

 

 

 

Зеленый

Системная таблица

 

К

.Т.Н. ОМАРБЕКОВА А

.С.

 

Пурпурный

Системная функция

 

 

 

 

 

Красный

Символьная строка

 

 

 

 

 

Выполните запрос SELECTСУБД

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

SELECT fio

FROM kontengent

2.Окно Query (Запрос) изменит цвет введенного текста.

3.В панели инструментов анализатора запросов Query Analyzer нажмите на кнопке Execute Query (Выполнить запрос). Анализатор запросов Query Analyzer добавит в окно Query (Запрос) панель, содержащую две вкладки: вкладку Grids (Сетка), содержащую результаты запроса и вкладку Messages (Сообщения), содержащую сообщения.

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

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

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

2.Выберите вкладку Editor (Редактор)

3.Установите флажок Tabbed Mode (Vs. Splitter Mode).

4.Нажмите OK. Query Analyzer изменит способ отображения окна Query (Запрос).

112

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

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

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

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

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

SELECT fio FROM kontengent

go

КАТУSELECT father, matherИМ.С.СЕЙФУЛЛИНА FROM lichkart

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

К.Тв.панелиН.инструментовОМАРБЕКОВАанализатора запросов Query Analyzer. Query AnalyzerАотобразит.С. диалоговое окно Save Query (Сохранение запроса).

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

анализатор запросов Query AnalyzerСУБДсохранит результаты выполнения запроса, а не сам запрос.

4. Перейдите к рабочей папке и присвойте сценарию имя Lesson.

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

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

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

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

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

Transact-SQL.

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

113

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

Для удобства таблицы в базе данных размещены в двух папках: User Tables (Пользовательские таблицы) и System Tables (Системные таблицы).

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

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

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

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

КАТУОткрытие объектовИМ.С.СЕЙФУЛЛИНА

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

КОткройте.Т.таблицуН. ОМАРБЕКОВА А.С.

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

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

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

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

2.Правой кнопкой мыши щелкните на ПРЕДСТАВЛЕНИЕ и выберите Open (Открыть). Query Analyzer отобразит ряды, возвращенные после запроса, в окне Open Table (Открытие таблицы).

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

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

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

114

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

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

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

панели инструментов анализатора запросов Query Analyzer нажмите кнопку Clear Window (Очистить окно). Query Analyzer очистит панель редактирования Editor Pane.

2.В панели редактирования Editor Pane введите следующий оператор SQL (не забудьте поставить пробел после FROM):

SELECT *

FROM

3.

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

 

4.

Перетащите таблицу dbo.kontengent из панели Object Browser в панель редактирования Editor

 

Pane и поместите ее после слова FROM. Query Analyzer вставит имя таблицы в оператор.

5.

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

для выполнения запроса. Query

КАТУAnalyzer отобразитИМрезультатыв панели.СЕЙФУЛЛИНАсетки Grids Pane.

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

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

К.Т2. Удалите* из.оператораОМАРБЕКОВАSELECT. А.С.

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

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

5. Для выполнения запросаСУБДнажмите кнопку Execute Query (Выполнить запрос) в панели инструментов анализатора запросов Query Analyzer. Query Analyzer отобразит результаты в панели сетки Grids Pane.

115

17 Язык определения данных

Задание

1.В чем отличие групп операторов DML и DDL?

2.Создайте таблицу с ограничением первичного ключа (Назовите своим именем)

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

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

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

6.Измените представления

7.Добавьте столбцы в таблицу

8.Измените столбцы в таблице

9.Удалите столбцы из таблицы

10.Удалите индекс

11.Удалите таблицу

Ранее мы рассмотрели, как создаются объекты базы данных – таблицы, отношения, индексы и представления в схеме вашей базы данных – с помощью средств Microsoft Visual Database Tools из Enterprise Manager. Вы научитесь создавать, изменять и удалять объекты с помощью Transact-SQL.

КАТУПонятие о 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, каждый из которых имеет несколько вариаций для создания объектов различных типов. Несколько из этих операторов мы рассмотрим в этом уроке, а остальные в следующих уроках.

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

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

116

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

Синтаксис оператора CREATE

CREATE DATABASE <имя>

CREATE DEFAULT <имя> AS <

выражение_константы >

Создаваемый объект

Создает базу данных

Создает значение по умолчанию

 

 

CREATE FUNCTION <имя> RETURNS

Создает пользовательскую функцию

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

 

 

 

CREATE INDEX <имя> ON

Создает индекс в таблице или представление

<таблица_или_представление>

 

(<индексируемые_столбцы>)

 

 

 

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

CREATE RULE <имя> AS <условное_выражение>

CREATE SCHEMA AUTHORIZATION <владелец> <определения_объектов>

CREATE STATISTICS <имя> ON <

таблица_или_представление> (<столбцы>)

CREATE TABLE <имя> (<определение_таблицы>)

Создает хранимую процедуру

Создает роль базы данных

Создает таблицы, представления и разрешения как один объект

Создает статистические данные, используемые оптимизатором запросов

Создает таблицу

КАТУCREATE TRIGGERИМ<имя> {FOR |.AFTERС| INSTEAD.СЕЙФУЛЛИНАСоздает триггер

OF} < действие dml> AS <операторы tsql>

CREATE VIEW <имя> AS < оператор_выборки> Создает представление

Из операторов CREATE, рассмотренных в таблице 1, только оператор CREATE TABLE является Кдостаточно.Т.Нсложным.. ОМАРБЕКОВАЭто вызвано тем, что определение таблицы составляет несколькоАразличных.С. элементов. Вы должны определить столбцы, а каждый столбец должен иметь имя и тип данных. Вы

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

<имя_столбца> <тип_данных> [NULL | NOT NULL]

[

[DEFAULT <значение_по_умолчанию>] |

[IDENTITY [(начальное_значение>, <шаг_увеличения>)[NOT FOR REPLLCATION]]]] [ROWGUIDCOL]

[<ограничение_для_столбца>[, <ограничение_для_столбца>...]]

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

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

[CONSTRAINT <имя_ограничения]

[

[PRIMARY KEY | UNIQUE] [CLUSTERED | NONCLUSTERED] | [[FOREIGN KEY] REFERENCES <ссылочная_таблица> (имя_столбца)] |

117

[CHECK [NOT FOR REPLICATION] (<логическое выражение>)]

]

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

CHECK).

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

CREATE TABLE student

(

ID smallint

IDENTITY (1,1)

PRIMARY KEY CLUSTERED,

КАТУFIO varchar(50) ИМ.С.СЕЙФУЛЛИНА

)

КСоздайте.Т.таблицуН.с ограничениемОМАРБЕКОВАвнешнего ключа. А.С.

CREATE TABLE traektoriya

( ID_disciplin smallint СУБД

IDENTITY (1,1)

PRIMARY KEY CLUSTERED,

ID smallint

REFERENCES Student (ID),

NameDisciplin varchar(20)

)

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

CREATE VIEW View_student

AS

118

SELECT ID_disciplin, FIO,NameDisciplin

FROM traektoriya

INNER JOIN student

ON traektoriya.ID = student.ID

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

CREATE INDEX Index_FIO ON student (FIO)

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Синтаксис оператора ALTER

 

 

Действие

 

 

 

 

КАТУ<спецификация файлаИМ>

 

 

 

данных.С.СЕЙФУЛЛИНА

 

 

 

 

 

 

 

 

 

 

 

 

ALTER DATABASE <имя>

 

 

 

Изменяет файлы, используемые для хранения базы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ALTER FUNCTION <имя>

 

 

 

 

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

К

 

RETURNS

 

 

 

 

функцию

А.С.

 

.Т.Н.

 

 

 

ОМАРБЕКОВА

 

 

 

<возвращаемое значение>

 

 

 

 

 

 

 

 

 

 

AS < операторы tsql>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ALTER PROCEDURE <имя>

 

 

 

Изменяет операторы Transact-SQL, содержащие в себе

 

 

 

AS < операторы_tsql>

 

 

 

 

хранимую процедуру

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ALTER VIEW <имя>

 

 

 

 

СУБД

 

 

 

 

 

ALTER TABLE <имя>

 

 

 

 

Изменяет определение таблицы (В этом уроке мы

 

 

 

 

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

 

 

 

 

подробно рассмотрим <определение изменения>.)

 

 

 

 

ALTER TRIGGER <имя>

 

 

 

 

Изменяет операторы Transact-SQL, содержащие в

 

 

 

 

{FOR | AFTER | INSTEAD OF}

 

 

 

себе триггер

 

 

 

 

<действие_dml>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

AS <оператор_выборки>

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

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

ALTER TABLE <имя>

{

[ALTER COLUMN <определение_столбца>] | [ADD <определение_столбца>] |

[DROP COLUMN <имя_столбца>] |

[ADD [WITH NOCHECK] CONSTRAINT <ограничение_для_таблицы>]

}

119

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

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

Ниже представлено несколько ограничений для фразы ALTER COLUMN. Столбец не может быть изменен, если он:

имеет тип данных text, image, ntext или timestamp;

является вычисляемым столбцом или используется в вычисляемом столбце;

используется в индексе – если только столбец не имеет тип данных varchar, nvarchar или varbinary; тип данных не изменяется и размер столбца не уменьшается;

используется в статистике, генерируемой оператором CREATE STATISTIC;

используется в ограничении PRIMARY KEY;

используется в ограничении FOREIGN KEY REFERENCES;

используется в ограничении CHECK;

используется в ограничении UNIQUE;

указывается как DEFAULT.

КАТУИзмените представленияИМ.С.СЕЙФУЛЛИНА

ALTER VIEW View_student AS

SELECT FIO, NameDisciplin

FROM traektoriya К.ТINNERJOIN.studentОМАРБЕКОВА А.С.

ON traektoriya.ID = student.ID

Добавьте столбцы в таблицу

ALTER TABLE StudentСУБД ADD pol varchar(20)

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

ALTER TABLE Student

ALTER COLUMN pol varchar(3)

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

ALTER TABLE Student DROP COLUMN pol

Удаление объектов

Оператор DROP удаляет объект базы данных. В отличие от операторов CREATE и ALTER, операторы DROP имеют простой и неизменный синтаксис:

DROP <тип_объекта> <имя>

120