(12) Сорокин А. В. Delphi. Разработка баз данных. с. 407-472
Апта 5
Кредит сағат 1,2
Дәріс № 9,10
Тақырып: Деректер қоймасынан ақпаратты таңдау. SELECT операторы.
Дәріс мазмұны:
SELECT операторының синтаксисі
From сөйлемі
SELECT операторы – SQL – дің ең маңызды және ең көп таралған операторларының бірі. Ол кестеден мәліметтерді таңдауға және алынған нәтижелерді қажетті түрге қайта құруға рұқсат береді, яғни мәліметтер базасы кестесінен ақпаратты таңдау үшін арналған. Және де ол жалғыз орындалып жатырған команданың сыртында реляциялық алгебра операторының эквивалентті әрекеттерін орындай алады. Оның көмегімен әртүрлі кестелерден мәліметтерді сұрыптаудың күрделі және үлкен шарттарын жүзеге асыра алады.
SELECT операторы – мәліметтерді ұсыну сұрақтарына толықтай абстракцияланған, мәліметтерге қол жеткізу проблемаларына көңіл бөлуге көмектесетін құрал. Оны қолдану үлгілеріне үлкен (өнеркәсіптік) МББЖның негізі болатын принциптерінің бірі демонстрация жасайды: мәліметтерді сақтау және оларға қол жеткізу құралы, мәліметтерді ұсыну құралынан бөлінген. Мәліметтерге операция бөлек жазбалармен емес, мәліметтер жиынының масштабында өндіріледі.
SELECT операторы келесідей форматқа ие:
SELECT [ALL | DISTINCT ] {*|[баған_аты
[AS жаңа_ат]]} [,...n]
FROM кесте_аты [[AS] псевдоним] [,...n]
[WHERE <іздеу_шарты>]
[GROUP BY баған_аты [,...n]]
[HAVING <топтарды таңдау белгілері>]
[ORDER BY баған_аты [,...n]]
SELECT операторы сұраныстың орындалу нәтижесіне кіретін өрістерді (бағандар) анықтайды. Тізімде олар үтірлермен ажыратылады және сұраныстың нәтижесінде қалай болуы керек соған тура келеді. Егер бос орны бар немесе ажыратылған өрістің аты қолданылса, оны тік жақшамен жабу керек. * символымен барлық өрістерді таңдауға болады, ал өрістің атының орнына бірнеше аттарды қолдануға болады.
Егер кестелердің қатары өңделіп жатырса, онда (әртүрлі кестелердің аты бірдей өрістері бар кезінде) өрістер тізімінде өрістердің толық мәліметтері қолданылады, Аты_кестелер.Аты_өрістер. SELECT операторының кілттік сөзі мәліметтер базасына берілген сөйлемнің ақпаратты шығарып тастау сұранысы болып табылатынын хабарлайды. SELECT сөзінен кейін үтір арқылы өрістердің аттары (атрибуттар тізімі) тізіліп жазылады. SELECT сұранысының сөйлемінде міндетті түрде кілттік сөз болып From (из) табылады.
FROM ұсынысы SELECT операторында саналған өрістерден тұратын кестелердің және ұсынулардың аттарын сұрайды. Псевдонимнің міндеттісіз параметрі – бұл кестенің аты үшін қойылатын қысқарту.
SELECT операторы элементтерін өңдеу келесі жүйелілікпен орындалады:
FROM – қолданылатын кестелердің аттары анықталады;
WHERE – берілген шарттарға сәйкес объектілер тізімін сүзу орындалады;
GROUP BY – көрсетілген бағанда бірдей мәнге ие топтар тізімі құрылады;
HAVING – берілген шарттарға сәйкес объектінің топтар тізімі сүзіледі;
SELECT – шығатын мәліметтерде қандай бағандар болуы керектігі беріледі;
ORDER BY – операторлардың орындалу нәтижелерінің реттілігі анықталады.
Әдебиет:
(2) Астахова И.Ф. SQL в примерах и задачах. с. 23-43
(12) Сорокин А. В. Delphi. Разработка баз данных. с. 207-215
Апта 6
Кредит сағат 1,2
Дәріс № 611,12
Тақырып: Where сөйлемі. Деректерді сорттау.
Дәріс мазмұны:
Салыстыру операторы және логикалық операторлар.
Тізім мәнімен салыстырудың IN және NOT IN операторы
Мәндер диапазоны. Between…And және Not Between…And операторлары.
Like және Not Like операторы
Is Null және Is not Null операторы
Order By сөйлемі
SELECT операторындағы сөйлемдер мен ұсыныстардың реті өзгертілмейді. Тек SELECT және FROM екі ұсыныстары міндетті болып табылады, қалған барлығын жібере беруге болады. SELECT – жабық операция: кестеге сұраныс нәтижесі басқа кестені көрсетеді.
WHERE – параметрінің көмегімен пайдаланушы, FROM кестесінің тізімінде келтірілген қандай мәліметтер сұраныстың нәтижесінде пайда болатынын анықтайды. WHERE кілттік сөзінен кейін сұраныстың орындалуы кезінде таңдалуы керек жолдарды анықтайтын шарттар тізімін іздеу жүреді. Іздеу (немесе предикат) шарттарының бес негізгі типтері бар:
Салыстыру: бір өрнектің есептеу нәтижелері екіншісінің есептеу нәтижелерімен салыстырылады.
Диапазон: өрнектің есептеу нәтижесі берілген диапазонның мәнімен сәйкес келуі тексеріледі.
Жиынға жататын: өрнектің есептеу нәтижесі берілген жиынның мәніне жататыны тексеріледі.
Үлгіге сәйкестік: кейбір жолдың мағыналарының берілген үлгіге жауап беруі тексеріледі.
NULL мәні: берілген баған NULL (белгісіз мағына) көрсеткішін құрайтыны тексеріледі.
SQL тілінде келесі салыстыру операторларын қолдануға болады: = – теңдік; < – кіші; > – үлкен; <= – кіші немесе тең; >= –үлкен немесе тең; <> – тең емес.
Мысалға, төртінші курста оқитын және (нөлден жоғары) стипендия алатын студенттердің атын және фамилиясын алу үшін сұраныс құру:
SELECT NAME, SURNAME
FROM STUDENT
WHERE kurs = 4 AND
Stipend > 0;
Күрделірек предикаттар AND, OR немесе NOT (және де выражениенын есептеу ретін анықтау үшін қолданылатын жақшалар) логикалық операторларының көмегімен құрылуы мүмкін.
BETWEEN операторы өздерінің минималды және максималды мағыналарымен анықталатын интервалдың ішінен мағыналарды іздеу үшін қолданылады. используется для поиска значения внутри некоторого интервала. Бұл кезде көрсетілген мағыналар іздеу шартына қосылады.
LIKE операторының көмегімен выраженияны берілген шаблонмен салыстыруға болады, онда символдар – ауыстырғыштар қолдануға рұқсат етіледі:
% символы – бұл символдың орнына кез – келген өз бетімен символдар қойылуы мүмкін.
_ символы жолдың бір символын ауыстырады.
IS NULL операторы NULL – кез – келген мағынаның жоқ екенін көрсететін арнайы мағынасындағы мағынамен, ағымдағы мағынаны салыстыру үшін қолданылады. NULL – бұл бос орын белгісі сияқты емес (бос орын – рұқсат етілген символ) немесе нөл (0 – рұқсат етілген символ). NULL нөлдік ұзындық жолынан да (бос жолдан) ерекшеленеді.
Әдебиет:
(2) Астахова И.Ф. SQL в примерах и задачах. с.32-31,49-51
(12) Сорокин А. В. Delphi. Разработка баз данных. с.207-220
Апта 7
Кредит сағат 1,2
Дәріс № 13,14
Тақырып: Біріктіру және деректердің күрделі талдауы.
Дәріс мазмұны:
Біріктіру операциясы.
Біріктіру операторының топтамасы.
Конкатенация операциясы және Ms SQL Server- дің қондырылған функциялары
Біріктіру – бұл, екі немесе одан да көп кестелерді біреуге біріктіретін процесс. Бірнеше кестелерде немесе сұраныстарда мәліметтердің логикалық жиынтығының бір түрінде ақпаратты біріктіру қабілеті SQL тілінің кең мүмкіншіліктерін ескертеді.
SQL тілінде керекті ақпарат таңдалатын, жазбалардың логикалық жиынтығында кестелерді біріктіру типін беру үшін FROM ұсынысында JOIN операциясы қолданылады.
Операцияның форматы:
FROM кестенің_аты_1, кестенің _ аты _2
Where кестенің_аты_1.біріктіру_бағаны біріктіру_операторы
кестенің_аты _2. біріктіру_бағаны
Біріктіру операцияларының әртүрлі типтері бар:
тета-біріктіру;
эквиваленттілігі бойынша біріктіру;
шынайы біріктіру;
сыртқы біріктіру;
жартылай біріктіру.
Біріктіру шарттарында мәліметтердің бірдей типіне жататын және мәліметтердің бірдей түрін құрайтын, бірақ олардың атаулары бірдей болуы міндетті емес өрістер қатысуы мүмкін.
Екі кестедегі мәліметтер одағы, көрсетілген өрістерде сәйкес келетін мағыналар табылған бойда біріктіріледі.
Егер FROM ұсынысында бірнеше кестелер тізіліп жазылған болса, онда кестедегі өрістердің сәйкестігін көрсету үшін WHERE шарты қолданылады.
Егер сұраныстар мен кетелердің бірнеше қатарын тізіп жазып, олардың біріктіру шартын көрсетпесек, негізгі кесте ретінде барлық кестелердің тура туындысы таңдалады.
SELECT R.a1, R.a2, S.b1, S.b2
FROM R, S
WHERE R.a2=S.b1
SQL – мен жұмыс кезінде пайдаланушылар қызметіндегі орнатылған функциясын шартты түрде келесі топтарға бөлуге болады:
математикалық функциялар;
жолдық функциялар;
күннің жадысымен және уақытпен жұмыс істеу үшін арналған функциялар;
конфигурациялау функциясы;
қауіпсіздік жүйесінің функциялары;
метамәліметтерді басқару функциялары;
статистикалық функциялар.
Жолдардың «+» конкатенация операциясы символдық типті немесе символдық константты екі немесе одан да көп бағандардың мағыналарын бір жолға біріктіруге («жапсыруға») рұқсат береді.
Бұл операцияның синтаксисі мынадай:
<мәнді символдық өрнек>+< мәнді символдық өрнек>
Әдебиет:
(2) Астахова И.Ф. SQL в примерах и задачах. с.32-31,49-51
(4) Джудит С. Боуман Практическое руководство SQL, с.157-171
(12) Сорокин А. В. Delphi. Разработка баз данных. с.220-222
Апта 8
Кредит сағат 1,2
Дәріс № 15,16
Тақырып: Агрегациялық функция.
Дәріс мазмұны:
Агрегациялық функциялардың синтаксисі.
Агрегациялық функциялардың қызметі және қолдану ерекшеліктері.
Агрегаттық функция кесте жолдарының тобына операцияны орындай отырып, кестеден агрегатталған ақпаратты алуға мүмкіндік береді.
SQL – сұранысының ішіндегі агрегаттық (қорытындылау) функциясының көмегімен таңдалған мағыналар жиыны туралы қорытушы статистикалық мәлімдеулер қатарын алуға болады.
Пайдаланушыға келесі негізгі агрегаттық функциялар қолайлы:
Count (өрнек) – SQL – сұранысы жиынтығындағы жазбалар санын анықтайды;
Min/Max (өрнек) – сұраныстың кейбір өрісіндегі мағыналар жиынының ең азы мен ең көбін анықтайды;
Avg (өрнек) – бұл функция белгілі бір өрісте сақтаулы тұрған сұраныспен таңдалған жазбалардың, мағыналар жиынының орташа мәнін есептеуге арналған. Ол арифметикалық орташа мән, және де олардың санына бөлінген мәндер суммасы болып табылады.
Sum (өрнек) – белгілі бір өрісте тұрған сұраныспен таңдалған жазбалардың, мәндер жиынының суммасын есептейді.
Көбінесе, өрнек ретінде бағандардың аты қолданылады. Өрнек бірнеше кестелердің мағыналары бойынша да есептеле алады.
Бұл функциялардың барлығы кестенің жалғыз бағанында мағыналармен операция жасайды немесе арифметикалық өрнекпен және жалғыз мағынасын қайтарады. COUNT, MIN және MAX функцияларын сандық және сандық емес өрістерде қолдануға болады, ал SUM және AVG функциялары COUNT(*) болмаған жағдайда ғана тек сандық өрістер жағдайында қолданылады. Қандай да бір функцияның нәтижесін есептегенге дейін алдымен барлық бос мағыналар алынып тасталады, содан кейін керекті операция бағанның қалған нақты мағыналарына ғана қолданылады. COUNT(*) нұсқасы – COUNT функциясын қолданудың негізгі жағдайы, оның тағайындалуы, құрамында бос, қосарланушы немесе кез – келген басқа да мағыналарға тәуелсіз нәтижелендіруші кестедегі барлық жолдардың есебінен тұрады.
Егер функцияны қолданудың алдында қосарланушы мағыналарды алып тастау керек болса, онда бағанның атының алдына функция анықтамасында DISTINCT кілттік сөзін орналастыру керек. Ол MIN және MAX функциялары үшін мәнді емес, бірақ оның қолданылуы SUM және AVG функцияларының орындалу нәтижесіне әсер етуі мүмкін, сондықтан оның әрбір нақты жағдайларда қолданылуы керек пе жоқ па екенін алдын ала ойластыру керек. Сонымен қатар, DISTINCT кілттік сөзі кез – келген сұраныста бір – ақ рет көрсетілуі мүмкін.
Агрегаттық функциялардың тек қана SELECT ұсынысында және HAVING шартының құрамында ғана қолданыла алатынын көрсетіп кеткен жөн. Барлық басқа жағдайларда ол мүмкін емес. Егер SELECT ұсынысындағы тізімнің құрамында агрегаттық функциялар бар болса, ал сұраныстың мәтінінде мәліметтерді топтарға біріктіруді қамтамасыз ететін GROUP BY сөйлемі жоқ болса, онда SELECT ұсынысы тізіміндегі элементтердің біреуі де өрістердің агрегаттық функция аргументтері ретінде қатысатын жағдайын алып тастағанда, өрістерге қандай да бір сілтемелерді қоса алмайды.
Әдебиет:
(2) Астахова И.Ф. SQL в примерах и задачах. с. 43-47
(4) Джудит С. Боуман Практическое руководство SQL, с.127-136
(12) Сорокин А. В. Delphi. Разработка баз данных. с.217-219
Апта 9
Кредит сағат 1,2
Дәріс № 17,18
Тақырып: Деректерді топтау және есеп жасау.
Дәріс мазмұны:
Group By сөйлемі.
Having сөйлемі.
Group By (бойынша топтастыру) қандай да бір өрістің мәнін анықтайтын жазбаларды жиындарға топтауға мүмкіндік береді және агрегатталған функцияларды кестенің барлық жазбаларына емес, бөлек әрбір топқа қолдануға мүмкіндік береді. Яғни, Group By агрегаттық функциямен байланысты. Group By кестені жолдар жинағына бөледі, нәтижесінде жолдар топтары пайда болады, олар көрсетілген бағанд абірдей мәнге ие болады.
Әдетте, сұраныста "әрбіреуі үшін..." сөйлемі пайда болатындықтан, сұраныстарда көбіне аралық жиындарды қалыптастыру талап етіледі. SELECT операторында бұл мақсат үшін GROUP BY ұсынысы қолданылады. GROUP BY қатысатын сұраныс, топтастырушы сұраныс деп аталады, өйткені онда SELECT операциясының орындалу нәтижесінде алынған мәліметтер топтастырылады, содан кейін әрбір бөлек топтар үшін жалғыз жиынтық жол құрылады. SQL стандарты SELECT ұсынысы мен GROUP BY сөйлемінің өзара тығыз байланыста болуын талап етеді. SELECT операторында GROUP BY сөйлемінің болуы кезінде SELECT ұсынысындағы тізімнің әрбір элементі барлық топтар үшін жалғыз мағынаға ие болуы керек. Көбіне, SELECT ұсынысы тек қана келесі элементтер типтерін қосуы мүмкін: өрістердің аттарын, қорытынды функцияларды, константтарды және өрнектерді, жоғарыда айтылған элементтердің қосатын комбинацияларын.
Having ұсынысының көмегімен алдын ала барлық Group By арқылы топтастырылған, Having ұсынысымен берілген шарттарды қанағаттандыратын мәліметтер блоктары көрінеді. Бұл шығатын жиынтықты "кері сүзуге" қосымша мүмкіндік.
Having ұсынысы Where сөйлеміне аналогты жұмыс жасайды, бірақ жолдар тобына қолданылады. Having ұсынысы Group By сөйлемімен бірге қолданылады. Select – те егер таңдау тізімінде агрегатталған функциялар бар болса, Where сөйлемі олардың алдында орындалады, онда Having сөйлемі топтарға бөлінгеннен кейін барлық сұраныстарға толықтай қолданылады. Having сөйлемінің Where сөйлемінен айырмашылығы, Where сөйлемінің шартында агрегатталған функциялар болмайды. Сондай – ақ, Having сөйлемінің элементтері таңдау тізіміне қосылуы керек. Having сөйлемінде шарттардың бірнешеуі қолданыла алады.
Әдебиет:
(2) Астахова И.Ф. SQL в примерах и задачах. с. 43-47
(4) Джудит С. Боуман Практическое руководство SQL, с.136-157
Апта 10
Кредит сағат 1,2
Дәріс № 19,20
Тақырып: Кіріктірілген ішкісұраныстар.
Дәріс мазмұны
Ішкісұраныс ұғымы.
Ішкісұраныс топтамасы.
Бір ғана мән қайтаратын ішкісұраныстар.
Мәндер жиынын қайтаратын ішкісұраныстар.
Көбінесе, берілген тапсырманы бір ғана сұраныстың жолымен шешу мүмкін емес. Бұл әсіресе, WHERE ұсынысында іздеу шартын қолдану кезінде салыстырылатын мағына алдын ала анықталмаған және SELECT операторын орындау кезінде есептелуі керек. Бұндай жағдайда, басқа SELECT операторының денесіне енгізілген, аяқталған SELECT операторы көмекке келеді. Ішкі бағыныңқы сұраныстар өзін сонымен қатар, SELECT операторын ұсынады, ал оның ұсыныстарын кодтау негізгі SELECT операторы секілді сол ережелерге бағынады. Сыртқы SELECT операторы барлық операциялардың соңғы нәтижесінің мазмұнын анықтау үшін ішкі оператордың орындалу нәтижесін қолданады. Ішкі сұраныстар (=, <, >, <=, >=, <>) салыстырмалы операторларынан кейін орналастырылуы мүмкін, сыртқы SELECT операторының WHERE және HAVING ұсыныстарында олар подзапростар немесе вложенные подзапросы деп аталады. Сонымен қатар, ішкі SELECT операторлары INSERT, UPDATE және DELETE операторларында қолданылуы мүмкін.
Бағыныңқы сұраныстар – бұл, мазмұны сыртқы операторда өңделетін және шығарылатын уақытша кестелерді құру аспабы. Бағыныңқы сұраныстардың мәтіні жақшалармен жабылуы керек. Бағыныңқы сұраныстарға келесі ережелер мен шектеулер қолданылады:
ORDER BY сөйлемі қолданылмайды, бірақ сыртқы бағыныңқы сұраныстарда қатысуы мүмкін;
SELECT сұранысының тізімі бөлек бағандардың атауларынан немесе олармен құрылған өрнектерден тұрады, егер бағыныңқы сұраныста EXISTS кілттік сөзі қатыспаған жағдайда ғана;
Бағыныңқы сұраныста бағандар атауы, аты FROM ұсынысында көрсетілген кестеге жатады. Бірақ сыртқы сұраныстың FROM сөйлемінде көрсетілген кестенің бағандарына да сілтеме рұқсат етіледі, ол үшін баға беретін бағандар аты қолданылады (кестенің нұсқауымен);
Егер бағыныңқы сұраныс салыстыру операциясында қатысушы екі операндылардың біреуі болып табылса, онда сұраныс бұл операцияның оң жақ бөлігінде көрсетілуі тиіс.
Бағыныңқы сұраныстардың екі типі бар:
Скалярлық бағыныңқы сұраныс жалғыз мағынаны қайтарады. Ол принцип бойынша, жалғыз мағынаны көрсетуді талап ететін барлық жерде қолданылуы мүмкін.
Кестелік бағыныңқы сұраныс мағыналар жиынын қайтарады (бір жолдан көрі көбінде орналасқан, кестенің бір немесе бірнеше бағандарының мағынасын). Ол кестенің бары рұқсат етілетін барлық жерде мүмкін.
Достарыңызбен бөлісу: |