- •Министерство образования Российской Федерации Пензенский государственный университет
- •Пенза 2004
- •Введение
- •1. Архитектура баз данных ms sql Server 2000
- •Физическая архитектура базы данных sql Server 2000
- •1.1.1. Файлы данных и группы файлов
- •1.1.2. Страничная организация файлов данных
- •ЛоГическая архитектура базы данных sql Server 2000
- •1.3. Системные базы данных sql server 2000
- •Создание и сопровождение баз данных средствами enterprise manager
- •3. Создание и сопровождение таблиц баз данных средствами enterprise manager
- •3.1. Основные принципы создания таблиц
- •3.2. Создание, модификация и удаление таблиц средствами Enterprise Manager
- •3.3. Управление диаграммами
- •4. Создание и управление индексами средствами Enterprise manager
- •5. Создание представлений средствами Enterprise manager
- •6. Основы программирования на языке Transact-sql
- •6.1. Средства языка Transact–sql
- •6.2. Константы, имена, идентификаторы, переменные, выражения в языке Transact–sql
- •6.3. Типы данных sql Server 2000
- •6.4. Создание и удаление баз данных, таблиц и представлений
- •6.4.1. Создание и удаление баз данных
- •6.4.2. Создание и удаление таблиц
- •6.4.3. Создание представлений
- •6.5. Создание и управление индексами
- •6.6. Вставка, удаление и изменение данных
- •6.7. Выборка данных
- •Раздел into позволяет создать новую таблицу для хранения результатов запроса, структура которой будет определяться списком выбора, т.Е. Динамически при выполнении запроса.
- •6.8. Функции sql Server 2000
- •6.8.1. Встроенные функции sql Server 2000
- •6.8.2. Функции пользователя
- •6.9. Хранимые процедуры sql Server 2000
- •6.9.1. Создание хранимых процедур
- •6.10. Триггеры
- •6.11. Создание и управление транзакциями
- •6.12. Создание, отладка и оптимизация sql–модулей
- •7. Лабораторный практикум
- •Создание диаграммы базы данных;
- •Рекомендуемые источники Печатные издания
- •Интернет-ресурсы1
- •Приложение 1. Примеры операторов языка Transact-sql
- •1.1. Создание баз данных
- •Create database Archive
- •Use master
- •Filegroup SalesGroup1
- •Filegroup SalesGroup2
- •Create database Sales
- •Create database Employees
- •1.2. Создание таблиц баз данных
- •1.3. Создание индексов
- •1.4. Создание представлений
- •From dbo. Authors
- •1.5. Добавление, модификация и удаление данных в таблицах
- •Insert Into TabF default values
- •Insert Into TabG (Col1,Col2)
- •1.6. Выборка данных из таблиц
- •If update (Phone)
- •Insert into #aaa values (111)
- •Insert into #aaa values (222)
- •Insert into #aaa values (333)
- •1.9. Создание пользовательских функций
- •1.10. Создание хранимых процедур пользователя
- •Приложение 2. Описание предметных областей, схем баз данных и запросов для лабораторного практикума
- •2.1. Предметная область «Летопись острова Санта-Белинда»
- •2.2. Предметная область «Скачки»
- •2.3. Предметная область «Хроника восхождений в альпинистском клубе»
- •2.4. Предметная область базы данных медицинского кооператива
- •2.5. Предметная область базы данных «Городская Дума»
- •2.6. Предметная область базы данных рыболовной фирмы
- •2.7. Предметная область база данных фирмы, проводящей аукционы
- •2.8. Предметная область база данных библиотеки
- •Предметная область базы данных для обслуживания работы конференции
- •2.10. Предметная область базы данных для обслуживания склада
6.8. Функции sql Server 2000
В SQL Server 2000 пользователь может создавать свои собственные функции, на которые можно будет ссылаться непосредственно в теле запроса. Как и хранимые процедуры, определяемые пользователем, функции могут иметь параметры.
Интересным сочетанием является использование в качестве возвращаемого функцией значения величины типа данных table. Это дает возможность применения запросов, обращающихся непосредственно к функции. Например, если имеется функция GetPeople, возвращающая список всех людей с фамилией, указанной с помощью единственного параметра, то просмотр возвращаемого функцией набора данных можно осуществить с помощью следующей команды:
SELECT * FROM GetPeople(‘Иванов’).
Значительная часть функций поставляются в составе SQL Server 2000. Они называются системными, или встроенными (built-in). Системные же функции хранятся на экземпляре сервера. Кроме того, пользователю предоставляется возможность разрабатывать и включать в свою базу данных собственные, или пользовательские (user-defined) функции, реализующие специальные алгоритмы обработки данных. Пользовательские функции становятся объектами той базы данных, в которой они создавались. Поэтому при их создании, если необходимо, требуемую базу данных следует сделать текущей с помощью команды
USE имя базы данных.
6.8.1. Встроенные функции sql Server 2000
Рассмотрим функции, предлагаемые SQL Server 2000. Их количество достаточно велико, и для удобства работы они разбиты на отдельные группы:
функции просмотра конфигурации;
функции для работы с курсорами;
функции работы с датой и временем;
математические функции;
функции метаданных;
функции подсистемы безопасности;
строковые функции;
системные функции;
статистические функции;
функции для работы с типами данных image, text и ntext.
Функции просмотра конфигурации. Функции этой группы предназначены для получения различной информации. Большинство из них являются недетерминированными, так как могут возвращать различные результаты при каждом новом вызове;
Функции для работы с курсорами. Данная группа содержит всего три функции, которые, тем не менее, довольно полезны, а порой и просто незаменимы при работе с курсорами;
Функции работы с датой и временем. Как следует из названия, функции данной группы предназначены для работы с датой и временем. Напомним, что для хранения информации о дате и времени в SQL Server 2000 предназначены типы данных datetime и smalldatetime. Нередко возникает необходимость выделить из даты день месяца или год, добавить или отнять несколько дней и т.д.;
Математические функции. Функции этой группы предназначены для выполнения различных математических операций – возведение в степень, вычисление синуса, извлечение корня и т.д.;
Функции метаданных. Эти функции предназначены для получения сведений о различных объектах SQL Server 2000 (метаданных);
Функции подсистемы безопасности. Функции этой группы служат для получения информации, связанной с подсистемой безопасности – пользователях и учетных записях, о членстве их в фиксированных и пользовательских ролях базы данных, фиксированных ролях сервера и другой информации;
Строковые функции. Функции этой группы предназначены для работы с символьными строками – поиска подстроки в строке, выделения подстроки, удаления лидирующих и конечных пробелов, вычисления длины строки и т.д.;
Системные функции. Судя по названию, функции этой группы предназначены для получения самой разнообразной информации, которая, должна быть системной. Однако некоторые из функций группы, скорее, можно назвать функциями общего пользования, чем системными; Многие системные функции начинаются с символов @@.
Статистические функции. Функции этой группы возвращают различную статистическую информацию о работе сервера – об операциях чтения диска, количестве переданной по сети информации, затратах времени и т.д.;
Функции для работы с типами данных image, text и ntext.
Полноценная функция должна работать с параметрами, значения которых при ее вызове указываются в скобках после имени функции. В принципе, функция может и не иметь параметров. В этом случае при ее вызове нужно будет указывать пустые скобки. Некоторые же функции Transact-SQL не используют скобки при их вызове. Такие функции точнее можно назвать глобальными переменными. Тем не менее, в документации они все же рассматриваются как функции.
Достаточно полный список встроенных функций SQL Server 2000 с их описанием приводится в [1, 5, 6].