Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Транзакции и блокировки




Создание таблиц базы данных

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

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

 

Для того, чтобы удалить одну или несколько записей, в 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)

 

Цикл. В 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

 

 

 

Кроме команд, предназначенных для выборки и модификации данных, Transact-SQL содержит инструкции, которые создают логические блоки (устройства) для хранения данных и базы данных, которые находятся на этих устройствах. Это было необходимо при работе с SQL Server 6.5 и потеряло свою актуальность для версии SQL Server 7.0. Это обусловлено появлением визуальных средств проектирования баз данных. Однако на практике может возникнуть задача создания таблицы программным путем. Ниже приводится команда создания таблицы, которая имеет следующий синтаксис:

 

CREATE TABLE

[<Имя базы данных>.[<Имя владельца>].]<Имя таблицы>

({<Определение столбца>

| <Имя столбца> AS <Рассчитываемое выражение>

| <Условия на значения таблицы>} [, …n])

[ON {<Группа> | DEFAULT}]

[TEXTIMAGE_ON {Группа | DEFAULT}],

 

где столбцы определяются следующим образом:

 

<Имя столбца> [<Тип данных> [<Длина>]] [NULL | NOT NULL]

[IDENTITY [(<Начало>, <Приращение>)

[NOT FOR REPLICATION]]

[ROWGUICOL]

 

Условия на значения столбца задаются следующим образом:

 

[CONSTRAINT <Имя условия на значения>]

DEFAULT {<Выражение> | <Функция> | NULL}

[FOR <Имя колонки>]

 

Параметры команды:

· <Имя базы данных> - имя базы данных, которое можно не указывать, если база данных является текущей;

· <Имя владельца> - владелец создаваемой таблицы;

· <Имя таблицы> - уникальное для данной базы данных имя таблицы;

· <Имя столбца> - уникальное имя столбца в таблице;

· <Тип данных> - один из предопределенных или созданных пользователем типов данных;

· NULL | NOT NULL – ключевые слова, определяющие, разрешено или нет использование в столбце значение NULL;

· IDENTITY – ключевое слово, показывающее, что за формирование значений в этой таблице отвечает SQL Server;

· ROWGUIDCOL – ключевое слово, показывающее, что новый столбец определяет глобальный уникальный идентификатор (тип данных - Uniqueidentifier);

· <Имя столбца> AS <Рассчитываемое значение> - позволяет определить виртуальный, физически не хранящийся в таблице столбец, который нельзя использовать в качестве ключевого при построении индекса;

· DEFAULT – используется для установки значений по умолчанию.

Приведем пример создания таблицы ОПЛАТА в базе данных ГОСТИНИЦА:

 

CREATE TABLE Гостиница.dbo.Оплата

(Номер_оплаты Integer IDENTITY (1,1) PRIMARY KEY CLUSTERED,

Код_клиента Integer NULL,

Оплата Money DEFAULT 0,

Дата_прибытия Datetime DEFAULT GETDATE())

 

 

 

При одновременном обращении множества пользователей к одной БД нередко возникают ситуации, когда несколько пользователей пытаются работать с одними и теми же данными. Самая простая ситуация, когда несколько пользователей пытаются прочитать одни и те же данные. Здесь вопросов не возникает. Проблемы начинаются, когда несколько пользователей пытаются одновременно изменять или удалять данные, создавая конфликт. В этом случае трудно предсказать, какие значения получат данные, хранящиеся в таблицах БД. Необходимо всеми доступными средствами избежать такой неопределенности. Например, при проведении бухгалтерских расчетов необходимо гарантировать, что данные в таблице правильны и их целостность не нарушена.

 




Поделиться с друзьями:


Дата добавления: 2014-11-20; Просмотров: 405; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.