Dkzh 3210 – деректер қорының ЖҮйелері



Pdf көрінісі
бет3/5
Дата25.11.2023
өлшемі248,32 Kb.
#126527
1   2   3   4   5
 SQL кұрделі сұраныстары 
SQL стандартты функциялар қолданылуы мүмкін (SQL агрегатты 
функциялар) COUNT (*) арнайы жағдайынан басқа, әр функция бір кестенің 
бағанасының мәндерімен байланысады және бір мән құрады, ол төмендегідей 
анықталады: 
COUNT – бағананың мәндерінің саны
SUM – бағананың мәндерінің қосындысы; 
AVG – бағананың орташа мәні; 
MAX - бағанадағы ең үлкен мән. 
Агрегатты функциялар SELECT операторында қолданылатын өріс 
аттары сияқты қолданылады, бірақ бір алыптастаумен: олар өріс атын 
аргумент ретінде алады. Бұл, әрине өрісті таңдаудан ажыратылады, өйткені 
әр кезде жалғыз мән қайтарылады, кестеде қанша жол болса да. Егер, 
мысалы топтағы бір бағананың түрлі санды мәндерін есептеу керек болса, 
онда DISTINCT түйінді сөзді бағананың атымен бірге қолдану қажет. 
Мысалы, KADR кестесінен жал ақының максимальды, минимальды 
және орташа мәндерін шығару үшін, (ZARP өрісі) келесі команданы қолдану 
керек: 
SELECT MIN (ZARP), MAX(ZARP), AVG(ZARP) FROM KADR. 
WHERE сөйлемінде агрегатты функцияларды қолдануға болмайды, 
өйткені предикаттар жалғыз жол терминімен бағаланады, ал агрегатты 
функциялар – топ жолдарының терминімен. 
SUM және AVG функцияларымен тек сандық өрістер қолданылуы 
мүмкін. COUNT, MAX және MIN функцияларымен сандық және символдық 
өрістер қолданылуы мүмкін. Символды өрістерді қолданғанда MAX және MIN 
оларды ASCII кодтың эквивалентіне түрлендіреді және алфавит ретте 
өңдейді. Кейбір ДҚБЖ қабаттасқан агрегаттарды қолдануға мүмкіндік 
береді, бірақ ол ANSI стандартынан ауытқу болып табылады. 
SELECT командасының GROUP BY опциясы көрсетілген бағана 
(немесе бағаналардың) бірдей мәнді жазбаларын топтастыруға мүмкіндік 
береді. 


SELECT <өрнек> FROM <кесте_аты> 
GROUP BY <бағана 1> [, <бағана 2>...] [HAVING <іріктеу_шарты>] 
GROUP BY опциясы шығатын мәліметтерді топтастырылатын бағаналарды 
анықтайды. Бағаналардың сәйкес келетін мәндері, кестенің барлық жазбалары 
жеке жолдардың іріктеулерінде көрсетіледі. Топтастыру, кейбір топтардың 
біріккен сипаттамаларын алу үшін өте ыңғайлы. (топтағы жазбалар саны, 
орташа мәндері, қосындылары және т.б.) 
HAVING опциясы <іріктеу_шарты> топты іріктеу кезіндегі 
қалыптасқан мәліметтердің іріктеуінің критериларын береді, яғни 
топтастырылмаған мөліметтерге арналмаған WHERE опциясының ролін 
орындайды. 
HAVING бөлігінің орындалу нәтижесі болып табылатын топталған 
кесте, ол есептеу нәтижесінің іздеу шарты TRUE болатын қатардың 
топтарынан тұрады. Егер HAVING бөлігі кестелік өрнекте болса, GROUP 
BY құрамында болмаса, онда оның орындалу нәтижесі бос кесте немесе топтау 
бағаналарысыз бір топ ретінде қарастырылатын кестелік өрнектердің алдыңғы 
бөліктері болады. 
Деректерді топтағанда HAVING опциясында SQL агрегатты 
функцияларын қолдануға болады. Осылайша агрегатты функциялар SELECT 
жолының шығару нәтижесін өрнектеу және де қалыптастырылған HAVING 
топтарын өңдеу шарттарын өрнектеу үшін қолданылады. Бұл жағдайда әр 
агрегатты функция әр белгіленген топ үшін есептеледі. Агрегатты 
функцияларды есептеу кезінде алынған мәндер сәйкес нәтижелерді 
шығару және топтарды іріктеу шарттары үшін қолданылуы мүмкін. 
Нәтижеге топталған өріс мәнін және бірнеше агрегатты 
функцияларды қосуға болады, ал топтастыру шартында бірнеше өрістерді 
қолдануға болады. Бұл жағдайда топтар белгіленген өрістер тобынан 
түзеледі. Агрегатты функциялармен операциялар көп кестелерді 
біріктіруге қолданылуы мүмкін. 
SELECT командасын берілген деректерді бірнеше кестеден бір 
уақытта іріктеу үшін қолдануға болады. 
SELECT командасының (таңдау) қысқартылған варианты бұл 
жағдайда келесі пішімге ие: 
SELECT [<псевдоним>.]<өрнек> [AS <бағана>][, [<псевдоним>]<өрнек> 
[AS <бағана>]..] 
FROM<1кесте_аты>[<псевдоним1>][,<2кесте_аты> [<псевдоним2>].] 
[WHERE <іріктеу_шарты> [AND <байланыс_шарты>] 
[AND/OR <іріктеу_шарты>]] [AND <іріктеу_ шарты>] 
[AND/OR <іріктеу_шарты>]] 
Егер әр түрлі кестелерден таңдап алынған өpic аттары бір-біріне 
сәйкес болса, онда бағаналар алфавит бойынша бір әріппен қосылатын 
сәйкес аттар (ие болады) алады, мысалы, FAM_A, FAM_В және т.б. 
бағаналарға есептерді шығарудың белгілі бір түрде нәтижесінде алынған 
аттар беріледі. Олардың аттары ЕХР сөздерінен және тізбекті сандардан 
(ЕХР_1, ЕХР_2 және т.б.) тұрады. SQL алыптастау жеке функцияларын 


қолданатын есептерді құрайды: AVG, MIN, MAX, SUM, COUNT іріктеуге 
түскен барлық жазбалардың есебін білдіретін, соңғы функция 
аргументтерінде (COUNT (*)) жұлдызшасынан тұрады. Бұндай жағдайда 
бағана аттары, функция аттарын қосады. Үнсіз қалыптасқан аттардың 
орнына, бағаналарға басқа аттар беруге болады, оларды AS сөздерінен кейін 
көрсетуге болады, мынандай <есептеулер> AS <бағананың_жаңа_аты>. 
Псевдоним болып тек қана деректер кестесінің псевдонимі (ALIAS) 
болуы тиісті емес, SELECT командасында меншіктелетін кез келген ат болуы 
мүмкін. Бұл уақытша берілетін ат <псевдоним> опциясында белгіленеді, 
кестенің атынан кейін FROM сөзінен кейін және тек осы SELECT 
командасында оның басқа опцияларында (локалды псевдоним) қолданылады. 
Мысалы, KADR және STUD кестелерінен барлық фамилияларды шығару 
үшін, локалды Р және Т псевдонимдері қолданылады және де шығару кезінде 
FAM_A және FAM_B бағана аттарын KFIO және STFIO өзгерту үшін, келесі 
команда қолданылады: 
SELECT P.FAM AS KFIO, T.FAM AS STFIO FROM KADR P, STUD T 
SELECT командасында берілгенді іріктеудегі сұраныстарда, өте 
күрделі шарттар қоюға (беруге) болады. Байланыс шарты, егер іріктеу 
деректер кестесінің біреуінен жасалса қолданылады жене әр түрлі 
кестелерден берілгендердің біріктіру критериларын анықтайды. 
Байланыс шарттарында псевдонимдері бар әр түрлі кестеден ерістер 
көрсетіліп мынандай қатынас белгілері қолданылады: =, ¹

= =, >, >=, <, <=. 
AND белгілерімен біріктірілген, бірнеше критерилар тапсырмалары 
беріледі. 
Мысалы, экранға KADR кестесінен (FAM өpici) қызметкерлер 
фамиялияларын шығару үшін, ал TABEL кестесінен табельдік номерлерге 
сәйкес келетін, жазбалар үшін жұмыс күнінің санына сәйкес болатын (WD 
өрісі), байланыс шартты команданы міндетті түрде қолдану керек. (кестенің 
псевдонимдері есебінде кесте аттары көрсетілген): 
SELECT KADR.FAM, TABEL. WD FROM KADER, TABEL WHERE 
KADR.TAB=TABEL.TAB. 
Іріктеу шарттары үшін өрнектерден тек бір кесте ұқсас болып 
тұрғызылады және OR, AND және NOT логикалық операторлары ғана 
қолданылады. 
LIKE операторы "-" символы (белгісі) жолдардағы белгісіз жеке 
белгілері керсететін, ал белгі "%" кез келген олардың санынан тұратын үлгі 
бойынша салыстыру шартын тұрғызуға мүмкіндік жасайды. LIKE 
операторының пішімі: 
<өрнек > LIKE <үлгі> 
BETWEEN операторы бастапқы және ақырлы мәндердің ауқымын 
белгілейді және оператордың сол жағында орналасқан өрнек белгіленген 
ауқымда орналасқанын тексереді. BETWEEN операторының пішімі: 
<өрнек > BETWEEN <төменгі_мән> AND <жоғарғы мән> 
IN операторы, IN сөзінің сол жағында тұрған өрнек, саналғандардың 
ортасынан одан оңға қарай тұратындығын тексереді. 


IN оператордың пішімі: 
<өрнек> IN <өрнек 1>, < өрнек 2>,...) 


Достарыңызбен бөлісу:
1   2   3   4   5




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

    Басты бет