- •Введение
- •Содержание
- •1. Файловые системы
- •История развития
- •Файловые системы, принципы построения
- •Работа с типизированным файлом
- •Недостатки файловых систем
- •Задание
- •Реляционная таблица
- •Определение домена
- •Создание таблиц в среде Microsoft Access
- •Задание
- •Реляционные ключи
- •Связь между таблицами
- •Обеспечение целостности данных
- •Построение схемы данных средствами Microsoft Access
- •Мастер подстановок
- •Задание
- •Концепция ER-модели
- •Задание
- •Первая нормальная форма (1NF)
- •Вторая нормальная форма (2NF)
- •Третья нормальная форма (3NF)
- •Нормальная форма Бойса-Кодда (BCNF)
- •Четвёртая нормальная форма (4NF)
- •Пятая нормальная форма (5NF)
- •Задание
- •Выборка значений из таблиц – SELECT
- •Порядок сортировки – ORDER BY
- •Ограничение набора данных – WHERE
- •Предикат существования EXISTS
- •Агрегатные функции
- •Группировка данных – Group By
- •Псевдонимы столбцов
- •Псевдонимы таблиц
- •Объединение нескольких таблиц
- •Построение запросов в среде Microsoft Access
- •Задание
- •Вставка новой записи – INSERT
- •Редактирование данных – UPDATE
- •Удаление записей – DELETE
- •Задание
- •Основные типы данных SQL-92
- •Язык определения данных – DDL
- •Задание
- •Подготовка отчёта в среде Access
- •Задание
- •3-х уровневая архитектура ANSI-SPARC
- •Создание форм для ввода данных в Microsoft Access
- •Задание
- •Строка соединения ADO
- •Соединение с хранилищем данных, компонент TADOConnection
- •Установка соединения
- •Пример соединения без регистрации пользователя
- •Информирование о БД
- •Задание
- •Базовый класс доступа к данным TDataSet
- •Открытие и закрытие набора данных
- •Обновление набора данных
- •Перемещение по набору данных
- •Создание закладок и переход к закладке
- •Редактирование записей в наборе
- •Фильтрация набора данных
- •Организация поиска данных
- •Взаимодействие с элементами управления данными
- •Задание
- •Поле таблицы – класс TField
- •Классификация полей по функциональному назначению
- •Классификация полей по типу обслуживаемых данных
- •Обращение к отдельному объекту-полю
- •Задание
- •Поля подстановки
- •Вычисляемые поля
- •Организация отношения главная-подчинённая таблица
- •Задание
- •Поля BLOB
- •Задание
- •Источник данных – компонент TDataSource
- •Общие черты компонентов отображения данных
- •Сетка базы данных – компонент TDBGrid
- •Статический текст – компонент TDBText
- •Строка ввода БД – компонент TDBEdit
- •Многострочный текстовый редактор БД – TDBMemo
- •Изображение БД – компонент TDBImage
- •Список БД – TDBListBox
- •Комбинированный список БД – TDBComboBox
- •Флажок БД – TDBCheckBox
- •Радиогруппа БД – TDBRadioGroup
- •Компонент – TDBCtrlGrid
- •Навигатор – TDBNavigator
- •Задание
- •Создание базы данных
- •Удаление базы данных
- •Создание таблиц
- •Пример создания таблиц средствами Transact SQL
- •Создание представлений
- •Задание
- •Определение и использование переменных
- •Операторы управления Transact-SQL
- •Базовые функции Transact-SQL
- •Хранимые процедуры
- •Триггеры
- •Задание
- •Запрос TADOQuery
- •Хранимая процедура TADOStoredProc
- •Транзакции и их изоляция
- •Управление транзакциями и компонент TADOConnection
- •Задание
- •Построение простейшего документа XML
- •Атрибуты
- •Определение документа DTD
- •Задание
108
Рисунок 17.5. – Создание представления с помощью мастера
Этого же результата можно добиться, выполнив следующую команду на языке SQL:
CREATE VIEW vn_Continent_Country
AS
SELECT Continent.Continent_ID, Continent.Continent, Country.Country, Country.City, Country.Population, Country.Area, Country.Country_ID
FROM Continent
INNER JOIN Country ON Continent.Continent_ID = Country.Continent_ID
Задание
В соответствии со схемой данных разработанной на 4-й лабораторной работе создайте свой проект БД средствами Microsoft SQL Server.
© 2011 г. Д.Л. Осипов
109
XVIII. Введение в Microsoft Transact SQL
Вид занятия – лабораторное занятие. Время занятия – 2 часа.
Программное обеспечение – Microsoft SQL Server 2005.
Каждая из современных реляционных СУБД внесла свои дополнения в стандартизированный ещё в прошлом веке язык структурированных запросов SQL-92. Это занятие посвящено некоторым особенностями одного из самых известных диалектов SQL – языка
Transact-SQL.
В рамках Transact-SQL практически полностью поддержан язык SQL-92, кроме того, Transact-SQL обладает несколькими сотнями новых функций и хранимых процедур.
Определение и использование переменных
Переменные в Transact-SQL могут быть локальными или глобальными. Локальные переменные определяются с помощью оператора DECLARE. Перед именем переменной всегда ставится символ “@”, а перед именем глобальной два таких символа.
DECLARE @имя_переменной тип_данных
Например:
DECLARE @S CHAR(20), @I INTEGER
Для вывода переменной на экран можно использовать команду PRINT.
Для преобразования типа данных применяются функции CONVERT или CAST. Для присвоения переменной значения применяется оператор SET или SELECT.
В MS SQL объявлен ряд глобальных переменных, которые Вы сможете применять в своей работе. Некоторые из них представлены в таблице 18.1.
|
|
Глобальные переменные. Таблица 18.1 |
|
|
Название |
Описание |
|
|
@@CONNECTIONS |
Общее количество соединений с сервером или попыток входа в |
|
|
|
систему. |
|
|
@@ERROR |
Номер последней системной ошибки; в случае отсутствия |
|
|
|
ошибок это значение равно 0. |
|
|
@@FETCH_STATUS |
Состояние последнего выполненного оператора FETCH. |
|
|
@@IDENTITY |
Значение последней вставленной в столбец IDENTITY величи- |
|
|
|
ны. |
|
|
@SIDLE |
Суммарное время простоя центрального процессора сервера. |
|
|
@@IO_BUSY |
Суммарное время, затраченное сервером на выполнение опе- |
|
|
|
раций ввода/вывода. |
|
|
@@LANGUAGE |
Название используемого в данный момент языка. |
|
|
@@LOCK_TIMEOUT |
Величина тайм-аута для операций блокировки (в миллисекун- |
|
|
|
дах). |
|
|
@@MAX_CONNECTIONS |
Максимальное число одновременных подключений. |
|
|
@@MAX_PRECISION |
Максимальный уровень точности для числовых и десятичных |
|
|
|
типов данных. |
|
|
@@NESTLEVEL |
Номер текущего уровня вложения при вызове подпрограмм. |
|
|
@@OPTIONS |
Возвращает установки текущих опций, заданных с помощью |
|
|
|
|
|
© Осипов Д.Л., 2011
|
|
110 |
|
|
оператора SET. |
|
|
|
|
@@PROCID |
Идентификатор текущей хранимой процедуры. |
|
@@REMSERVER |
Имя удаленного сервера. |
|
@@ROWCOUNT |
Количество строк, на которые повлиял последний запрос. |
|
@@TRANCOUNT |
Общее число активных транзакции для текущего пользователя. |
Операторы управления Transact-SQL
В составе Transact-SQL имеется несколько операторов, которые применяются для изменения порядка выполнения команд внутри запроса SQL.
Ключевые слова IF…ELSE используются для реализации аналога условного оператора, знакомого Вам из традиционных языков программирования:
IF выражение Операторы
[ELSE]
[IF выражение] Операторы
Ключевые слова BEGIN и END используются для обозначения набора операторов SQL, выполняемых как единое целое:
.
BEGIN
операторы
END
Ключевое слово WHILE используется для определения условия, на основании которого выполняется один или несколько операторов SQL, пока это условие истинно (равно
TRUE):
WHILE <булево выражение> <операторы SQL>
Внутри конструкции WHILE могут применяться операторы BREAK и CONTINUE, которые соответственно предназначены для прерывания работы конструкции или для продолжения её выполнения.
DECLARE @X INT, @Y TINYINT SET @X=1 SET @Y=1
WHILE @X<5
BEGIN
PRINT ‘X<5’
SET @X=@X+1
SET @Y=@Y+1 IF @Y=2
BEGIN
PRINT ‘Y=2’
BREAK
END
END
PRINT ‘ЦИКЛ ЗАВЕРШЁН’
© 2011 г. Д.Л. Осипов
111
Базовые функции Transact-SQL
В таблицах 18.1 - 18.4 представлены наиболее часто применяемые функции transact-SQL.
Математические функции
Основные математические функции Transact-SQL. Таблица 18.1
Функция |
Описание |
|
ACOS |
Арккосинус числа |
|
ASIN |
Арксинус числа |
|
ATAN |
Арктангенс числа |
Значение угла выражено в радиа- |
ATAN2 |
Арктангенс числа |
|
COS |
Тригонометрический косинус угла |
нах |
COT |
Тригонометрический котангенс угла |
|
SIN |
Тригонометрический синус угла |
|
TAN |
Тригонометрический тангенс угла |
|
DEGREES |
Преобразование радиан в градусы |
|
RADIANS |
Преобразование градусов в радианы |
|
CEILING |
Наименьшее целое значение, которое больше или равно значению выражения |
|
FLOOR |
Наибольшее целое значение, которое меньше или равно значению выражения |
|
EXP |
Экспонента значения выражения |
|
LOG |
Натуральный логарифм значения выражения |
|
LOG 10 |
Десятичный логарифм значения выражения |
|
PI() |
Значение числа ПИ |
|
POWER |
Значение выражения в степени у |
|
ABS |
Абсолютное значение выражения |
|
RAND |
Случайное действительное число, находящееся в промежутке от нуля до еди- |
|
|
ницы либо до значения, указанного в необязательном аргументе integer ex- |
|
|
pression |
|
ROUND |
Округление значения с точностью до integer |
|
SIGN |
Возвращает значение 1, 0 или -1, в зависимости от знака выражения. Имеет |
|
|
тот же тип, что и исходное выражение |
|
SQRT |
Квадратный корень из значения выражения |
Функции работы со строками
Основные функции Transact-SQL для работы со строками. Таблица 18.2
Функция |
Описание |
CHAR |
Преобразует ASCII код в символ |
LOWER |
Преобразует прописные буквы в строчные |
UPPER |
Преобразует строчные буквы в прописные |
LTRIM |
Удаляет из строки начальные пробелы |
RTRIM |
Удаляет из строки конечные пробелы |
CHARINDEX |
Осуществляет поиск подстроки в строке |
STUFF |
Вставляет подстроку в строку |
SUBSTRING |
Извлекает из строки подстроку |
(+) |
Сложение строк |
Функции для работы с датой
Основные функции Transact-SQL для работы с датой. Таблица 18.3
Функция Описание
© 2011 г. Д.Л. Осипов