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 сөзінің сол жағында тұрған өрнек, саналғандардың
ортасынан одан оңға қарай тұратындығын тексереді.