Жаратылыстану жəне математика факультеті Информатика кафедрасы



жүктеу 1,29 Mb.
Pdf просмотр
бет26/58
Дата19.11.2018
өлшемі1,29 Mb.
#21498
1   ...   22   23   24   25   26   27   28   29   ...   58

ЗАПЧАСТИ  кестесіндегі  насос  құны  475,000.  Берілген  атаудағы  қосалкы  бөлшектің 
құнын сəйкес көрсетілген % азайту үшін процедура құру. 
 
CREATE PROC ПРОЦЕДУРА3 
@t VARCHAR(10), @p FLOAT 
AS 
UPDATE ЗАПЧАСТИ SET цена=цена*(1-@p) 
WHERE название=@t 
 
Процедураға назар аударатын қолданылатын командалар: 
 
EXEC ПРОЦЕДУРА3 @t='насос',@p=0.05 или  
EXEC ПРОЦЕДУРА3 ‘насос’,0.05 
(1 row(s) affected) 
 
Насос құны көрсетілген құннан 5% азайды, 451,25 болды. 
 
Жаңа сатып алушы жайлы ақпаратты қосу үшін процедура құру: 
/*Жаңа сатып алушы жайлы ақпаратты қосуға арналған процедура*/ 
 
CREATE PROC Добавление_покупателя 
@название_фирмы VARCHAR (20),  
@ном_покупателя INTEGER, 
@лимит_кредита MONEY, 
@продавец INTEGER, 
@объем_продаж MONEY, 
@город_магазин VARCHAR(15) 
AS 
 
BEGIN 
/*ПОКУПАТЕЛИ кестесіне жаңа жол қосу*/ 
INSERT INTO ПОКУПАТЕЛИ (номер_покупателя,  
название, продал, кредит) 
VALUES (@ном_покупателя,@название_фирмы, 
@продавец, @лимит_кредита) 
 
/*ПРОДАВЦЫ кестесінде жазбаны жаңарту*/ 
UPDATE ПРОДАВЦЫ 
SET продажа=продажа+@объем_продаж 
WHERE номер_продавца=@продавец  
 
/*МАГАЗИНЫ кестесінде жазбаны жаңарту*/ 
UPDATE МАГАЗИНЫ  
SET продажа_объем=продажа_объем+@объем_продаж 
WHERE город=@город_магазин  
 
/*Транзакцияны аяқтау*/ 
COMMIT TRANSACTION 
END 
 
Тапсырмаларды орындауға қажетті əдістемелік нұсқаулар: 
Оқулық  материалды  жəне  түсіну  кезінде  негізгі  түсініктемелерді  ұғу  жəне  материалды 
бекіту арқылы жүргізілу керек. Тақырып бойынша терминдердің сөздігін құрастыр. 
 
12 Курсорлар 


Сұрақтар: 
1.  Курсор дегеніміз не? 
2.  Оның түрлерін ата. 
3.  Курсорды басқару қалай жүргізіледі? 
4.  Курсордың қандай типтері бар? 
5.  Тізбекті курсордың айналмалы курсордан қандай айырмашылығы бар? 
Тапсырмалар: 
1.  Курсорды құру немесе жариялау. 
2.  Курсорды ашу. 
3.  Курсордан іріктеу жəне деректер жолын оның көмегімен өзгерту. 
4.  Курсорды жабу. 
5.  Курсорды босату. 
 
Курсорды басқару келесі командаларды орындағанда жүзеге асады: 
DECLARE – курсорды құру немесе жариялау; 
OPEN – курсорды ашу, яғни оны деректермен толтыру; 
FETCH – курсордан деректерді іріктеу жəне курсор көмегімен деректер жолын өзгерту; 
CLOSE – курсорды жабу; 
DEALLOCATE – курсорды босату, яғни курсорды объект ретінде жою. 
Курсорды жариялау: 
DECLARE ABC CURSOR SCROLL FOR 
SELECT * FROM ЗАПЧАСТИ 
 
Курсорды жариялау жəне ашу: 
DECLARE ABD CURSOR GLOBAL SCROLL FOR 
SELECT * FROM ЗАПЧАСТИ 
OPEN ABD 
Курсордан деректерді іріктеу: 
FETCH FROM GLOBAL ABD 
 
 
Толық  нəтижелі  жиынтықта  ағымдыдан  кейн  тұрған  жол  үнсіз  келісім  бойынша 
қайтарылады. 
Егер де LAST кілтті сөзін көрсетсек, онда курсордың ақырғы жолы қайтарылады жəне 
ол ағымды жол болады: 
FETCH LAST FROM GLOBAL ABD 
 
 
 
Курсорды жариялауға айнымалыны қолдану: 
DECLARE @MyCursor CURSOR  
SET @MyCursor=CURSOR LOCAL SCROLL FOR 
SELECT * FROM ЗАПЧАСТИ 
 
Курсорды қайтадан меншіктеу үшін айнымалыны қолдану: 
DECLARE @MyCursor CURSOR  
SET @MyCursor=ABC 
 
«Автошина» қосалқы бөлшектер тізімін шығару үшін курсорды құру: 
DECLARE @firm VARCHAR (3),  
                   @p VARCHAR (20)  
PRINT 'СПИСОК ЗАПЧАСТЕЙ' 
DECLARE prod_cursor CURSOR LOCAL FOR  


SELECT шифр_изг 
FROM ЗАПЧАСТИ 
WHERE название='автошина' 
ORDER BY шифр_изг 
OPEN prod_cursor 
FETCH NEXT FROM prod_cursor INTO @firm  
WHILE @@FETCH_STATUS=0 
BEGIN 
SELECT @p='шифр_изг  '+ @firm 
PRINT @p 
-- келесі қосалқы бөлшекке көшу -- 
FETCH NEXT FROM prod_cursor INTO @firm 
END 
CLOSE prod_cursor 
DEALLOCATE prod_cursor  
 
Нəтиже: 
 
 
 
Курсорды босату: 
DEALLOCATE ABC 
The command(s) completed successfully. 
 
13 Триггерлер 
Сұрақтар: 
1.  Триггер дегеніміз не? 
2.  Триггердің қандай типтері бар? 
3.  Триггер қалай программаланады? 
4.  Триггер қалай жойылады? 
5.  Қандай триггер үнсіз келісім бойынша құрылады? 
Тапсырмалар: 
1.  Триггерді құру. 
2.  Триггер типтері. 
3.  Триггерді программалау 
 
Триггерді құру: 
 
CREATE TRIGGER ТРИГГЕР1 
ON ПРОДАВЦЫ  
FOR DELETE, INSERT, UPDATE 
WITH APPEND 
AS 
BEGIN 
PRINT 'ЗАПРЕЩЕНО' 
END 
 
Триггерді жою: 
DROP TRIGGER ТРИГГЕР 
 


Мəнге шектеу қоюды жүзеге асыру үшін триггерді құру жəне қолдану: 
 
CREATE TRIGGER ТРИГГЕР_ins 
ON ЗАКАЗЫ FOR INSERT 
AS 
IF @@ROWCOUNT=1 
BEGIN 
IF NOT EXISTS (SELECT * 
               FROM inserted 
               WHERE -inserted.количество<=ALL 
(SELECT ЗАПЧАСТИ.нал_количество 
                FROM ЗАПЧАСТИ, ЗАКАЗЫ 
WHERE ЗАПЧАСТИ.шифр_запчасти=ЗАКАЗЫ.запчасть)) 
   BEGIN 
   ROLLBACK TRAN 
   PRINT 'ЗАПРЕЩЕНО' 
   END 
END 
 
Құрылатын  триггер  кестеге  командасы  орындалуына  келесідей  назар  аударады:  егер 
ЗАПЧАСТИ  кестесінде  нал_количества  шамасы  сатылатын  тауар  санынан  аз  болса,  онда 
ЗАКАЗЫ кестесіне қою командасын болдырмау қажет. Көрсетілген триггер бір жазбаны ғана 
өңдеуге келтірілген. 
 
Тапсырмаларды орындауға қажетті əдістемелік нұсқаулар: 
Оқулық  материалды  жəне  түсіну  кезінде  негізгі  түсініктемелерді  ұғу  жəне  материалды 
бекіту арқылы жүргізілу керек. Тақырып бойынша терминдердің сөздігін құрастыр. 
 
14 Транзакциялар жəне тосқауылдар 
 
Сұрақтар: 
1.  Транзакция дегенді қалай түсінесің, оның қасиеттері қандай? 
2.  Тосқауыл қою дегеніміз не? Қандай типтері бар? 
3.  Транзакциялар мен тосқауылдар қоюды басқару қалай жүргізіледі? 
4.  Изоляция деңгейлерін атап бер. 
Тапсырмалар: 
1.  Транзакцияларды басқару. 
2.  Транзакция түрлері. 
3.  Тосқауылды басқару 
 
Транзакцияларды басқаруда қолданылатын үш команда бар: 
1.  COMMIT - өзгерістерді сақтау үшін; 
2.  ROLLBACK - өзгерістерді қабылдамау; 
3.  SAVEPOINT -  қайтарымның ерекше нүктелерін құру. 
 
Сақтау нүктесін қолдану: 
 
BEGIN TRAN 
SAVE TRANSACTION point1 
point1 нүктесінде ЗАПЧАСТИ кестесінің алғашқы күйі сақталады. 
 
DELETE FROM ПОКУПАТЕЛИ  
WHERE номер_покупателя=8101 
SAVE TRANSACTION point2 


жүктеу 1,29 Mb.

Достарыңызбен бөлісу:
1   ...   22   23   24   25   26   27   28   29   ...   58




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау