Кестелер мен сұрауларды біріктіру

Кестелер мен сұрауларды біріктіру

Сұрау ішіне бірнеше кестелерді қосқаныңызда, іздеген нәтижелерді табуға көмектесетін біріктірулерді қолданасыз. Біріктіру сұрауға көргіңіз келетін әр кестенің жазбасын ғана қайтаруға көмектеседі, сол кестелердің сұраудағы басқа кестелерге қатысының қандай екендігіне байланысты. Бұл бөлім біріктірулер туралы маңызды мәліметті қамтамасыз етеді, біріктірулердің әр түрлерін талқылайды және оларды қалай қолдану керектігін көрсетеді.

Бөл бөлімде

Кіріспе

Ішкі біріктірулер

Сыртқы біріктірулер

Айқасқан біріктірулер

Тең емес біріктірулер

Біріктіруді жою

Кіріспе

Қатысы бар дерекқорлар, ең қарапайым деңгейінде, бір-біріне логикалық қатынастарды сіңірген кестелерді қамтиды. Қатынастарды ортақ өрістері бар кестелерді жалғау үшін қолданасыз. Қатынас сұрау ішінде біріктіру арқылы беріледі.

Сұрауға кестелер қосқаныңызда, Microsoft Office Access 2007 кестелер арасында анықталған қатынастарға негізделген біріктірулерді жасайды. Біріктірулерді сұраулар ішінде, олар әлдеқашан анықталған қатынастарды білдірмесе де, қолмен жасауыңызға болады. Егер сұрауға арналған деректер көздері ретінде басқа сұрауларды (кестелердің орнына немесе кестелерге қоса) қолдансаңыз, бастапқы сұраулар арасында және сол сұраулар мен деректер көздері ретінде қолданатын кез-келген кестелер арасында біріктірулер жасауыңызға болады.

Біріктірулер сұрау критерийлеріне ұқсас түрде жұмыс жасайды, яғни олар сұрау амалдарында қамтылуы қажет деректердің сай келу керектігі сияқты ережелерді орнатады. Критерийлерден бөлек, біріктірулер шарттарды қанағаттандыратын жолдардың әр жұп жалғыз жол құрауы үшін жазба жиынтығында біріктірілетінін көрсетеді.

Біріктірулердің төрт негізгі түрі бар: ішкі біріктірулер, сыртқы біріктірулер, айқасқан біріктірулер және тең емес біріктірулер. Бұл бөлім қолдануыңызға болатын біріктірудің әр түрін, әр түрін неге қолданатыныңызды және біріктірулерді қалай жасау керектігін зерттейді.

Беттің жоғарғы жағы

Ішкі біріктірулер

Ішкі біріктірулер біріктірудің ең таралған түрі. Олар сұрауға біріктірілген кестелердің біріндегі жолдардың басқа кестедегі жолдары сәйкес келетінін біріктірілген өрістердегі деректер негізінде айтады. Ішкі біріктіруі бар сұрау жегілгенде, сұрау амалдарында біріктірілген кестелердің екеуіне де ортақ мән бар жолдарды ғана қамтиды.

Ішкі біріктіруді қолдану не үшін керек?

Біріктірілетін өрісінде сәйкес келетін біріктірудегі кестелердің екеуіндегі сол жолдарға ғана қайта оралғыңыз келсе ішкі біріктіруді қолданыңыз.

Ішкі біріктіруді қалай қолданамын?

Көбінесе, ішкі біріктіруді қолдану үшін ештеңе қажет емес. Егер бұған дейін Қатынастар терезесі ішінде кестелер арасында байланыстар жасаған болсаңыз, Access бағдарламасы сұраудың Құрастырушы көрінісі қатысы бар кестелерді қосқан кезде ішкі біріктірулерді автоматты түрде жасайды. Егер деректер тұтастығы жүзеге аса, Access қай кестенің «берден көпке» қатынасы "бір" жағында екенін көрсету үшін біріктіру сызығының үстінде "1" таңбасын және қай кестенің "көп" жағында екенін көрсету үшін шексіздік таңбасын () бейнелейді.

Егер де байланыстарды жасамаған болсаңыз, егер екі кестені сұрауға қоссаңыз және сол кестелердің әрбіреуінде бірдей немесе сәйкес келетін деректер түрі болса және біріктіру өрістерінің біреуі негізгі кілт болып табылса Access ішкі біріктірулерді өзіндік түрде жасайды. "Бір" және "көп" таңбалары бұл жағдайда бейнеленбейді, себебі анықтамалық тұтастық жүзеге аспайды.

Егер сұрауларды сұрауға қоссаңыз және сол сұраулар арасында байланыстар жасамасаңыз, Access сол сұраулар арасында немесе сұраулар мен кестелер арасында ішкі біріктірулерді өзіндік түрде жасамайды. Жалпы, оларды өзіңізге жасау қажет болады. Ішкі біріктіру бір деректер көзіндегі өрісті басқа деректер көзіндегі өріске сүйреу арқылы жасалады. Access біріктірудің жасалғанын көрсету үшін екі өрістің арасында сызықты бейнелейді.

Ішкі біріктіруге арналған SQL синтаксисі

Ішкі біріктірулер SQL ішіндегі FROM ұсынысында төмендегідей көрсетіледі:

FROM кесте1 ІШКІ біріктіру кесте2 ON кесте1.өріс1салысопер кесте2.өріс2

ІШКІ біріктіру амалында мына бөліктер бар:

Бөлік

Сипаттама

1-кесте, 2-кесте

Жазбалар біріктірілген кестелердің атаулары.

1-өріс, 2-өріс

Біріктірілген өрістердің атаулары. Егер олар сандардан тұрмаса, өрістердің бірдей деректер түрі құралуы және деректердің бірдей түрін қамтуы қажет, бірақ олардың бірдей атқа ие болуы қажет емес.

compopr

Кез-келген катысы бар салыстыру әрекеті: "=," "<," ">," "<=," ">=," or "<>."

Ішкі біріктіру синтаксисі туралы қосымша мәлімет үшін, ІШКІ БІРІКТІРУ әрекеті тақырыбын қараңыз.

Беттің жоғарғы жағы

Сыртқы біріктірулер

Сыртқы біріктірулер біріктірудің екі жағындағы жолдардың кейбіреуінің дәл сәйкес келетіндігін сұрауға айтқанмен де, сұраудың бір кестедегі барлық жолдарды және де біріктірудің екі жағындағы ортақ мәнді бөлісетін басқа кестедегі жолдарды қамтуы қажет.

Сыртқы біріктірулер сол жақтағы сыртқы біріктірулер немесе оң жақтағы сыртқы біріктірулер бола алады. Сол жақтағы сыртқы біріктіруде, сұрау SQL сөйлемінің FROM ұсынысындағы бірінші кестедегі барлық жолдарды және басқа кестедегі екі кестелерге ортақ мәндерді қамтитын біріктіру өрісі бар жолдарды ғана қамтиды. Оң жақтағы сыртқы біріктіруде, сұрау SQL сөйлемінің FROM ұсынысындағы екінші кестедегі барлық жолдарды және басқа кестедегі екі кестелерге ортақ мәндерді қамтитын біріктіру өрісі бар жолдарды ғана қамтиды.

Ескерту : Белгілі бір біріктірудегі кестенің қайсысы сол жақ немесе оң жақ екенін біріктіруді екі рет нұқу және содан соң Біріктіру сипаттары тілқатысу терезесіне қарау арқылы оңай айта аласыз. Сондай-ақ, SQL көрінісіне көшуіңізге, сосын FROM ұсынысын тексеруіңізге болады.

Сыртқы біріктірудің бір жағындағы жолдардың кейбірінде басқа кестедегі сәйкес жолдардың болмайтындығына байланысты, жолдардың сәйкес болмаған кезінде сұрау нәтижелеріндегі сол басқа кестеден алынған өрістердің кейбіреулері бос күйде болады.

Сыртқы біріктіруді қолдану қажет пе?

Егер біріктірудегі кестелердің біреуіндегі барлық жолдардың нәтижелерде қамтылғанын және сұраудың біріктіру өрісіндегі бірінші кестеге сәйкес келетін басқа кестедегі жолдарды ғана қайтарылғанын қаласаңыз сыртқы біріктіруді қолданыңыз.

Сыртқы біріктіруді қалай қолдану қажет?

Сыртқы біріктірулер ішкі біріктірулерді өзгерту арқылы жасалады.

Ішкі біріктіруді сыртқы біріктірумен ауыстыру

  1. Сұраудың Құрастырушы көрінісінде, өзгерткіңіз келетін біріктіруді екі рет нұқыңыз.

    Біріктіру сипаттары тілқатысу терезесі пайда болады.

  2. Біріктіру сипаттары тілқатысу терезесінде, 2параметр және 3 параметр қасындағы таңдауларға көңіл бөліңіз.

  3. Қолданғыңыз келетін параметрді нұқыңыз, содан соң ОК түймешігін басыңыз.

  4. Access біріктіруді бейнелейді және барлық жолдар қамтылатын деректер көзінен біріктіру шартын қанағаттандыратын жолдар ғана қамтылатын деректер көзіне нұсқалған көрсеткіні көрсетеді.

Сыртқы біріктіруге арналған SQL синтаксисі

Сыртқы біріктірулер SQL ішіндегі FROM ұсынысында төмендегідей көрсетіледі:

FROM кесте1 [ СОЛ | ОҢ ] біріктіру 2-кесте
ON 1-кесте.1-өрісcompopr 2-кесте.2-өріс

СОЛ жақ біріктіру және ОҢ жақ біріктіру амалдарында мына бөліктер бар:

Бөлік

Сипаттама

1-кесте, 2-кесте

Жазбалар біріктірілген кестелердің атаулары.

1-өріс, 2-өріс

Біріктірілген өрістер атаулары. Өрістер бірдей деректер түрі құралуы және деректердің бірдей түрді қамтуы қажет, бірақ бірдей атауларының болуы қажет емес.

compopr

Кез-келген қатысы бар салыстыру әрекеті: "=," "<," ">," "<=," ">=," or "<>."

Сыртқы біріктіру синтаксисі туралы қосымша мәлімет үшін, СОЛ жақ біріктіру, ОҢ жақ біріктіру амалдары тақырыбын қараңыз.

Беттің жоғарғы жағы

Айқасқан біріктірулер

Айқасқан біріктірулердің ішкі және сыртқы біріктірулерден айырмашылығы олардың Office Access 2007 ішінде анық бейнеленбеуінде. Айқасқан біріктіруде, бір кестедегі әр жол басқа кестедегі әр жолмен біріктіріледі, нәтижесінде айқасқан өнім немесе Cartesian өнімі деп аталатын пайда болады. Анық біріктірілмеген кестелері бар сұрауды жегу кезінде, нәтижесінде айқасқан өнім пайда болады. Айқасқан біріктірулер әншейінде кездейсоқ болып келеді, бірақ олардың пайдалы бола алатын кездері де бар.

Айқасқан біріктіруді қолдану қажет пе?

Егер екі кестелер немесе сұраулар арасындағы жолдардың әр комбинациясын тексергіңіз келсе, айқасқан біріктіруді қолданыңыз. Мысалы, ісіңіздің алға басқан керемет жылы болды және тапсырыс берушілеріңізге қайтарымдар беруді қарастырудасыз делік. Әр тапсырыс берушінің сатып алғандарын қосатын сұрауды құрастыруыңызға, бірнеше қайтарым пайыздары бар кесте жасауыңызға және айқасқан біріктіру жасайтын басқа сұрауда екеуін біріктіруіңізге болады. Соңында, әр тапсырыс беруші үшін гипотетикалық қайтарымдарды бейнелейтін сұрау пайда болады.

Айқасқан біріктіруді қалай қолдану қажет?

Айқасқан біріктіру сұрауға кестелер немесе сұраулар қосқаныңызда шығады және әр кесте немесе сұрау үшін ең кем дегенде бір анық біріктіру жасамайды. Access қандай да бір кесте немесе сұрауға анық біріктірілмеген әр кесте немесе сұраудағы әр жолды нәтижелердегі басқа жолдың әрбіреуімен біріктіреді. Алдындағы бөлімдегі қайтарым сценарийін қарастырыңыз. 91 тапсырыс берушіңіз бар және бес қайтарым пайыз түрін қарастырғыңыз келеді деп есептелік. Айқасқан біріктіруіңізде 455 жол (91 мен 5 нәтижесі) пайда болады.

Ойлағаныңыздай, кездейсоқ айқасқан біріктірулер сұрау нәтижелеріңізде жолдардың өте көп сандарын жасай алады. Бұған қоса, бұл нәтижелер көбінесе мәнсіз болып келеді, себебі әр жолды басқа жолмен біріктіргіңіз келмесе, нәтижелерде пайда болатын біріктірілген жолдардың көбісінің мәні жоғалады. Ең ақырында, кездейсоқ айқасқан біріктірулерді қолданатын сұрауларды жегу ұзаққа созылып кетуі мүмкін.

Сұрау Құрастырушы көрінісіндегі кездейсоқ айқасқан біріктіру

Сұрау Құрастырушы көрінісіндегі кездейсоқ айқасқан біріктіру.

1. Қоршалған өрістердің бір-біріне біріктірілуі қажет.

Кездейсоқ айқасқан өнім

Кездейсоқ айқасқан біріктірудің қайтарған айқасқан өнімі жоғарыда сипатталған.

1. Жазбалардың өте көп санын ескеріңіз.

Түзетілген сұрау нәтижесі

Нәтижелер дұрыс біріктіруден соң жасалады.

1. Жазбалар сандарының аздау екенін ескеріңіз.

Беттің жоғарғы жағы

Тең емес біріктірулер

Біріктірулер біріктірілген өрістердің баламалыға негізделуінің қажеті жоқ. Біріктіруді көп (>), аз (<) немесе тең емес (<>) сияқты кез-келген салыстыру операторына негіздеуге болады. Баламалы деңгейге негізделмеген біріктірулер тең емес біріктірулер деп аталады.

Тең емес біріктіруді қолдану қажет пе?

Егер тең емес өріс мәндеріне негізделген деректердің екі көзінің жолдарын біріктіргіңіз келсе, тең емес біріктіруді қолданасыз. Көбінесе, тең емес біріктірулер көп (>), аз (<), көп немесе тең (>=), немесе аз немесе тең (<=) салыстыру операторларына негізделеді. Тең емес (<>) операторына негізделген тең емес біріктірулері айқасқан біріктірулердің қайтара алатын санына сәйкес жолдар санын қайтара алады және нәтижелерді түсіндіру қиынға соғуы мүмкін.

Тең емес біріктіруді қалай қолдану қажет?

Тең емес біріктірулер Құрастырушы көрінісінде қолдауға ие емес. Егер оларды қолданғыңыз келсе, оларды SQL көрінісі арқылы қолдануыңыз қажет. Алайда, біріктіруді Жасақтама көрінісінде жасауыңызға, SQL көрінісіне көшуіңізге, тең болады (=) салыстыру операторын табуыңызға және қолданғыңыз келетін операторды өзгертуіңізге болады. Осыны жасағаннан соң, егер салыстыру операторын SQL көрінісіндегі тең болады (=) қайтадан өзгертсеңіз, сұрауды қайтадан Жасақтама көрінісінде ғана аша аласыз.

Беттің жоғарғы жағы

Біріктіруді жою

Егер біріктіруді қателесіп жасап қойсаңыз, мысалы, бір-біріне ұқсамайтын деректер түрлері бар екі өріс арасында біріктіру, оны өшіруіңізге болады. Біріктіруді өшіру үшін:

  1. Сұрау жасақтамасы торында, жойғыңыз келетін біріктіруді нұқыңыз.

  2. ЖОЮ басыңыз.

-немесе-

  • Сұрау жасақтамасы торында, жойғыңыз келетін біріктіруді тінтуірдің оң жақ түймешігімен нұқыңыз, сосын Жою нұқыңыз.

Беттің жоғарғы жағы

Дағдыларды жетілдіру
Оқыту курсымен танысыңыз
Жаңа мүмкіндіктерге бірінші болып қол жеткізу
Office Insider бағдарламасына қосылу

Осы ақпарат пайдалы болды ма?

Пікіріңіз үшін рақмет!

Пікіріңізге рақмет! Сізді Office қолдау көрсету қызметіндегі агенттердің бірімен байланыстырған жөн болуы мүмкін.

×