
- •Работа с базами данных в субд ms sql Server 2008r
- •1 Описание работы и задания 7
- •1 Описание работы и задания 25
- •1 Описание работы и задания 39
- •1 Описание работы и задания 62
- •1 Описание работы и задания 73
- •Введение в Microsoft Visual FoxPro Лабораторная работа 1.1 Создание баз данных в субд ms Visual FoxPro
- •1 Описание работы и задания
- •Определить условия на значения и сообщения об ошибках некоторых полей.
- •2 Выполнение работы
- •2.1 Обращение к среде sql Server Management Studio
- •2.2 Знакомство с языком Transact-sql
- •2.2.1 Возможности t-sql и особенности его использования
- •2.2.2 Создание базы данных
- •2.2.3 Создание таблиц
- •2.2.4 Манипулирование данными с помощью команд t-sql
- •2.3 Работа с обозревателем объектов
- •2.3.1 Создание базы данных
- •2.3.2 Создание таблиц
- •2.3.3 Занесение данных в созданную таблицу
- •2.3.4 Создание объектов с помощью диаграмм данных и поддержка целостности данных
- •Лабораторная работа 2.2 Создание запросов в субд ms sql Server 2008r
- •1 Описание работы и задания
- •2 Выполнение работы
- •2.1 Оператор select
- •2.1.1 Простая выборка данных
- •2.1.2 Аналитическая выборка данных
- •2.1.3 Условие отбора where
- •2.1.4 Группировка записей group by
- •2.1.5 Условие на группируемые поля having
- •2.1.6 Использование функций преобразования различных типов данных
- •2.2 Подзапросы
- •2.3 Выборка данных из нескольких таблиц
- •2.3.1 Внутреннее соединение
- •2.3.2 Внешнее соединение
- •2.3.3 Перекрестные соединения
- •2.2.4 Объединение нескольких наборов результатов
- •Лабораторная работа 2.3 Хранимые процедуры и триггеры
- •1 Описание работы и задания
- •2 Выполнение работы
- •2.1 Хранимые процедуры
- •2.1.1 Переменные. Задание значений переменных
- •2.1.2 Использование переменных в запросах sql
- •2.1.3 Создание хранимых процедур
- •2.1.3.1 Создание хранимой процедуры без параметров
- •2.1.3.2 Создание и изменение хранимой процедуры с входными и выходными параметрами
- •2.1.3 Удаление хранимых процедур
- •2.2 Триггеры
- •2.3 Списки встроенных функции для работы с данными типа дата и строковыми данными
- •Лабораторная работа 2.4 Курсоры
- •1 Описание работы и задания
- •2 Выполнение работы
- •2.1 Понятие курсора
- •2.2 Реализация курсоров в среде ms sql Server
- •2.3 Управление курсором в среде ms sql Server
- •2.3.1 Объявление курсора
- •2.3.2 Открытие курсора
- •2.3.3 Выборка данных из курсора
- •2.3.4 Изменение и удаление данных
- •2.3.5 Закрытие курсора
- •2.3.6 Освобождение курсора
- •2.2. Безопасность баз данных и привилегии
- •2.3. Основные методы защиты данных в ms sql Server 2008 r2
- •Список использованных источников
- •Список предметных областей
- •Типы данных sql 2008r
2 Выполнение работы
2.1 Оператор select
Целью любой системы управления базами данных является осуществление операций над данными: ввод, изменение, удаление и выборка. При этом выборка данных является наиболее часто используемым аспектом управления данными. Выборка осуществляется с помощью одной единственной команды SELECT, являющейся частью языка DML.
Результатом выполнения данной команды является итоговый набор данных, состоящий из таких частей, как заголовки столбцов и записи данных. Этот набор должен содержать не менее одного столбца, записи могут быть, а могут и отсутствовать.
Команда SELECT состоит из семи основных частей: списка выборки и разделов FROM, WHERE, GROUP BY, HAVING, ORDER BY – обязательным является лишь список выборки, при использовании же остальных частей необходимо их использовать в том порядке, в котором они приведены выше.
2.1.1 Простая выборка данных
Для простой выборки данных используется сокращенный синтаксис оператора SELECT:
SELECT [ALL | DISTINCT] [TOP n [PERCENT] СписокВыборки
FROM ИмяТаблицы
WHERE УсловиеОтбора
СписокВыборки определяет поля, включаемые в итоговый набор данных, ИмяТаблицы указывает таблицу БД, из которой возвращаются записи, а УсловиеОтбора позволяется ограничить число возвращаемых записей с помощью логических операторов.
По умолчанию команда SELECT возвращает все записи, включая дубликаты, что определяется ключевым словом ALL, которое может быть опущено. Зачастую также ALL заменяется на *: Так, выполнение команды
SELECT *
FROM TimeTable
осуществляет выборку всех записей из объекта БД табличного типа с именем TimeTable. При этом столбцы и строки результирующего набора не упорядочены. Значок * может быть заменен словом ALL. В качестве примера приведем выполнение оператора над таблицей TimeTable:
Код занятий |
Предмет |
Преподаватель |
Группа |
Время |
SC001 |
Теоретическая механика |
Ландау Лев |
1121 |
25.01.2013 08:30 |
SC002 |
Астрономия |
Хокинг Стив |
1123 |
16.12.2001 10:00 |
SC003 |
Электростатика |
Кулон Шарль-Огюстен |
1121 |
01.12.2011 17:00 |
SC004 |
Небесная механика |
Хокинг Стив |
1322 |
08.10.2013 12:00 |
SC005 |
Электростатика |
Рентген Вильгельм-Конрад |
1122 |
13.12.2013 15:00 |
SC006 |
Теоретическая механика |
Ландау Лев |
1322 |
01.12.2011 10:20 |
SC007 |
Электростатика |
Рентген Вильгельм-Конрад |
1121 |
01.12.2011 17:00 |
Для получения набора уникальных неповторяющихся записей необходимо указывать ключевое слово DISTINCT:
SELECT DISTINCT Предмет, Преподаватель, Группа
FROM TimeTable
ORDER BY Преподаватель DESC
Предмет |
Преподаватель |
Группа |
Электростатика |
Кулон Шарль-Огюстен |
1121 |
Теоретическая механика |
Ландау Лев |
1121 |
Теоретическая механика |
Ландау Лев |
1322 |
Электростатика |
Рентген Вильгельм-Конрад |
1121 |
Астрономия |
Хокинг Стив |
1123 |
Небесная механика |
Хокинг Стив |
1322 |
Использование ключевого слова TOP предписывает выводить не все записи итогового набора, а только n первых. Можно выбирать не фиксированное количество записей, а определенный процент от всех строк – для этого указывается ключевое слово PERCENT.
Список выборки
Список выборки может содержать включать следующие один или несколько элементов:
* | ИмяПоля | Выражение [AS Псевдоним], [...n].
Для выборки всех полей из таблицы в списке выборки необходимо указать звездочку (*).
Ключевое слово AS позволяет заменить в итоговом наборе данных обычные имена полей псевдонимами (alias). Имя псевдонима должно удовлетворять стандартным правилам именования объектов. При необходимости включить недопустимые символы, пробелы или национальные алфавиты, имя псевдонима заключается в квадратные скобки.
Например, для получения списка лекторов и читаемых ими курсов для студенческих групп из таблицы TimeTable необходимо выбрать поля Предмет, Преподаватель, Группа:
SELECT Предмет AS Курс, Преподаватель AS Лектор, Группа AS [Номер группы]
FROM TimeTable
Курс |
Лектор |
Номер группы |
Теоретическая механика |
Ландау Лев |
1121 |
Астрономия |
Хокинг Стив |
1123 |
Электростатика |
Кулон Шарль-Огюстен |
1121 |
Небесная механика |
Хокинг Стив |
1322 |
Электростатика |
Рентген Вильгельм-Конрад |
1121 |
Теоретическая механика |
Ландау Лев |
1322 |
Электростатика |
Рентген Вильгельм-Конрад |
1121 |
При этом БД, из которой ведется выборка данных должна быть текущей.
Элемент Выражение задает выражение, которое включается в итоговый набор данных. Выражение может содержать константы, имена полей, функции и их комбинации. По умолчанию имя колонки с выражением не определено, поэтому можно указать псевдоним.
Например, список сотрудников с указанием фамилии и первого символа имени и идентификационного номера может быть получен в результате запроса:
Select LastName+’ ‘+Substring(FirstName,1,1)+’.’ AS [Сотрудник], PhoneNumber
From Сотудники
Удобочитаемость получаемого набора данных может быть повышена путем его сортировки в возрастающем или убывающем порядке. Сортировка возможна по имени поля (даже если оно и не указано в списке выборки), по псевдониму или по позиции в списке выборки, которые указываются в разделе ORDER BY ИмяПоля [,…n] [ASC | DESC].
По умолчанию сортировка осуществляется по возрастанию, что соответствует зарезервированному слову ASC, которое может опускаться, для сортировки в убывающем порядке указывается – DESC.
Для отображения, рассмотренного ранее, списка сотрудников упорядоченного в алфавитном порядке необходимо дополнить запрос:
Select LastName+’ ‘+Substring(FirstName,1,1)+’.’ AS [Сотрудник], PhoneNumber
From Преподаватель
ORDER BY [Сотудник]