
- •Введение
- •Глава 1 информационные системы
- •1.1 Информация как ресурс
- •1.2 Файловые системы
- •1.3 Информационные системы, использующие базы данных
- •1.3.1 Иерархические и сетевые модели данных
- •1.3.2 Реляционные системы управления базами данных
- •1.4 Компоненты информационных систем
- •1.4.1 Технические средства
- •1.4.2 Программное обеспечение
- •1.4.3 Данные
- •1.4.4 Пользователи
- •1.4.5 Организационное обеспечение
- •1.4.6 Отношения между компонентами системы
- •1.5 Основы проектирования информационных систем
- •1.5.1 Жизненный цикл программного обеспечения
- •1.5.2 Модели жизненного цикла по
- •1.5.3 Подходы к проектированию ис
- •1.6 Задания и вопросы для повторения
- •2.2 Подходы к проектированию баз данных
- •2.3 Создание базы данных
- •2.4 Основы концептуального проектирования баз данных
- •Объекты и отношения
- •2.3.2. Атрибуты
- •2.3.3 Ключи
- •2.3.4 Наследование
- •2.3.5 Составные объекты
- •2.3.6 Моделирование концептуальных и физических объектов
- •2.4 Реляционная модель данных
- •2.4.1 Поддержка целостности данных
- •Процесс нормализации таблиц
- •2.4.3 Пример построения нормализованной базы данных
- •2.4.4 Преобразование концептуальной модели в реляционную
- •2.5 Элементы er-моделирования
- •2.5.1 Основные понятия модели «сущность-связь»
- •2.5.2 Основные графические обозначения элементов модели
- •2.6 Заключительный этап проектирования
- •2.7 Сравнение концептуального и реляционного моделирования
- •2.8 Вопросы и задания для повторения
- •2.9 Упражнения и задачи
- •2.10 Проекты и профессиональные вопросы
- •Глава 3 реляционная алгебра и реляционное исчисление
- •3.1 Реляционная алгебра
- •3.1.1 Обзор реляционной алгебры
- •3.1.2 Теоретико-множественные операторы
- •3.1.3 Специальные реляционные операторы
- •3.1.4 Зависимые реляционные операторы
- •3.1.5 Примитивные реляционные операторы
- •3.2 Реляционное исчисление
- •3.2.1 Целевой список и определяющее выражение
- •3.2.2 Квантор существования
- •3.2.3 Квантор всеобщности
- •3.3 Заключение
- •3.4 Вопросы на повторение
- •3.5 Упражнения и задачи
- •Глава 4 управление реляционной базой данных с помощью sql
- •4.1 Элементы Transact-sql
- •Комментарии
- •4.1.2 Алфавит
- •4.1.3 Идентификаторы
- •Выражения
- •4.1.5 Ключевые слова
- •Операторы
- •4.1.7 Логические операторы
- •Типы данных
- •- Функции Transact-sql
- •4.2 Выборка данных из таблиц
- •4.2.1 Структура команды select
- •Результаты выборки
- •Отбор столбцов
- •Select Фамилия, Город from Гостиница.Dbo.Клиент
- •4.2.4 Определение заголовков столбцов
- •Выражения в выборках
- •Отбор записей
- •Порядок вывода данных
- •Котов Кузьма Кузьмич
- •Группировка данных
- •Отбор данных для групп
- •4.2.10 Директива compute
- •Выборка данных из нескольких таблиц
- •Объединение с помощью предложения where
- •Внутреннее объединение
- •4.2.14 Объединение и опция join
- •Оператор union
- •Подзапросы и структурированные запросы
- •Создание таблицы на основе выборки
- •Предложение for browse
- •4.3 Модификация данных
- •Добавление данных
- •Изменение данных
- •Удаление строк
- •Управляющие конструкции
- •Создание таблиц базы данных
- •4.6 Транзакции и блокировки
- •4.6.1 Понятие транзакций и блокировок
- •Управление транзакциями
- •Явные транзакции
- •Автоматические транзакции
- •Неявные транзакции
- •Управление блокировками
- •4.7 Хранимые процедуры
- •4.7.1 Типы хранимых процедур
- •Создание хранимых процедур
- •4.8 Триггеры
- •Создание триггера
- •Ограничения при создании триггеров
- •Использование триггеров
- •Вопросы на повторение
- •4.10 Упражнения и задачи
- •4.11 Проекты и профессиональные вопросы
- •Заключение
- •Приложение а sql скрпит, для создания таблиц согласно модели бд "Университет"
- •Литература
Изменение данных
Для модификации данных используется команда UPDATE, имеющая следующий синтаксис:
UPDATE {<Имя таблицы> | <Имя представления>}
SET {<Столбец> = <Выражение> [,…]}
[WHERE <Условие>]
Предложение SET указывает столбцы, которые будут изменяться, и значения, которые им присваиваются. По умолчанию команда применяется ко всем строкам таблицы. С помощью предложения WHERE можно отобрать только часть записей, в которых необходимо выполнить изменения данных.
Например, увеличим цену проживания в одноместных номерах на 10%.
UPDATE Тип_номера
SET Цена = Цена*1.1
WHERE Число_мест = 1
Удаление строк
Для того, чтобы удалить одну или несколько записей, в SQL Server используется команда DELETE, которая имеет простой синтаксис:
DELETE [FROM] {<Имя таблицы> | <Имя представления>}
[WHERE <Условие>]
Следует помнить, что по умолчанию удаляются все записи таблицы. Если необходимо удалить только часть записей таблицы, необходимо использовать предложение WHERE. Ключевое слово FROM необязательно, но рекомендуется, поскольку улучшает читаемость команды. В приведенном ниже примере из таблицы ПРОЖИВАЕТ удаляются записи, в которых КОД_КЛИЕНТА = 11.
DELETE FROM Проживает WHERE Код_клиента = 11
Управляющие конструкции
Begin … end
С помощью этой конструкции выполняется группировка двух и более команд в единый блок. Блоки begin…end могут быть вложенными. Глубина вложенности практически не ограничена.
If…else
Часто определенная часть программы должна выполняться только при определенном условии. Синтаксис конструкции имеет следующий вид:
If <условие>
{SQL-выражение | блок SQL-выражений}
else
{SQL-выражение | блок SQL-выражений}
case…end
Эта конструкция используется часто для замены множества конструкций IF..ELSE. Конструкция возвращает результат, который может стать переменной в других выражениях.
Case <Входное значение>
When <Условие> then <Результирующее выражение>
…….
Else <Результирующее выражение>
End
use pubs
declare @v char(2)
set @v=(select state from authors where au_fname='Michel')
print case @v
when 'CA' then 'Калифорния'
when 'IN' then 'Индиана'
else 'Непонятно'
end
Сoalesce
Эта конструкция возвращает первое значение, неравное NULL.
COALESCE(Список выражений)
print coalesce (null,null,3,1)
3
Цикл. В Transact-SQL имеется единственный цикл WHILE.
While <условие>
{<выражение>|<блок выражений>}
[Breack]
{<выражение>|<блок выражений>}
[Continue]
Цикл можно принудительно остановить с помощью команды Breack или начать заново с помощью команды Continue. Рассмотрим пример.
--Объявление переменной типа integer
declare @v int
--Задание значения переменной
set @v=1
--Цикл, в котором вычисляется квадрат числа
while @v<8
begin
-- Печать
print 'Квадрат '+str(@v)+'='+str(@v*@v)
set @v=@v+1
end
Квадрат 1= 1
Квадрат 2= 4
Квадрат 3= 9
Квадрат 4= 16
Квадрат 5= 25
Квадрат 6= 36
Квадрат 7= 49
По другому это можно было записать так:
declare @v int
set @v=1
while 1=1
begin
print 'Квадрат '+str(@v)+'='+str(@v*@v)
set @v=@v+1
if @v<8 continue
break
end