Аталған бағандардың әрқайсысын өзгерткенде, сәйкес мән
тағайындалады. SELECT нұсқаулығында көрсетілгендей шартты
қанағаттандыратын барлық жазбалар үшін өзгертулер жасалады. SET
сөйлемі орындалатын өзгертулердің тізімін: өзгертуге болатын
айнымалының аты және бағаның жаңа мәні теңдік белгісінен кейін
анықталады. Мән INSERT операторы сияқты, күрделі күрделі өрнек
болуы мүмкін. Үтірлер бойынша келесі SET тармақтары кестедегі басқа
бағандардың мәндерін тізімдеуі мүмкін. Оператордағы WHERE
тармағы қолданыстағы деректерді өзгерту әрекеті қолданылатын
жолдардың жиынын анықтайды. Егер бұл сөйлем көрсетілмесе, кестенің
барлық жолдары өзгереді:
UPDATE
ПРОДАЖИ SET Құны=Құны*2 WHERE Тауар =
«
Ұн»
Өнім кестесіндегі оператор қызметінің нәтижесі ретінде «Баға»
өрісіндегі «Тауар» өрісінің мәні «Ұн» болып табылатын барлық
жазбаларда екі еселенген болады.
DELETE операторы нысаннан жазбалар тобын жою үшін
пайдаланылады. Белгілі бір жағдайда тек бір ғана жазбаны жоюға
болады. DELETE мәлімдемесі пішімі:
DELETE FROM <
нысан>
[WHERE <
шарты>]
Іздеу шартына сәйкес келетін барлық жазбалар жойылады. WHERE
сөйлемін жойсаңыз, барлық жазбалар нысаннан жойылады.
Төменде САТЫЛЫМДАР кесте қантты сататын фактілердің барлық
жазбаларын жойатын мысал болып табылады:
DELETE
САТЫЛЫМДАРWHERE Тауар= «Қант»
12.5.
САҚТАЛАТЫН ІС ШАРАЛАР
МЕН ТРИГГЕРЛЕР
12.5.1.
Сақталатын іс шаралар
мен тиггерлердің тілі
Сақталған процедуралар мен триггерлер - дерекқордың
метадеректер аймағында сақталған бағдарламалар. Олар сервер
жағында орындалады, ол көптеген жағдайларда үнемдеуге мүмкіндік
б
і
271
Сақталған процедураларға, триггерлерге және клиенттік
қосымшаларға жалпыға қол жетімділікке қол жеткізуге болады.
Тригерге тікелей қол жеткізуге болмайды - кесте (деректерді өзгерту)
немесе дерекқор оқиғасы үшін белгілі бір оқиға болған кезде олар
автоматты түрде шақырылады. Әрбір іс-шара кесте үшін екі кезеңі бар -
тиісті оқиғаға (дейін) дейін және іс-шараға (кейін) пайда болған соң.
SQ
L тілінің кеңейтімі сақталатын процедуралар мен триггерлердегі
деректерді өңдеуге арналған алгоритмдерді сипаттау үшін
қолданылады. Бұл кеңейтім процедуралық SQL (PSQL) немесе
сақталатын процедуралар тілі мен триггерлер деп аталады. Тіл әдеттегі
тағайындалу операторларын, филиал операторларын және циклдік
операторларды қамтиды. Триггерлерде нақты мәтінмән айнымалыларын
пайдалануға болады.
Сақталған рәсімдер мен триггерлердің тілі классикалық
бағдарламалау тілдерінің барлық негізгі құрылымдарын қамтиды.
Сонымен қатар, ол дерекқор кестелерінен (INSERT, UPDATE, DELETE
және SELECT) бар деректерді қосу, өзгерту, жою және алу үшін бірнеше
өзгертілген операторларды қамтиды. Сақталған процедуралардың
тілінде ешқандай метадеректер өзгермейді.
Сақталған процедуралар мен триггерлерде белгілі бір оқиғалар
(оқиғалар) туралы клиенттерге хабарлауға, кедендік ерекшеліктерді
шығаруға мүмкіндік беретін құралдарды пайдалануға болады. Деректер
қорын қосу әрекеттерін орындауға жол берілмейді, транзакцияны
бастауға, транзакцияларды жасауға, құтқару жолдарын жасауға,
құтқарушыларға оралу, транзакцияларды растауға немесе жоюға
болмайды. Сақталған процедура мен триггер сақталатын процедура
тікелей анықталған транзакция контекстінде орындалады немесе
деректерді өңдеу операциясы дерекқорда орындалды, нәтижесінде
триггер автоматты түрде іске қосылды. Егер дерекқор дерекқордан
қосылып, дерекқордан ажыратылған кезде шақырылатын болса, онда ол
үшін әдепкі транзакция басталады.
Сақталған процедуралар мен триггерлер жасау синтаксисінде
тақырып пен денені таңдауға болады. Тақырыпта бағдарлама
нысанының атауы, жергілікті айнымалылардың сипаттамасы бар.
Триггерлер үшін тақырып дерекқор оқиғасын және триггер автоматты
түрде іске қосылатын кезеңді анықтайды. Сақталған рәсімнің
тақырыбында кіріс және шығыс параметрлерін көрсетуге болады.
Сақталған процедураның немесе триггердің құралы - бұл блок
272
бағдарлама орындалатын іс-әрекеттердің сипаттамасын қамтитын
оператор. Операторлар блогы оператордың BEGIN және END
жақшаларынан тұрады. Бағдарламалардың өзінде, дәйекті және
кірістірілген блоктың еркін саны болуы мүмкін.
Барлық іс-шаралар үлгі негізделген, сақталатын процедуралар мен
триггерлер деректер өңдеу және модификациялау ирек жақша BEGIN
және END болып есептілігін блогында орындалады.
Триггерлер және сценарий шеңберінде сақталатын процедуралар
жазған кезде, (SQL стандарттары үшін, нүктелі үтірмен)
операторларының символы аяқтау пайдалануға қатысты белгісіздік
болдырмау үшін, дерекқорға қажет бағдарламалық қамтамасыз ету
нысандарын құру қатаң SQL мәлімдеме емес, сөйлейтін, оператор
белгіленген мерзім, қолданылады. Бұл псевдо-оператормен триггер
немесе сақталған процедура жасалмай тұрып, триггер немесе сақталған
процедураның соңы болып табылатын символ пайда болады. нүктелі
үтірмен - сол оператор жиынтығын пайдаланып бағдарлама нысанның
мәтінін сипаттайтын кейін МЕРЗІМДІ терминатор мәні қалыпты
нұсқасы қайтарылады.
Мысалы, триггер жасаған кезде, сіз төмендегі мәлімдемелерді
орындауыңыз керек:
SET TERM
л
;
/*
Кестенің бастапқы кілті мәнін қалыптастыру ТАУАРЛАР */
CREATE TRIGGER TBI_STAFF FOR
ТОВАРЫ BEFORE
INSERT . . . [
Тиггер мәтіні}
END
Л
Блокта
операторлар
дәйекті
түрде
орындалады. SQL
кеңейтімдерінде дерекқорда деректерге қол жеткізу операторлары
(
деректерді іріктеу, деректерді таңдау, өзгерістер, жою).
Бос орынға рұқсат етілген мәтіндегі кез келген орын, / * және * /
таңбалар арасында орналасқан түсініктемелерді орналастыруға болады.
Мұндай түсініктемелердің біреуі кез келген жолды қабылдай алады.
Түсініктемелердің тағы бір түрі бар: қатарынан екі таңба минус (-). Бұл
жағдайда түсініктеме мәтіні ағымдағы жолдың соңына дейін жалғасады.
Бір жергілікті айнымалыны сипаттау үшін DECLARE VARIABLE
операторын пайдаланыңыз. Оның оңайлатылған синтаксисі келесі түрде
ұсынылуы мүмкін:
273
Достарыңызбен бөлісу: |