Оқулық «Білім беруді дамытудың федералды институты»



жүктеу 2,79 Kb.
Pdf просмотр
бет84/101
Дата20.05.2018
өлшемі2,79 Kb.
#15312
түріОқулық
1   ...   80   81   82   83   84   85   86   87   ...   101

 
SELECT 
Тұтынушы, COUNT (*)
 
FROM 
САТЫЛЫМДАР 
GROUP BY 
Тұтынушы
 
WHERE  сөйлемі  GROUP  BY-
мен  бірге  пайдаланылса,  онда  ол 
алдымен  өңделеді  және  іздеу 
шартын  қанағаттандыратын  жолдар 
ғана топтастырылады. 
Мысалы,  әр  номинацияның 
тауары  сатылатын  соманы  анықтау 
үшін (12.7-график):
 

Товар
 
SUM
 

 
Конфеты "Коровка"
 
5850
 
 
Конфеты "Мишка"
 
4500
 
 
Мармелад "Кроха"
 
1700
 
 
Мука пшеничная
 
2500
 
 
Сахар
 
3000
 
 
Сосиски молочные
 
7800
 
 
Халва
 
2475
 
12.7 
сурет.  Шартпен  топтау  сұрауын 
орындаудың нәтижесі
 
SELECT 
П. Тауар, SUM (П. Саны^. Құны) FROM 
САТЫЛЫМДАР П, ТАУАРЛАР Т WHERE T.Тауар = 
П.Тауар GROUP BY П. Тауар
 
Әрбір  күн  үшін  сатып  алушылардың  санын  анықтау  үшін  осы 
сұранысты орындау қажет:
 
SELECT 
Күні, COUNT(DISTINCT Тұтынушы) FROM 
ПРОДАЖИ GROUP BY Күні
 
Егер  нәтиже  жиынынан  алынған  жолдардың  нәтижелеріне 
шектеулер  қою  керек  болса,  онда  HAVING  сөйлемі  GROUP  BY 
сөйлемінен кейін пайдаланылады. Бұл шығу жиынтығын «сүзу» үшін 
қосымша мүмкіндік. Алынған функцияларды SALES сөйлемі тізімінде 
және HAVING сөйлемінде ғана қолдануға болатындығын ескеру керек, 
ал  WHERE  тармағында  мұндай  функцияларды  көрсету  мүмкін  емес. 
Мысалы, келесі сұраныс 3000-нан астам сатылған тауарлардың тізімін 
көрсетуге мүмкіндік береді.:
 
SELECT 
П. Тауар, SUM (П. Саны^. Құны)
 
FROM 
САТЫЛЫМДАР  П, 
ТАУАРЛАР  Т  WHERE  T. 
Тауар = П. Тауар GROUP BY П. 
Тауар
 
HAVING SUM (
П. Саны^. Құны) >3000
 
Шығарылған  тауарлардың  жалпы  саны  10  бірліктен  кем  болатын 
тауарларды өткізу күнін көрсетіңіз, әр күнде бір мәміле жасалмады:
 
259
 


SELECT 
Күні,COUNT(*)
 
FROM 
САТЫЛЫМДАРWHERE 
Саны>=10 GROUP BY 
Күні HAVING 
COUNT(*)>1
 
Кейде  салыстыру  әрекеттерін  пайдаланған  кезде  сұрауларда 
сұраныстың нәтижесін салыстыру қажет мән алдын ала анықталмайды 
және  бірнеше  мәндер  болмайды  немесе  басқа  SELECT  операторын 
орындау  арқылы  алынады.  Мұндай  жағдайларда,  ішкі  сұраулар 
пайдаланылады (кірістірілген сұраулар).
 
Ішкі  сұрау  (салынған  сұраулар)  уақытша  кестені  жасау 
құралы 
болып  табылады,  оның  мазмұны  сыртқы  оператормен  шығарылады 
және  өңделеді.  Ішкі  сұраудың  мәтіні  жақшада  болуы  керек.  Ішкі 
сұраныстағы SELECT мәлімдемесі келесі пішінге ие:
 
SELECT . . .
 
FROM ...
 
WHERE  <
салыстырмалы  мәні><оператор>(SELECT  . . . ) Ішкі 
сұранымдардың екі түрі бар. 
1. 
Скалярлық  ішкі  сұрау  бір  мәнді  қайтарады.  Негізінде  ол  бір  мәнді 
қажет ететін жерде қолданыла алады. 
2. 
Кестенің ішкі сұрауы мәндер жиынтығын қайтарады, яғни. Кестенің 
бір  немесе  бірнеше  бағандарының  мәндері  бірнеше  жолға 
орналастырылады. Бұл үстелге рұқсат етілген жерде мүмкін. 
Сұраулар бойынша бар:
 
■ 
байланыстырылмаған — жоғары деңгейлі сұрауға сілтемелер 
болмайды, олар жоғары деңгейлі сұрау үшін бір рет есептеледі;
 
■ 
байланыстырылған  —  негізгі  сұраудағы  өріс  мәндеріне  тәуелді 
шарттар бар; жоғарғы деңгейлі сұраудың әр жолына есептеледі.
 
Ішкі сұраудың негізгі немесе сыртқы синтаксисі бар, сондықтан ішкі 
сұрау  да  ішкі  сұрауды  қамтуы  мүмкін.  Тағы  бір  SELECT  операторы 
басқа SELECT операторының корпусына ендірілген сияқты. 
Сыртқы SELECT операторы бүкіл операцияның соңғы нәтижесінің 
мазмұнын анықтау үшін ішкі нұсқадағы нәтижені қолданады. 
Ішкі  сұраулар  салыстыру  операторынан  кейін  бірден 
орналастырылуы мүмкін (=, <,>, <=,> =, <>)
 
260
 


WHERE тармағы және сыртқы SELECT нұсқасының HAVING тармағы. 
Сонымен  қатар,  ішкі  SELECT  операторлары  INSERT,  UPDATE  және 
DELETE операторларында (жазбаларды кірістіру, жаңарту және жою) 
пайдаланылуы мүмкін. 
Ішкі сұранымдарға келесі ережелер мен шектеулер қолданылады::
 
■ 
ORDER BY пайдалана алмайсыз, бірақ бұл тіркесім сыртқы сұрауда 
болуы мүмкін;
 
■ 
SELECT 
сөйлеміндегі тізбеде олардан тұратын жеке бағандар немесе 
өрнектердің атаулары бар, егер қосымша сөз EXISTS кілт сөзі болса;
 
■ 
әдепкі бойынша, ішкі сұраудағы баған атаулары FROM сөйлемінде 
аты  көрсетілген  кестеге  сілтеме  жасайды.  Дегенмен,  сыртқы 
сұраныстың  FROM  бөлімінде  көрсетілген  кестенің  бағандарына 
сілтеме  жасауға  болады,  олар  үшін  көрсетілген  баған  атаулары 
(яғни, кесте) немесе олардың бүркеншік аттары қолданылады;
 
■ 
егер  ішкі  сұрау  -  салыстыру  операциясына  қатысатын  екі 
операндтардың  бірі  болса,  сұрау  осы  операцияның  оң  жағында 
көрсетілуі керек. 
Келесі  сұрау  өнімнің  максималды  саны  сатылған  күндерді 
қайтарады. 
 
 
SELECT 
Саны, Күні FROM 
САТЫЛЫМДАР
 
WHERE 
Саны = (SELECT MAX(Саны)FROM САТЫЛЫМДАР)
 
Әлбетте,  кірістірілген  SELECT  мәлімдемесі  тізім  емес,  бір  мәнді 
қайтаруы керек. Ішкі ішкі сұраныс өнімнің ең көп мөлшерін анықтайды. 
Сыртқы қосалқы сұрауда - тауардың саны максимумға тең болатын күн. 
Айта кету керек, сөйлемді тікелей қолдануға болмайды 
WHERE 
Саны= Макс (Сан), 
WHERE 
тармақтарында 
қорыту 
функцияларына 
рұқсат 
берілмегендіктен. 
Алдыңғы  мысалды  қиындатады.  Тауардың  максималды  саны 
қоймадан  жіберілген  күнді  анықтаңыз  және  осы  өнімді  сатып  алған 
әрбір клиент үшін біз қаланы көрсетеміз (12.8-сурет):
 
261
 


жүктеу 2,79 Kb.

Достарыңызбен бөлісу:
1   ...   80   81   82   83   84   85   86   87   ...   101




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

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