Архитектура сервера MS SQL-Server 2000

МИНИСТЕРСТВО НАУКИ И ОБРАЗОВАНИЯ УКРАИНЫ

НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ «ХАРЬКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ»

 

БРЕСЛАВЕЦ В.С.

 

 

МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ ЛАБОРАТОРНЫХ РАБОТ MS SQL-SERVER 2000

 

 

SQL методичка

 

 

ХАРЬКОВ 2009


Лабораторная работа №1

 

Архитектура сервера MS SQL-Server 2000

 

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

 

Системные базы данных

Таблица №1   Название Назначение Размещение …  

Dtwizard.exe– программа запуска мастера создания пакета DTS

isql.exe– программа выполнения команд SQL, системных хранимых процедур или файлов команд, использующая интерфейс SQL Server 6.5и библиотеку… isqlw.exe– программа запуска Query Analyzer; itwiz– программа запуска мастера индекса Index Tuning Wizard;

Лабораторная работа № 2

 

Логическая структура и физическая реализация баз данных

MS SQL Server 2000.

Цель работы –изучение логической структуры баз данных, которые создаются и используются в системах на основе сервера SQL Server 2000 и…   Данные в сервере SQL Server 2000 хранятся в базах данных. Структуру баз данных необходимо рассматривать на двух…

Лабораторная работа № 3

 

Основы программирования на Transact – SQL

Цель работы –изучение структурированного языка запросов Transact – SQL, являющегося основой системы программирования SQL Server 2000, и приобретение… Система программирования SQL Server 2000 относится к классу командно –…  

Лабораторная работа № 4

 

Создание, отладка и оптимизация SQL – модулей

Цель работы– приобретение навыков использования интегрированной среды утилиты SQL Server Query Analyzer для создания, хранения, отладки и…   Основной функцией сервера SQL Server 2000, выполняемой его службой MSSQLServer, является интерпретация команд языка…

Лабораторная работа №5

 

Создание и обслуживание баз данных сервера

Цель работы– изучение команд и системных хранимых процедур для создания, модификации, подключения, обслуживания, отключения и удаления баз данных, а…    

CREATE DATABASE Sales

ON PRIMARY (FILENAME =‘c:\Program Files\…\Data\SPrim1dat.mdf’) FOR ATTACH

GO

 

 

Повторите эти операции, используя системную хранимую процедуру sp_attach_db.

 

 

Задание 10.Создать базу данных с именем Employees, используя неформатированные разделы, выполнив команды:

 

 

USE master

GO

 

CREATE DATABASE Employees

ON

(NAME = Empl_dat,

FILENAME = ‘f:’ ,-- или ‘d:\sample data dir\’; SIZE = 10,

MAXSIZE = 50, FILEGROWTH = 5),

LOG ON

(NAME = Sales_log,

FILENAME = ‘g:’,-- или ‘d:\sample log dir\’; SIZE = 5,

MAXSIZE = 25, FILEGROWTH = 5)

 

GO

 

Лабораторная работа №6

 

Проектирование логической структуры базы данных

  Цель работы– ознакомление с основными понятиями и моделями баз данных,…  

Лабораторная работа №7

 

Создание, модификация и удаление таблиц

  Цель работы– изучение команд и системных хранимых процедур для создания,…  

Лабораторная работа №8

 

Добавление, извлечение, модификация и удаление данных в таблицах

 

 

Цель работы– изучение синтаксиса и семантики команд INSERT, SELECT, INTO, UPDATE, DELETE, их разделов SELECT, INTO, FROM, WHERE, GROUP BY, HAVING, UNION, ORDER BY, COMPUTE, FOR, OPTION и функций агрегирования, имеющихся в языке Transact- SQL для управления данными SQL Server 2000, а также приобретение навыков применения этих команд для манипулирования данными и использования программы массового копирования BCP (Bulk Copy Program) для включения в базы данных текстовых файлов.

 

 

SQL Server 2000 обеспечивает разнообразные механизмы управления данными, такие как ADO, OLE DB, ODBC, DB- Library и команды языка Transact-SQL, являющегося фундаментом всех остальных технологий. Для добавления данных в языке используются команды INSERT и SELECT INTO, для изменения данных – команда UPDATE и для удаления строк из таблиц – команда DELETE. Команда SELECT позволяет реализовать многофункциональный механизм доступа к данным любой сложности.

Команда INSERT позволяет вставить в таблицу одну или несколько строк. Упрощенный синтаксис этой команды таков:

 

 

INSERT [INTO] имя модифицируемой таблицы

[WITH (уровень блокировки запроса)]

{[(список колонок модифицируемой таблицы)]

{VALUES (список значений новой строки)\

команда SELECT}}\ DEFAULT VALUES

 

 

Если необходимо явно вставлять значения в колонки – счетчики, имеющие свойство

IDENTITY, то для модифицируемой таблицы надо выполнить команду: SET IDENTITY_INSERT имя модифицируемой таблицы ON


Если список столбцов не задан, то сервер будет вставлять данные последовательно во все столбцы, начиная с первого. Для каждого столбца должен быть указан аргумент, имеющий соответствующий тип. Аргументами могут быть константы, выражения соответствующего типа, значение NULL и значение по умолчанию DEFAULT. В списке столбцов можно не указывать столбцы со свойством IDENTITY, столбцы допускающие значение NULL и столбцы типа timestamp.

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

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

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

 

 

SELECT список выбираемых колонок исходных таблиц INTO имя автоматически создаваемой таблицы FROM список исходных таблиц

[условия выбора значений из таблиц]

 

 

Имена колонок новой таблицы либо совпадают с именами колонок исходных таблиц, либо задаются после ключевого слова AS, следующего за именем колонки исходной таблицы. Имя создаваемой таблицы должно быть уникальным в пределах базы данных. Чаще всего эта команда используется для создания временных локальных (#) и глобальных (##) таблиц.

Для любой базы данных использование команды SELECT… INTO запрещено. Для установки разрешения на ее использование необходимо выполнить команду:

 

 

EXES sp_dboption ‘имя базы данных’, ‘select into/bulkcopy’, ‘on’

 

 

Наиболее часто доступ к данным реализуется командой SELECT, начиная от простой выборки всех строк одной таблицы и кончая сложными запросами, обрабатывающими десятками и сотнями тысяч строк в десятках таблиц.

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

 

 

SELECT опции выбора список выбора

[INTO новая таблица]

FROM список исходных таблиц или представлений

[WHERE условие поиска]

[GROUP BY условие группировки] [HAVLNG условия группового поиска]

[ORDER BY выражение для упорядочивания [AS\DESC]]

 

 

Части этой команды называются разделами и должна записываться в запросе именно в данном порядке.

 

Опции выбора определяют количественные характеристики запроса:

 

ALL – все строки таблицы;

DISTINCT – все несовпадающие строки таблицы; TOP n – первые n несовпадающие строки таблицы; TOP n PERCENT – первые n% несовпадающих строк;


WITH TIES – разрешает вывод дублирующих строк для последних двух вариантов.

 

 

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

Если в качестве списка выбора задана звездочка (*), то в запрос будут включены все столбцы всех таблиц и представлений, заданных в качестве источников данных. Если в списке задана конструкция имя. *, то это означает, в список выбора надо включить все колонки объекта с данным именем. В список выбора можно включить и выражения, тогда их значения будут вычисляться при формировании каждой строки. Эта колонка будет либо безымянной, либо будет иметь имя, заданной конструкцией AS, следующей после выражения. Элемент списка в виде имя. IDENTICOL [AS имя счетчика] позволяет включить в результат колонку – счетчик объекта с данным именем. С помощью ключевого слова POWGVIDCOL аналогичным образом можно включить глобально уникальный идентификатор строк того или иного объекта.

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

Раздел FROM является обязательным в команде SELECT и определяет таблицы и представления для выборки данных. Если таблица одновременно является и источником данных, и получателем результатов, то ей необходимо задать псевдоним с помощью конструкции AS, что обеспечит правильную работу сервера. Для таблиц можно указывать уровни блокировок: HOLDLOCK, NOLOCK и т.д.

В разделе FROM можно задавать связанные таблицы для формирования сложных запросов:

исходная таблица, тип связи, исходная таблица

ON условие поиска или

исходная таблица CROSS JOIN исходная таблица.

При использовании ключевых слов CROSS JOIN или запятой происходит связывание каждой строки левой таблицы с каждой строкой правой таблицы, так что количество строк при выполнении запроса определяется как произведение количества строк первой таблицы на количество строк второй таблицы.

При использовании ключевых слов INNER JOIN или пробела выбираются пары строк из связанных таблиц, для которых имеются строки, удовлетворяющие критерию связывания в обеих таблицах. Строки из левой таблицы, для которых не имеется пары в связанной таблице, в результат не включаются. Также не включаются строки правой таблицы, для которых нет соответствующей строки в левой таблице.

При использовании ключевых слов LEFT [OUTER] JOIN в результат будут включены все строки левой таблицы, независимо от того, есть для них соответствующая строка в правой таблице или нет, при этом для соответствующих столбцов правой таблицы, включенных в запрос, при отсутствии соответствия будут заноситься значения NULL.

При использовании ключевых слов RIGHT [OUTER] JOIN в результат будут включены все строки правой таблицы, независимо от того, есть для них соответствующие строки в левой таблице. В столбцах левой таблицы, для тех строк, для которых нет соответствия, запишутся значения NULL.

При использовании ключевых слов FULL [OUTER] JOIN в результат будут включены все строки как правой, так и левой таблицы.

Логическое условие связывания двух таблиц, которое записывается после ключевого слово ON, должно быть логическим выражением, включающим любые операторы сравнения: =, <,

>, <=, >=,! =, <>. В ряде случаев в запросах используются опции оптимизации: LOOP, HASH, MERGE, REMOTE. Если эти опции не заданы, то оптимизацию запросов осуществляет сервер.

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

написав одно или несколько логических условий:

 

 

WHERE условие поиска

или имя колонки * = имя колонки -- LEFT OUTER JOIN

или имя колонки * = имя колонки -- RIGHT OUTER JOIN


Логическое условие может быть произвольным, в том числе и не связанным с данными. Оно может включать логические операторы NOT, AND и OR. В ряде случаев, в особенности для сложных запросов предпочтительнее использовать условия связывания * = (аналог LEFT OUTER JOIN) или = * (аналог RIGHT OUTER JOIN), которые выполняются гораздо эффективнее.

Раздел GROUP BY позволяет выполнить группировку строк таблиц по определенным критериям. Для каждой группы можно выполнить специальные функции агрегирования, которые будут применены ко всем строкам группы:

 

 

AVG (имя столбца) – среднее значение в группе; SUM (имя столбца) – сумма значений группы;

MIN (имя столбца) – минимальное значение в группе; MAX (имя столбца) – максимальное значение в группе;

COUNT (имя столбца) – число строк в группе с непустым значением; COUNT (*) – число строк в группе, включая и пустые (NULL).

 

 

Синтаксис раздела следующий:

 

 

GROUP BY условие группировки --или BY ALL [WITH CUBE или ROLLUP] --супергруппировка.

 

 

В качестве условия группировки задается имя одного или нескольких столбцов таблицы. Именно эти столбцы должны быть включены в запрос. Наличие других столбцов не допускается. Если в запросе было определено условие, сужающее диапазон группировки выбираемых строк, то включение слова ALL обеспечит вывод всех групп, но функции агрегирования для дополнительных групп выполняться не будут.

Ключевое слово WITH CUBE инициирует суперагрегирование, когда в результат включаются строки, являющиеся результатом агрегирования уже агрегированных данных. В итоге получается многоуровневое агрегирование с итоговыми данными по всем уровням. Опция WITH ROLLUP позволяет устранить лишние строки при суперагрегировании.

Раздел HAVING задает условия поиска при определении групп с помощью раздела

GROUP BY:

 

 

HAVING условие поиска

 

 

Этот раздел аналогичен разделу WHERE.

Раздел UNION позволяет выполнить объединение данных из нескольких таблиц, имеющих одинаковый список столбцов, порядок их следования и свойства, при этом по умолчанию дублирующие строки не включаются, если не задано ключевое слово ALL:

 

SELECT список столбцов FROM имя первой таблицы

UNION [ALL]

SELECT список столбцов FROM имя второй таблицы и т.д.

 

 

Раздел ORDER BY используется, когда необходимо отсортировать данные в результирующем наборе:

 

ORDER BY имя столбца в запросе [ASC или DESC],  
  имя столбца в запросе [ASC или DESC]…
Здесь ключевые слова ASC и DESC обеспечивают сортировку соответственно по

возрастанию или убыванию значений в соответствующем столбце.

Раздел COMPUTE позволяет применять к выбираемым столбцам функции агрегирования:

 

COMPUTE функция агрегирования (имя столбца запроса)


BY имена для группировки

 

Порядок использования столбцов в функциях агрегирования должен соответствовать порядку следования столбцов, указанному в разделе ORDER BY. Не допускается также использование ключевого слова DISTINCT.

Изменение данных в таблицах или задание значений переменным производится командой

UPDATE:

 

UPDATE имя таблицы или представления WITH блокировка SET имя колонки или переменной = выражение… FROM имена исходных таблиц

WHERE условия поиска

Удаление данных из таблиц производится командой DELETE: DELETE FROM имя таблицы или представления

или

 

DELETE FROM имя таблицы

WHERE условие поиска OPTION (уровни блокировки)

 

Экспорт данных из таблиц в файлы и импорт из файлов производиться утилитой bcp: Bcp “Northwind..shippers” out file.txt-c--символьный.

Задание 1.Создать базу данных InsertDB и необходимые таблицы для выполнения следующих команд INSERT:

 

 

A)Использование простой команды INSERT:

Create Database InsertDB

Create Table TabA(Col1 int,Col2 varchar(30)) Insert TabA Values(1,'Пример 1')

Select * From TabA

 

B)Использование произвольной последовательности колонок таблицы:

Create Table TabB(Col1 int,Col2 varchar(30)) Insert TabB (Col2,Col1) Values('Пример В',1)

Select * From TabB

 

C)Использование нулевых значений и значений по умолчанию:

Create Table TabC(Col1 int IDENTITY, Col2 varchar(30)

CONSTRAINT default_name DEFAULT('Значение TabC.Col2'), Col3 int NULL,

Col4 varchar(40))

Insert Into TabC(Col4) Values('Значение 1 TabC.Col4')

Insert Into TabC(Col2,Col4) Values('Явное значение TabC.Col2','Значение 2 TabC.Col4') Insert Into TabC(Col2,Col3,Col4) Values('SAV',44, 'ABC')

Select * From TabC

 

D) Явное задание значения для колонки-счетчика (с ограничением IDENTITY):

Create Table TabD(Col1 int IDENTITY, Col2 varchar(30))

Insert Into TabD Values('Счетчик изменяется автоматически') Insert Into TabD(Col2) Values('Вторая строка')


Set IDENTITY_INSERT TabD ON

Insert Into TabD(Col1,Col2) Values(-99, 'Явное значение') Select * From TabD

 

E)Использование представления для занесения значений в таблицу:

Create Table TabE(Col1 int,Col2 varchar(30)) GO

Create View ViewE AS Select Col2,Col1 From TabE GO

Insert Into ViewE Values('Строка 1',1) -- порядок ViewE Select * From TabE -- порядок TablE

 

F)Использование опции DEFAULT VALUES:

Create Default bound_default2 AS 'Col4' GO

Create Table TabF(Col1 int IDENTITY, Col2 varchar(30)

CONSTRAINT Fdefault_name DEFAULT('Значение TabF.Col2'), Col3 timestamp,

Col4 varchar(30), Col5 int NULL

)

GO

EXEC sp_bindefault 'bound_default2','TabF.Col4' GO

USE InsertDB

Insert Into TabF DEFAULT VALUES Select * From TabF

 

G)Использование команды SELECT для копирования данных в таблицу:

Create Table TabG(Col1 int IDENTITY, Col2 varchar(50))

GO

Set IDENTITY_INSERT TabG ON GO

Insert Into TabG (Col1,Col2) Select Col1,Col2 From TabD GO

Select * From TabG GO

 

Использование команды SELECT для копирования данных из таблицы:

Create Table TabG(Col1 int IDENTITY, Col2 varchar(30))

Set IDENTITY_INSERT TabG ON Insert Into TabG

Select * From TabD Select * From TabG

 

H)Копирование таблиц из базы данных Northwind в базу данных НордОст:

USE НордОст

[Set IDENTITY_INSERT имя таблиц из НордОст ON] Insert Into имя таблицы из НордОст

Select * From Northwind.dbo. Имя таблицы из Northwind

 

I)Использование команды SELECT...INTO:


EXEC sp_dboption ‘InsertDB’, ‘select into/bulkCopy’, ‘on’ SELECT Col1 AS Счетчик, Col2 AS Имя,

Col3 AS Версия, Col5 AS Номер

Into Новая_TabF From TabF

 

J)Выборка начальных строк таблицы:

USE Northwind

Select Top 7 * From Territories --различные

Select Top 10 Percent * From Territories --различные упорядоченные по TerritoryID Select Order By TerritoryID With Ties * From Territories --все 7

Select All * From Territories --все строки таблицы

Select Distinct * From Territories -- все без дублирующих

 

K)Использование псевдонимов в запросе:

USE Pubs

Select Top 10 au_id, au_fname AS [Фамилия], au_lname

From Authors --имя 2-го столбца изменено

 

L)Включение в результат дополнительного столбца-выражения:

Select Top 7 NewID() AS Глобальный_уникальный_номер, '--', au_id, DatePart

(ms,GetDate())

From Authors --три колонки являются выражениями,из них две-безыменные

 

M)Использование подзапроса,возвращающего одну строку:

Select Top 5 (Select au_fname From authors --значение подзапроса определяется

Where au_id='527-72-3246') AS Подзапрос, --заново для каждой строки

title_id

From Titles

 

N)Включение столбца-счетчика:

Select Top 50 Percent jobs.IDENTITYCOL AS Number, job_id, job_desc From jobs

-- для одной таблицы задание ее имени для счетчика необязательно, т.е.jobs

необязательно

 

O)Использование ключевых слов CROSS JOIN для связывания двух таблиц:

USE Pubs

SELECT discounts.stor_id, discounts. discounttype, stores.stor_name

FROM discounts CROSS JOIN stores --3*6=18 строк

-- убедиться, что CROSS JOIN можно заменить запятой

 

P)Использование ключевых слов INNER JOIN для связывания двух таблиц: SELECT authors.au_lname, authors.au_fname, titleauthor.au_ord, titleauthor.royaltyper FROM authors INEER JOIN titleauthor

ON authors.au_id = titleauthor.au_id

WHERE authors.sate = 'CA'

-- убедиться, что можно INNER JOIN заменить пробелом

 

Q)Использование ключевых слов LEFT OUTER JOIN для связывания двух таблиц:

SELECT authors.au_lname, authors.au_fname, titleauthor.royaltyper

FROM authors LEFT OUTER JOIN titleauthor

ON authors.au_id = titleauthor.au_id

WHERE (authors.state = 'CA') --19 строк


R)Использование ключевых слов RIGHT OUTER JOIN для связывания двух таблиц: SELECT titleauthor.au_ord, titleauthor.royaltyper, authors.au_lname, authors.au_fname FROM titleauthor RIGHT OUTER JOIN authors

ON titleauthor.au_id = authors.au_id

WHERE (authors.state = 'CA') --19 строк

 

S)Использование ключевых слов FULL OUTER JOIN для связывания двух таблиц:

SELECT discounts.stor_id, discounts.discounttype, stores.stor_name

FROM discounts FULL OUTER JOIN stores

ON discounts.stor_id = stores.stor_id --8 строк

-- убедиться, что в примерах Q,R и S слово OUTER можно опустить

 

T)Использование раздела WHERE оператора SELECT: Select * From authors Where 3=6 --0 строк Select * From authors Where state <> 'CA' --Калифорния Declare @@Var1 int

Set @@Var1 = 4095

Slect title_id, type, pub_id, price From titles

Where ((ytd_sales = @@Var1) OR

(price BETWEEN 5 AND 15)) --9 строк

-- заменить OR на AND и убедиться, что получится одна строка

Select discounts.stor_id, discounts.discounttype, stores.stor_name

From discounts, stores --здесь”,”-это CROSS JOIN Where disscounts.stor_id = stores.stor_id --1 строка

--это уже INNER OUTER JOIN

-- Аналог этой команды следующий:

Select discounts/stor_id, discounts.discounttype, stores.stor_name

From discounts INEER JOIN stores

ON discounts.stor_id = stores.stor_id

-- этот запрос эффективнее предшествующего.

Select discounts.stor_id, discounts.discounttype, stores.stor_name

From discounts, stores

Where discounts.stor_id, *= stores.stor_id--3 строки

-- это - аналог LEFT OUTER JOIN: Select discounts.stor_id, discounts.disconttype, stores.stor_name From discounts LEFT OUTER JOIN stores

ON discounts.stor_id = stores.stor_id --3 строки

 

Select discounts.stor_id, discounts.discounttype, stores.stor_name

Where discounts.stor_id =* stores.stor_id

-- это - аналог RIGHT OUTER JOIN Select discounts.stor_id, discounts.discounttype, stores.stor_name From discounts RIGHT OUTER JOIN stores

ON discounts.stor_id = stores.stor_id --6 строк

 

U)Использование разделов GROUP BY и HAVING:

Select type, SUM(price), COUNT(*)

From titles -- type-тип изданий

Group By type --6 строк

-- выдается колонка type, колонка SUM и счетчик COUNT Select type, SUM(price), count = COUNT(*) -- имя столбца

Form titles

Where type < 'ps'

Group BY type --3 строки


Select type, SUM(price), count = COUNT(*) -- имя счетчика count

From titles

Where type < 'ps'

Group By ALL type --6 строк

-- строки с type >= 'ps'- без агрегирования

Select type, pub_id, SUM(price), COUNT(*) From titles

Where price <> 0

Group By type, pub_id --7 агрегированных строк

 

Select type, pub_id, SUM(price), COUNT(*) From titles

Where price <> 0

Group By type, pub_id With Cube --суперагрегирование

Select type, pub_id, SUM(price), COUNT(*) From titles

Where price <> 0

Group By type, pub_id --13 строк

With ROLLUP

 

V)Объединение таблиц с помощью раздела UNION:

USE Northwind

Select City, Phone Info #Tab1 From customers

Where contacttitle = 'Marketing Assistant' Select City, Phone Info #Tab 2 From Customers

Where contacttitle = 'Sales Associate' Selest City, Phone From #Tab1

UNION

Select City, Phone From #Tab2

 

W)Использование раздела ORDER BY:

USE Northwind

Select ContactTitle, City From Customers

Where ContactTitle IN ('Marketing Assistant'

'Sales Agent'

'Sales Associate')

Order By ContactTitle,City --18 строк

 

X)Использование раздела COMPUTE:

Select title_id, price From Titles

Where (type = 'bisiness') OR (type = 'mod_cook') Compute SUM(price), COUNT(price) --6строк и

 


 

 

Select title_id, price From Titles


-- SUM

-- =====

--77.9000

-- CNT

-- =====

-- 6 --всего 7строк


Where (type = 'business') OR (type = 'mod_cook') Order By type

Compute Count(price), Sum(Price) By type

 

Y)Обработка данных с помощью команды UPDATE:

Declare @@Var1 int


SET @@Var1 = 0

Update #TempTableAuthors SET @@Var1 = @@Var1 + 1

Where Contact = 0

Select @@Var1

GO

Declare @@Var2 varchar(40)

Update #TempTableAuthors SET @@Var2 = au_lname = au_lname + '__NO CONTRACT ' Where Contact = 0

Select au_id, au_lname, phone From #TempTableAuthors --2строки

Where Contract = 0

Select @@Var2 AS 'Значение переменной @@Var2' --1строка

 

Z)Использование команды DELETE:

Delete From #TempTableAuthors

Select * From #TempTableAuthors --0строк

 

 

Лабораторная работа №9

 

Планирование использования, создание и управление индексами

  Цель работы– изучение назначения, типов и способов определения индексов,…  

Лабораторная работа №10

 

Создание и управление представлениями

  Цель работы– изучение назначения представлений баз данных, синтаксиса и…  

Лабораторная работа №11

 

Создание, изменение, применение и удаление функций и хранимых процедур

  Цель работы– изучение синтаксиса и семантики функций и хранимых процедур… – SQL: способов их идентификации, методов задания и спецификации параметров и возвращаемых значений, кодирования тела…

Лабораторная работа №12

 

Создание, программирование и управление триггерами

  Цель работы– изучение назначения и типов триггеров, условий их активации,…  

Лабораторная работа №13

 

Создание и управление транзакциями

  Цель работы– изучение способов обеспечения надежной работы SQL Server 2000 с… Одним из способов повышения надежности работы системы MS SQL Server 2000 является применение встроенного в систему…

Лабораторная работа №14

 

Управление и мониторинг блокировок

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

Лабораторная работа №15

 

 

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

  Цель работы– изучение назначения и типов курсоров, синтаксиса и семантики…  

Лабораторная работа №16

 

Реализация клиентских приложений баз данных

Цель работы– изучить методы создания и использования клиентских приложений для работы с базами данных SQL Server 2000. На примере создания…   Серверы технологических данных обеспечивают обмен информацией между технологическими устройствами и сетью персональных…

Компоненты среды Delphi 6 для связи с SQL Server 2000

Компонент ADO-Таблица (TADOTable)

Назначение

Для доступа к конкретной таблице базы данных используется этот компонент. Он напоминает компонент Таблица (ТТаblе).

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

базы данных, а затем в свойстве TableNameвыбирается нужная таблица (Num_pod). Есть еще один способ соединения с базой данных это свойство…    

Назначение

Если возникает необходимость представления нескольких полей из различных таблиц,

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

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

ADOQuery1.Active:=false; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select*from Num_pod'); ADOQuery1.Active:=true; После выполнения этой команды будет тот же эффект, что и выше с таблицей.

Назначение

TADOQuery.Он содержит несложный редактор SQL-команд, вызываемый при обращении к свойству CommandText    

Лабораторная работа № 17

 

Система безопасности SQL Server 2000

Цель работы– изучение общих правил разграничения и предоставление прав доступа пользователям баз данных, архитектуры и компонент системы… системы безопасности: создания и управления учетными записями, управления… ролями и группами.

Лабораторная работа № 18

 

 

Регистрация серверов SQL

Цель работы –приобретение навыков регистрации удаленных серверов с помощью утилиты Enterprise Manager, мастера Register Server Wizard, а также…   Перед использованием локального или удаленного сервера в среде Enterprise Manager его необходимо зарегистрировать.

Лабораторная работа № 19

 

 

Запуск, остановка и приостановка служб сервера

Цель работы– приобретение навыков управления основной службой MSSQLServer и вспомогательными службами сервера MS SQL Server 2000: задание режима…   До выполнения каких-либо работ по администрированию сервера MS SQL Server 2000 или баз данных, а также манипулированию…

Лабораторная работа № 20.

 

 

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

SQL Server 2000 имеет множество инструментов для импорта и экспорта данных. Лучшим является служба преобразования данных Data Transformation Services (DTS), которая пре- доставляет набор инструментальных средств. Она также позволяет извлекать, преобразовывать и объединять данные из источников данных разной природы, расположенных как в одном, так и в разных местах. Можно управлять данными, используя инструментальные средства DTS, для графического построения пакетов DTS или создавая объектно-ориентированные пакеты DTS. Пакет DTS – это объект, в котором хранится описание выполняемых в ходе импорта, экспорта и


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

 

Задание1.Осуществить передачу данных с помощью мастера Data Transformation Services(DTS), используя способ Copy table(s) and view(s) from the source database(копировать таблицу(таблицы) и представление(представления) из источника), выполнив следующие действия:

1. Запустить мастер: Пуск \ Программы \ Microsoft SQL Server \ Import and Export Data.

2. В первом открывшемся окне, которое содержит общую информацию о работе мастера,

щёлкнуть по кнопке Next.

3. Во втором окне в раскрывающемся списке Source(источник) необходимо выбрать тип источника данных; в списке Server(сервер) выбрать сервера-источника; указать список аутентификации; в списке Database выбрать базу данных, в которую будет осуществляться взаимодействие. После этого щёлкнуть по кнопке Next.

4. Для редактирования, по необходимости, параметров конфигурации щёлкнуть на кнопке

Advanced(дополнительно).

5. В третьем окне сконфигурировать получатель: в раскрывающемся списке Database(база данных) выбрать пункт New(создать) и создать новую базу данных.

6. В четвёртом окне DTS Wizard выбрать способ передачи данных Copy table(s) and view(s)

from the source database.

7. В пятом окне в столбце Source Table(таблица источник) выбрать одну или более таблиц или представлений для копирования.

8. Для того, чтобы увидеть содержание исходной таблицы, щёлкните на кнопке

Preview(просмотр).

9. В столбце Destination(получатель) указать имя таблицы-получателя.

10. Если необходимо выполнить преобразование данных, то в столбце Transform(преобразование) для соответствующей таблицы щёлкните на кнопке с многоточием. В открывшемся окне можно настроить процесс трансформации не только самих данных, но и их типов.

11. Следующее окно мастера DTS Wizard (рис. 24.22) будет общим для всех способов переноса. В этом окне для созданного пакета DTS указать способ его сохранения.

12. Если выбрали вариант SQL Server, то необходимо установить параметры:

- в поле Name(имя) указывается имя, под которым пакет DTS будет сохранен в системной базе данных msdb;

- в поле Description (описание) можно ввести описание объекта в произвольной форме;

- в поле Owner Password (пароль владельца), чтобы скрыть информацию, указанную при создании пакета, от просмотра неавторизированными пользователями, можно установить пароль владельца;

- установив в поле User Password (пароль пользователя) пароль пользователя, можно запретить выполнение пакета пользователями, которые не имеют на это права. Только те пользователи, которые знают пароль, смогут выполнить пакет DTS.

- в списке Server name (имя сервера) выбирается имя сервера, на котором будет сохранен пакет DTS.

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

14. При выборе двух оставшихся режимов хранения мастер выведет окно, в котором помимо имени, описания, пароля пользователя и пароля владельца необходимо

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

На этом работа с мастером DTS Wizard по созданию пакетов для импорта экспорта данных заканчивается. В последнем окне (рис. 24.28) приведена сводная информация о созданном пакете. После щелчка на кнопке Finish(готово) будет создан сам пакет.


15. Если при создании пакета было задано его незамедлительное выполнение, то мастер откроет окно Executing Package (выполнение пакета), позволяющее следить за процессом выполнения пакета.

Задание2.Осуществить передачу данных с помощью мастера Data Transformation Services(DTS), используя способ Use a query to specify the data to transfer(использовать запрос для выборки данных)

, выполнив следующие действия:

1. Выполнить с первого по пятый пункты задания1.

2. В четвёртом окне мастера DTS Wizard установить переключатель Use a query to specify the data to transfer.

3. В открывшемся окне ввести SQL-код запроса; если имеется готовый код, сохранённый на диске, его можно подключить, воспользовавшись кнопкой Browse(обзор).

4. Если необходимо написать сложный запрос с перечислением множества таблиц и столбцов и при этом гарантировать, что указаны правильные имена объектов, можно воспользоваться встроенным в мастер конструктором запросов. Для вызова конструктора запроса щелкнуть на кнопке Query Builder (конструктор запросов). Откроется окно, в котором нужно выбрать, какие столбцы, из каких таблиц будут включены в запрос.

5. Щёлкнуть по кнопке Next.

6. В открывшемся окне, перенося имена столбцов из левой части окна в правую, задать порядок сортировки, которая ведётся по столбцам, указанным в самом верху списка.

7. Щёлкнуть по кнопке Next.

8. В следующем окне указать критерии для выборки данных: установить указатель Only

Rows meeting criteria(только строки, соответствующие критерию).

9. Если необходимости в фильтрации нет, установите переключатель All rows(все строки).

Нажмите на кнопку OK.

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

11. После настройки трансформации данных необходимо сохранить пакет DTS одним из способов, которые указаны в предыдущем задании.

Задание3.Осуществить передачу данных с помощью мастера Data Transformation Services(DTS), используя способ Copy objects and data between SQL Server databases(копировать объекты и данные между базами данных SQL Server), выполнив следующие действия:

1. Выполнить с первого по пятый пункты задания1.

2. В четвёртом окне мастера DTS Wizard установить переключатель Copy objects and data between SQL Server databases.

3. Щёлкнуть на кнопке Next.

4. В открывшемся окне указать, какие объекты и данные будут копироваться: установка флажка Create destination objects – создание переносимых объектов; установка флажка Drop destination objects first – удаление всех одноимённых объектов из конечной базы данных; установка флажка Include all dependent objects – включение всех зависимых объектов; установка флажка Copy data – копирование только структуры объектов.

5. Установив флажок Copy all objects, выполняется копирование всех объектов.

6. Если необходимо скопировать только часть объектов, сбросьте флажок Copy all objects

и выберите нужные объекты, щёлкнув на кнопке Select Objects(выбор объектов).

7. Чтобы выбрать только некоторые их них, в окне мастера сбросьте флажок Use default options(использовать параметры по умолчанию). После щелчка на кнопке Options(параметры) в открывшемся окне укажите объекты, которые необходимо скопировать.

8. После указания объектов необходимо сохранить пакет DTS одним из способов, которые указаны в первом задании. После будет создан сам пакет.


Контрольные вопросы:

1.На каких критериях следует основываться при выборе метода импорта или экспорта данных.

2.Что собой представляет служба преобразования данных Data Transformation Serviced(DTS).

3.Какие способы передачи данных можно выделить, используя мастер Data Transformation

Serviced(DTS) Import and Export Wizard.

4.Какими способами можно осуществить хранение пакета DTS.

5.Что собой представляет внутренняя структура пакета DTS.

 

Лабораторная работа № 21.

 

Публикация данных с помощью HTML-страниц в системе SQL Server 2000

Цель работы– ознакомление с основными концепциями и технологиями, лежащими в основе функционирования сервера, и реализующими и их компонентами:…   SQL Server 2000 позволяет достаточно легко выдавать данные из таблиц баз данных сервера на Web-сервер, используя либо…

Имя виртуального каталога

5 Выбрать вкладку Security для управления параметрами подключения к серверу MS SQL Server 2000 Web-сервера, который подключается к базе данных и на… Log on as Credentials – аутентификация всех пользователей будет производится… Account Type – тип учетной записи: SQL Server или Windows NT; User Name - имя учетной записи;