Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Моделирование баз данных.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.82 Mб
Скачать
      1. Изменение данных

Для модификации данных используется команда UPDATE, имеющая следующий синтаксис:

UPDATE {<Имя таблицы> | <Имя представления>}

SET {<Столбец> = <Выражение> [,…]}

[WHERE <Условие>]

Предложение SET указывает столбцы, которые будут изменяться, и значения, которые им присваиваются. По умолчанию команда применяется ко всем строкам таблицы. С помощью предложения WHERE можно отобрать только часть записей, в которых необходимо выполнить изменения данных.

Например, увеличим цену проживания в одноместных номерах на 10%.

UPDATE Тип_номера

SET Цена = Цена*1.1

WHERE Число_мест = 1

      1. Удаление строк

Для того, чтобы удалить одну или несколько записей, в SQL Server используется команда DELETE, которая имеет простой синтаксис:

DELETE [FROM] {<Имя таблицы> | <Имя представления>}

[WHERE <Условие>]

Следует помнить, что по умолчанию удаляются все записи таблицы. Если необходимо удалить только часть записей таблицы, необходимо использовать предложение WHERE. Ключевое слово FROM необязательно, но рекомендуется, поскольку улучшает читаемость команды. В приведенном ниже примере из таблицы ПРОЖИВАЕТ удаляются записи, в которых КОД_КЛИЕНТА = 11.

DELETE FROM Проживает WHERE Код_клиента = 11

    1. Управляющие конструкции

Beginend

С помощью этой конструкции выполняется группировка двух и более команд в единый блок. Блоки begin…end могут быть вложенными. Глубина вложенности практически не ограничена.

Ifelse

Часто определенная часть программы должна выполняться только при определенном условии. Синтаксис конструкции имеет следующий вид:

If <условие>

{SQL-выражение | блок SQL-выражений}

else

{SQL-выражение | блок SQL-выражений}

caseend

Эта конструкция используется часто для замены множества конструкций 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