- •Н.И. Коваленко
- •Коваленко н.И., Банчук г.Г.
- •Коваленко Надежда Ивановна
- •Тема I. Общие сведения о ms sql Server 2000
- •1. Базы данных типа клиент/сервер
- •Система типа клиент/сервер
- •2. История sql Server
- •Основные количественные показатели системы sql – сервер
- •3. Обзор sql Server 2000
- •4. Стандартные объекты sqlServer
- •ТемаIi. Работа с ms sqlServer2000 и его компонентами
- •1. Запуск, приостановка и завершение работы sqlServer
- •2. SqlServerEnterpriseManager
- •3. Программа sqlServerQueryAnalyzer
- •Панель инструментов утилиты Query Analyzer
- •4. Обслуживание баз данных
- •Файлы операционной системы, используемые sql Server 2000:
- •Структура базы данных
- •5. УстановкаMicrosoftSqlServer2000
- •Ограничения инсталляции sql-сервера
- •ТемаIii. Работа с базой данных создание и использование индексов и ключей
- •1. Базы данных и их свойства
- •Описание ролей, используемых для доступа к базе данных и серверу баз данных
- •Дополнительные опции настройки базы данных
- •Настройка параметров доступа к базе данных
- •2. Таблицы базы данных.
- •3. Типы данных, используемые в sql-сервере
- •Текстовые типы данных
- •Типы данных даты и времени
- •Типы данных для хранения больших объемов информации
- •Типы данных специального назначения:
- •4. Основные операции с базами данных
- •5. Восстановление бд (администрированиеSqlServer2000)
- •6. Создание и использование индексов и ключей в системе sql Server.
- •7. Использование ограничений
- •8. Использование диаграмм для разработки структуры базы данных
- •9. Создание представлений (видов)
- •ТемаIv. Правила и создание значения
- •1. Инструменты контроля целостности данных
- •2. Создание правил и стандартных значений
- •ТемаV. Триггеры в системеSql–сервер
- •1. Понятие триггера. Типы триггеров
- •2. Создание триггеров
- •3. Использование триггеров. Виды триггеров
- •ТемаVi. Оптимизация запросов и основы sql
- •1. Оптимизация запросов
- •2. Основные операторы sql в sql Server 2000
- •3. Объединение таблиц в операторе select
- •From titles
- •4. Использование директив group by иHaving
- •5. Оператор insert
- •6. ОператорUpdate
- •7. ОператорDelete
- •8. ОператорCreatetable
- •ТемаVii. Создание и работа с представлениями
- •1. Основные сведения о представлениях
- •2. Создание представлений. Отображение представлений
- •3. Редактирование представлений. Отображение зависимостей представлений. Создание представлений и представлений
- •4. Переименование столбцов представлений. Переименование представлений. Удаление представлений
- •5. Изменение данных посредством представлений. Обновление данных с помощьюSqlServerEnterpriseManager
- •ТемаViii. Создание и использование курсоров
- •1. Понятие курсора
- •2. Выборка данных из курсора
- •3. Операторы и глобальные переменные для работы с курсорами
- •4. Примеры использования курсоров
- •ТемаIx. Использование хранимых процедур
- •1. Достоинства и недостатки хранимых процедур
- •2.Создание хранимой процедуры
- •3. Операторы языка управления программой. Оператор declare
- •4. Операторы goto, begin…end и if…else
- •5. Операторы waitfor, return, while, break и continue
- •6. Операторы print и raiserror
- •7. Использование параметров в хранимых процедурах
- •8. Глобальные переменные. Отладка хранимых процедур
- •Тема X. Транзакции и блокировки
- •1. Определение транзакции. Ограничения для транзакций. Уровни изоляции транзакций
- •2. Базовая информация о блокировках. Типы блокировок
- •3. Создание транзакций и работа с ними. Точки сохранения
- •4.Отображение информации о блокировках. Явное задание блокировки
- •Описание параметров для явного задания блокировок
- •ТемаXi. Система безопасностиSqlServer2000
- •1. Типы безопасности. Создание и управление бюджетами пользователей
- •Стандартные роли сервера
- •Стандартные роли базы данных
- •2. Добавление новых пользователей. Удаление идентификаторов и пользователей
- •3. Создание ролей. Удаление ролей
- •4. Права доступа. Управление правами доступа
- •ТемаXii. Использование распределенных объектов управления.
- •1.Sql-dmo. Назначение, возможности
- •2. Экспорт данных с помощью команды вср
- •3. Использование объектовSql-dmOв хранимых процедурах
- •ТемаXiii. Основные сведения о хранилищах данных
- •1. Хранилища данных. Системы поддержки принятия решений (dss). Интерактивная аналитическая обработка (olap)
- •Сравнение субд и хранилища данных
- •2. Компоненты хранилища данных. Хранилища данных и магазины данных
- •3. Преобразование данных. Метаданные
- •4. Разработка плана хранилища данных
- •Microsoft Repository
- •С помощью мастера dts можно выполнять также простые преобразования данных, сложные преобразования выполняются с помощью dts Designer.
- •ТемаXiv. Использование служб преобразования данных
- •1. Службы преобразования данных (dts).DtSи хранилища данных
- •2. СредствоDtsDataPump
- •3. МастераDts
- •4. ИспользованиеDtsDesigner
- •Тема XV. Службы olap Microsoft sql Server
- •1.OlaPи многомерные данные
- •2. Хранение данных в бдolap
- •3. Оптимизация базы данныхOlap
- •4. Доступ к многомерным данным
From titles
3) SELECT ’наименований’=count(title)
FROM titles
Эти примеры демонстрируют возможности присвоения псевдонима различными способами. Поскольку столбец вычисляется, он пока не имеет имени, для него создается псевдоним.
4. Использование директив group by иHaving
Рассмотрим применение директивы группировки вместе с итоговой функцией, чтобы показать, как эта функция применяется к значениям внутри каждой отдельной группы. Для каждой группы авторов ведется собственный счет наименований, а не сквозной по всей таблице:
SELECT authors.au_lname, authors.au_fname,count(titles.title)’названий’
FROM authors, titleauthor, titles
WHERE authors.au_id = titleauthor.au_id
AND titleauthor.title_id = titles.title_id
GROUP BY authors.au_lname, authors.au_fname
С помощью псевдонима таблицы можно уменьшить длину оператора SQL. Обычно имена таблиц заменяются псевдонимами, состоящими из одного символа. Пример того же оператора, но с псевдонимами:
SELECT a.au_lname, a. au_ fname, count(c.title) ’названий’
FROM authors a, titleauthor b, titles c
WHERE a.an_id = b.au_id AND b.title_id = c.title_id
GROUP BY a.au_lname, a.au_fname
Еще один пример использования GROUP BY:
SELECT pub_id, type, “Число книг по заданной
тематике”=COUNT (type)
FROM titles
GROUP BY pub_id, type
Директива HAVING подобно WHERE используется для задания критерия отбора возвращаемых запросом данных. Различие связано с уровнем, на котором выполняется проверка критерия. В директиве WHERE критерий используется для ограничения количества строк, возвращаемых запросом. А затем директива GROUP BY формирует из этих строк группы и вычисляет заданные итоговые значения. Поле этого критерия директивы HAVING используется для ограничения количества групп в соответствии с данными на уровне группы.
Пример: HAVING используется для выборки имен только тех авторов, которые написали более одной книги:
SELECT a.au_lname, a. au_ fname, count(c.title) ’названий’
FROM authors a, titleauthor b, titles c
WHERE a.au_id = b.au_id AND b.title_id = c.title_id
GROUP BY a.au_lname, a.au_fname
HAVING count(c.title)>1
5. Оператор insert
Оператор INSERT используется для добавления строк в таблицу. В нем указывается таблица для добавления, конкретные столбцы, источник добавляемых данных и собственно значения данных.
Компоненты оператора INSERT:
INSERT INTO |
Задает таблицу, в которую будут добавлены строки
|
список столбцов |
Задает столбцы, в которые будут добавлены данные (используется, если данные добавляются не во все столбцы таблицы). Если список не задан, добавление производится во все столбцы в порядке, указанном в структуре таблицы
|
VALUES(список значений) |
Определяет значения, которыми будут заполнены соответствующие столбцы из списка
|
SELECT |
Выбирает строки, которые будут добавлены в таблицу |
Для представления добавляемых в таблицу данных используется либо список значений, либо оператор SELECT, но не оба одновременно.
Примеры:
1) Оператор INSERT со списком значений используется для добавления одной строки в таблицу titles:
INSERT INTO titles
VALUES (‘SM1234’, ‘The Small Business Tax Guide’, ‘business’, ‘1389’, 15.99, 3000, 10.0, ‘Tax guide for owners of small business’, ‘1/1/1997’)
2) В директиве INSERT можно так же задавать список заполняемых столбцов:
INSERT INTO titles (title_id, title)
VALUES(‘5678’,’Базы данных’)
3) Пусть имеется временная рабочая таблица newtitles, содержащая новую информацию о названиях печатных работ. Из этой таблицы нужно добавить в таблицу titles все записи о книгах, в столбце procdate которых содержится значение NULL:
INSERT INTO titles
(title_id, title, type, pub_id, price, advance, royalty, ytd_sales,
notes, pubdate)
SELECT title_id, title, type, pub_id, price, advance,
royalty, ytd_sales, notes, pubdate
FROM newtitles
WHERE procdate = NULL
Оператор INSERT INTO… SELECT можно интерпретировать как запрос, состоящий из двух частей. Сначала выполняется внутренняя часть запроса, содержащая SELECT, а затем результирующий набор строк передается оператору INSERT INTO и выполняется вторая фаза.