Основы (асослар)
Download 0.95 Mb.
|
PL-SQL Маъруза матни
- Bu sahifa navigatsiya:
- Берилганлар базасидаги қийматлар
- Амалларни бажариш тартиби
- Конкатенация амали Конкатенация амали NULL операндларни инкор қилади: apple|| NULL || NULL || sauce = applesauce Функциялар
- Ички қурилган функциялар
Бул қийматларБул турдаги ўзгарувчиларига 3 хил қиймат бериш мумкин: FALSE TRUE NULL Масалан DECLARE
... BEGIN done: = FALLS WHILE NOT done LOOP ... END LOOP; END; ёки
done: = (count > 500);
Берилганлар базасида жойлашган қийматларни ўзгарувчиларга бериш учун SELECT жумласидан фойдаланиш мумкин: DECLARE
my_ename emp.ename%TYPE; wages NUMBER(7,2); BEGIN ... SELECT ename, sal + comm INTO last_name, wages FROM emp WHERE empno = emp_id; Аммо сиз устун қийматларини бул ўзгарувчиларигаберолмайсиз. Ифода ва солиштиришИфодалар операнд ва амаллар ёрдамида тузилади. Операнд ўзгарувчи, ўзгармас, литерал ёки чақираладиган функция бўлиши мумкин. Содда арифметик ифода мисолини келтирамиз: -X / 2 + 3 Унар амаллар (- минус амали каби) битта операнд устида бажарилади, бинар амаллар (/ бўлиш амали каби) эса иккита операнд устида бажарилади. Амалларни бажариш тартибиИфодаларда амаллар қуйидаги жадвалда кўрсатилган тартибда (юқоридан пастга қараб) бажарилади.
Мантиқий амалларМантиқий амаллар қуйидаги жадвалда кўрсатилган тарзда амалга оширилади.
Солиштириш амаллариқуйидаги жадвалда солишитириш амалларининг маъноси келтирилган:
IS NULL операториIS NULL оператори TRUE бул қиймат қайтаради, агар унинг операнди NULL қийматга эга бўлса ва FALSE қийматни қайтаради, агар унинг операнди NULL фарқли қийматга эга бўлса. Масалан IF variable IS NULL THEN ... LIKELIKE оператори белгили қийматларни солиштириш учун ишлатилади ва у бул қиймат қайтаради. Масалан ename ўзгарувчиси ‘JONSON’ қийматига эга бўлса ename LIKE 'J%SON' ифода TRUE қиймат қайтаради. Бу ерда % белгилар тўпламини билдиради, у бўш ҳам бўлиши мумкин. BETWEEN операториBETWEEN оператори қийматни берилган интервалда ётиш ёки ётмаслигини аниқлаб беради. Масалан 45 BETWEEN 38 AND 44 ифода FALSE қийматни қайтаради. IN операториIN оператори қиймат берилган тўпламнинг бирор элементи билан устма-уст тушишини текширади. Тўпламда NULL қатнашиши мумкин, аммо у инобатга олинмайди. Масалан DELETE FROM emp WHERE ename IN (NULL, 'KING', 'FORD'); ифода ename устунининг қиймати NULL бўлган қаторларни ўчирмайди. NOT IN оператори эса тўпламда NULL иштирок этганда FALSE қиймат қайтаради. Масалан DELETE FROM emp WHERE ename NOT IN (NULL, 'KING'); ифода ҳеч қандай қаторларни ўчирмайди. Конкатенация операториКонкатенация оператори битта белгили қаторни иккинчисига қўшиш учун ишлатилади. Масалан 'suit' || 'case' |= 'suitcase' Бул ифодаларPL/SQL ўзгарувчи ва ўзгармасларни солиштиришга имкон беради. Ушбу солиштиришлар бул ифодалар дейилади. Арифметик ифодаларСонларни тенгликга ёки тенг эмасликга текшириш мумкин: number1 = 75; number2 = 70; бўлганда қуйидаги ифода TRUE қиймат қайтаради: number1 > number2
Белгили ифодаларБелгили қийматларни ҳам тенгликга ёки тенг эмасликга текшириш мумкин: string1 := 'Kathy'; string2 := 'Kathleen'; бўлганда, қуйидаги ифода TRUE қиймат қайтаради: string1 > string2 Санавий ифодаларСаналарни ҳам солиштириш мумкин: date1 = '01-JAN-91'; date2 = '31-DEC-90'; бўлганда, қуйидаги ифода TRUE қиймат қайтаради: date1 > date2 NULL қийматиNULL қиймати билан ишлаганда қуйидаги қоидаларни унутманг: NULL қатнашган солиштиришлар ҳамма вақт NULL қайтаради. NOT мантиқий операторини NULL қўллаганда NULL ҳосил бўлади. Шартли ифодаларда шарт натижаси NULL бўлса, унга боғлиқ бўлган жумлалар кетма-кетлиги бажарилмайди. Масалан Мисол 1. x := 5; y := NULL; ... IF x != y THEN -- TRUE ни эмас NULL қайтаради. Операторлар кетма-кетлиги -- бажарилмайди. END IF; Мисол 2.
a := NULL;
NOT операториNOT мантиқий операторини NULL қўллаганда NULL ҳосил бўлишини эслатиб ўтамиз. Шундай қилиб қуйидаги иккита жумла ҳамма вақт ҳам эквивалент эмас: IF x > y THEN | IF NOT x > y THEN high := x; | high := y; ELSE | ELSE high := y; | high := x; END IF; | END IF; ELSE жумласидаги операторлар кетма-кетлиги бажарилади, агарда IF шарти FALSE ёки NULL бўлса. Демак x ва у бири ёки иккаласи NULL бўлса, биринчи IF жумла y қийматини high ўзгарувчига беради, лекин иккинчи IF жумла x қийматини high ўзгарувчига беради. Нол узунликдаги қаторPL/SQL нол узунликдаги қаторларни NULL деб қабул қилади: null_string := TO_VARCHAR2(''); zip_code := SUBSTR(address, 25, 0); valid := (name != ''); ўзгарувчилар NULL қийматни қабул қилади. Конкатенация амалиКонкатенация амали NULL операндларни инкор қилади: 'apple'|| NULL || NULL || 'sauce' = 'applesauce' ФункцияларАгар функцияга бўш қиймат узатилса у ҳолда у ҳам бўш қиймат қайтаради, қуйидаги ҳоллар бундан мустасно. қуйидаги мисолда rating устунининг қиймати NULL бўлганда DECODE функцияси 1000 қийматни қайтаради: SELECT DECODE(rating, NULL, 1000, 'C', 2000, 'B', 4000, 'A', 5000) INTO credit_limit FROM accts WHERE acctno = my_acctno; қуйидаги мисолда hire_date - нинг қиймати NULL бўлганда NVL функцияси SYSDATE қийматни қайтаради: start_date := NVL(hire_date, SYSDATE); new_string := REPLACE(old_string, NULL, my_string); мисолда old_string ва new_string қийматлар бир хил. syllabified_name := 'Gold-i-locks'; name := REPLACE(syllabified_name, '-', NULL); мисолда name қиймати 'goldilocks' бўлади. Ички қурилган функцияларИчки қурилган функцияларни қуйидаги категорияларга бўлиш мумкин: Хатоларни рўйхатга олиш функциялари Сонли функциялар Белгили функциялар Берилганлар турларини алмаштириш функциялари Саналар билан ишлайдиган функциялар Объект билан ишлайдиган функциялар Аралаш функциялар Хар бир категориядаги функциялар рўйхатини қуйидаги жадвалда келтирамиз:
Download 0.95 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling