កុំព្យូទ័រ, កម្មវិធី
MySQL JOIN: សេចក្ដីពិពណ៌នាឧទាហរណ៍នៃការប្រើប្រាស់ពាក្យបញ្ជានិងអនុសាសន៍
ការបង្កើត មូលដ្ឋានទិន្នន័យ ធនធានអ៊ិនធឺណេតមិនខុសពីមូលដ្ឋានទិន្នន័យស្តង់ដារដែលបានអភិវឌ្ឍនៅក្នុង MS SQL SERVER ។ ជាទូទៅសម្រាប់ធនធានបែបនេះភាសា SQL ត្រូវបានប្រើទោះបីជាវាក៏អាចត្រូវបានប្រើដើម្បីអភិវឌ្ឍផលិតផលកម្មវិធីស្តង់ដារសម្រាប់ការប្រើប្រាស់ក្នុងតំបន់។ ប៉ុន្តែអត្ថបទនេះមិនមែនអំពីបញ្ហានេះទេ។
ជាញឹកញាប់នៅពេលធ្វើការជាមួយមូលដ្ឋានទិន្នន័យនៅក្នុងភាសានីមួយៗភារកិច្ចគឺធ្វើការជ្រើសរើសទិន្ន័យសម្រាប់លទ្ធផលទៅរបាយការណ៍ក្រាហ្វផ្សេងៗ។ ល។ តាមក្បួនមួយនៅពេលអនុវត្តភារកិច្ចបែបនេះវាចាំបាច់ក្នុងការប្រើមិនមែនមួយទេប៉ុន្តែតារាងជាច្រើនដែលរួមបញ្ចូលគ្នាទៅក្នុងសំណួរតែមួយស្មុគស្មាញគួរឱ្យកត់សម្គាល់ការរចនារបស់វា។ ទន្ទឹមនឹងនេះដែរវាចាំបាច់ក្នុងការពិចារណាពីរបៀបដែលទិន្នន័យនឹងត្រូវបានបង្ហាញពីរបៀបដែលតារាងនឹងត្រូវបាន "ទាញឡើង" ហើយលទ្ធផលអ្វីដែលនឹងអាចទទួលយកបានសម្រាប់អ្នកសរសេរកម្មវិធី។ ដើម្បីដោះស្រាយបញ្ហាបែបនេះការស្ថាបនាខ្នាតគំរូមួយនៃភាសា MySQL គឺចូលរួម។
គំនិតនៃពាក្យចូលរួម
ភាសាអភិវឌ្ឍន៍មូលដ្ឋានទិន្នន័យមិនថាភាសាអ្វីនោះទេពាក្យធម្មតាពីវចនានុក្រមដែលនិយាយភាសាអង់គ្លេសត្រូវបានប្រើជាមូលដ្ឋាន (នោះហើយជាមូលហេតុដែលអ្នកដឹងភាសាអង់គ្លេសវានឹងកាន់តែងាយស្រួលសម្រាប់អ្នកដើម្បីធ្វើការជាមួយតុ) ។ ដើម្បីអនុវត្តការតភ្ជាប់នៃតារាងនៅក្នុងគំរូនោះពាក្យដូចគ្នាត្រូវបានគេប្រើ - ចូលរួម។ នៅក្នុងភាសាកម្មវិធីមូលដ្ឋានទិន្នន័យ SQL របស់ខ្ញុំត្រូវបានគេប្រើ។ ការបកប្រែពាក្យផ្លូវការនេះគឺពិតប្រាកដដូចគ្នានឹងភាសាខ្លួនឯង - "ការបង្រួបបង្រួម" ។
ការបកស្រាយ MySQL-Join construct ហើយនិងការណោតវិញ្ញាណណាមួយរបស់វានឹងដូចគ្នា។ ប្រសិនបើយើងបកស្រាយពីគោលបំណងនៃការរចនាដូចជាគ្រោងការណ៍នៃប្រតិបត្តិការរបស់វាយើងទទួលបានតម្លៃដូចខាងក្រោម: សំណង់នឹងអនុញ្ញាតឱ្យប្រមូលវាលចាំបាច់ពីតារាងខុសគ្នាឬសំណួរខាងក្នុងជាគំរូមួយ។
ប្រភេទនៃការសាងសង់សម្រាប់សមាគម
ប្រសិនបើអ្នកសរសេរកម្មវិធីត្រូវការប្រមូលគំរូពីតារាងជាច្រើនហើយគាត់ដឹងពីវាលសំខាន់នៅក្នុងពួកគេនិងទិន្នន័យណាដែលត្រូវការសម្រាប់របាយការណ៍នោះបន្ទាប់មកការសាងសង់មួយនៃការស្ថាបនាសហជីពអាចត្រូវបានប្រើដើម្បីសម្រេចបានលទ្ធផលដែលចង់បាន។ សំណង់សំខាន់ៗ (សម្រាប់ការរួមបញ្ចូលតារាង) គឺបួន:
- ចូលរួមខាងក្នុង។
- ចូលរួមឈើឆ្កាង។
- ចូលរួមខាងឆ្វេង។
- សិទ្ធិចូលរួម។
អាស្រ័យលើភារកិច្ចការរចនាស្តង់ដារនីមួយៗនឹងផ្តល់លទ្ធផលខុសគ្នាដែលនឹងអនុញ្ញាតឱ្យអ្នកទទួលបានរបាយការណ៍លើប៉ារ៉ាម៉ែត្រផ្សេងៗក្នុងរយៈពេលខ្លី។
បង្កើតនិងដំណើរការតារាងសម្រាប់ការប្រើប្រាស់នៅពេលក្រោយ
ជាឧទាហរណ៍មុននឹងអ្នកចាប់ផ្តើមពិចារណាយន្តការសម្រាប់ធ្វើការជាមួយសហព័ន្ធទិន្នន័យវាពិតជាមានប្រយោជន៍ក្នុងការរៀបចំតារាងជាច្រើនដែលយើងនឹងបន្តធ្វើការ។ នេះនឹងជួយបង្ហាញពីគោលការណ៍ទាំងអស់នៃប្រតិបត្តិករដោយភ្នែកដោយបន្ថែមលើនេះអ្នកចាប់ផ្តើមដំបូងងាយស្រួលក្នុងការរៀនមូលដ្ឋានគ្រឹះនៃតារាងកម្មវិធី។
តារាងទី 1 នឹងរៀបរាប់អំពីរបស់ខ្លះដែលបុគ្គលម្នាក់ៗជួបប្រទះនៅពេញមួយជីវិតរបស់គាត់។
នៅក្នុងតារាងទីពីរយើងពិពណ៌នាអំពីលក្ខណសម្បត្តិមួយចំនួននៃវត្ថុពីតារាងទីមួយដូច្នេះអ្នកអាចធ្វើការជាមួយពួកគេក្នុងពេលអនាគត។
ជាទូទៅតារាងពីរនឹងគ្រប់គ្រាន់ដើម្បីបង្ហាញពីការងាររបស់ពួកគេតាមរយៈឧទាហរណ៍។ ឥឡូវនេះអ្នកអាចចាប់ផ្តើមពិចារណារចនាម៉ូដរបស់យើង។
ប្រើការចូលរួមខាងក្នុង
នៅពេលប្រើ MySQL-Join Ineer ស្ថាបត្យកម្មវាមានតម្លៃពិចារណាលើលក្ខណៈមួយចំនួនរបស់វា។ ការរចនានេះអនុញ្ញាតឱ្យអ្នកជ្រើសរើសពីតារាងទាំងពីរតែប៉ុណ្ណោះដែលមាននៅក្នុងតារាងទីមួយនិងទីពីរ។ តើវាដំណើរការយ៉ាងដូចម្តេច? នៅក្នុងតារាងទីមួយយើងមានលេខកូដមេ - លេខសម្គាល់ដែលបង្ហាញពីលេខរៀងនៃទិន្នន័យនៅក្នុងតារាង។
នៅពេលបង្កើតតារាងទីពីរគន្លឹះដូចគ្នាត្រូវបានប្រើជាលេខសៀរៀលឧទាហរណ៍មួយអាចឃើញនៅក្នុងតួលេខ។ នៅពេលអ្នកជ្រើសរើសទិន្នន័យប្រតិបត្តិករជ្រើសនឹងកំណត់កំណត់ត្រាដែលលេខលំដាប់របស់វាមានដូចគ្នាដែលមានន័យថាពួកគេស្ថិតនៅក្នុងតារាងទីមួយនិងទីពីរ។
នៅពេលប្រើការរចនាអ្នកត្រូវយល់ដឹងពីទិន្នន័យដែលអ្នកត្រូវការ។ កំហុសទូទៅបំផុតជាពិសេសសម្រាប់អ្នកបង្កើត មូលដ្ឋានទិន្នន័យ ថ្មី គឺការ ប្រើមិនត្រឹមត្រូវនិងមិនត្រឹមត្រូវនៃការរចនាចូលរួម។ ជាឧទាហរណ៍ MySQL Inner Join អ្នកអាចពិចារណាស្គ្រីបដែលនឹងត្រឡប់មកយើងវិញពីតារាងដែលបានរៀបរាប់និងបំពេញតារាងពីវត្ថុនិងលក្ខណៈសម្បត្តិរបស់វា។ ប៉ុន្តែអាចមានវិធីជាច្រើនដើម្បីប្រើរចនាសម្ព័ន្ធ។ នៅក្នុងន័យនេះ SQL របស់ខ្ញុំគឺជាភាសាដែលអាចបត់បែនបាន។ ដូច្នេះអ្នកអាចពិចារណាឧទាហរណ៍នៃការប្រើប្រាស់ MySQL Inner Join ។
ផ្សំតារាងដោយគ្មានការកំណត់ប៉ារ៉ាម៉ែត្រណាមួយ។ ក្នុងករណីនេះយើងទទួលបានលទ្ធផលនៃផែនការបែបនេះ:
ប្រសិនបើយើងចង្អុលបង្ហាញដោយប្រើពាក្យ Utility "Using" វាចាំបាច់ក្នុងការយកទៅក្នុងគណនីកូនសោសំខាន់នៃកំណត់ត្រានៅក្នុងតារាងលទ្ធផលនៃការជ្រើសរើសនឹងផ្លាស់ប្តូរយ៉ាងខ្លាំង។ ក្នុងករណីនេះយើងទទួលបានគំរូមួយដែលនឹងត្រឡប់តែជួរដេកទាំងនោះដែលមានកូនសោរដូចគ្នា។
វាក៏អាចប្រើវ៉ារ្យង់ទីបីនៃការប្រើរចនាសម្ព័ន្ធផងដែរនៅពេលដែលក្នុងសំណួរវាលដែលតារាងដែលត្រូវចូលរួមគួរតែត្រូវបានបង្ហាញតាមពាក្យ "លើ" ។ ក្នុងករណីនេះគំរូនឹងត្រឡប់ទិន្នន័យដូចខាងក្រោម:
លក្ខណៈពិសេសនៃការប្រើប្រាស់នៃការចូលរួមឆ្វេង
ប្រសិនបើយើងពិចារណាវិធីផ្សំនៃតារាងផ្សំជាមួយ MySQL-Join construct អ្នកអាចមើលឃើញភាពខុសគ្នានៅក្នុងទិន្នន័យដែលជាលទ្ធផល។ យន្តការបែបនេះគឺជាការស្ថាបនាឆ្វេង។
ប្រើ Left Join Toggle MySQL មានលក្ខណៈពិសេសមួយចំនួនដូចជា Inner តម្រូវឱ្យមានការយល់ច្បាស់ពីលទ្ធផលដែលត្រូវការ។
ក្នុងករណីនេះការកត់ត្រាទាំងអស់ពីតារាងទីមួយនឹងត្រូវបានជ្រើសរើសជាមុនហើយកំណត់ត្រាពីតារាងទ្រព្យសម្បត្តិទីពីរនឹងត្រូវបានភ្ជាប់ជាមួយពួកគេ។ ក្នុងករណីនេះប្រសិនបើមានធាតុនៅក្នុងតារាងទីមួយឧទាហរណ៍ "លាមក" ហើយនៅក្នុងតារាងទីពីរគ្មានលក្ខណៈសម្បត្តិសម្រាប់វាទេនោះសេចក្តីថ្លែងការណ៍ខាងឆ្វេងនឹងបង្ហាញតម្លៃទទេនៅពីមុខកំណត់ត្រានេះដែលប្រាប់អ្នកសរសេរកម្មវិធីថាគ្មានសញ្ញាសម្រាប់វត្ថុប្រភេទនេះទេ។ ។
ការប្រើការរចនានេះនឹងអនុញ្ញាតឱ្យអ្នកកំណត់ថាតើវាលណាមួយឬឧទាហរណ៍ទំនិញនៅក្នុងហាងមិនត្រូវបានប៉ះពាល់នឹងតម្លៃ រយៈពេល និង រយៈពេលនៃការធានា ។
ឧទាហរណ៍ខាងឆ្វេង
ដើម្បីពិនិត្យមើលខាងឆ្វេងចូលរួមប្រតិបត្តិករ MySQL នៅក្នុងការអនុវត្តយើងប្រើតារាងដែលបានពិពណ៌នាពីមុន។ និយាយថាអ្នកត្រូវជ្រើសរើសបញ្ជីផលិតផលទាំងអស់ដែលស្ថិតនៅក្នុងហាងនិងពិនិត្យមើលថាតើស្លាកណាមួយមិនត្រូវបានសម្គាល់ដោយសញ្ញាឬលក្ខណៈសម្បត្តិ។ ក្នុងករណីនេះគំរូនឹងបង្ហាញផលិតផលទាំងអស់នៅលើអេក្រង់ហើយសម្រាប់អ្នកដែលមិនមានទ្រព្យសម្បត្តិតម្លៃទទេនឹងត្រូវបានបង្ហាញ។
ការប្រើកន្លែងដែលចូលរួមក្នុងការចូលរួម
ក្នុងនាមជាប៉ារ៉ាម៉ែត្រចូលរួមមួយអាចរួមបញ្ចូលមិនត្រឹមតែវាលដែលអ្នកចង់ភ្ជាប់ទៅតុប៉ុន្តែក៏អាចរួមបញ្ចូលនូវប្រតិបត្តិករឃ្លាត្រង់កន្លែង។
ឧទាហរណ៍ពិចារណាលើស្គ្រីបដែលគួរត្រលប់ទៅពួកយើងមានតែកំណត់ត្រាទាំងនោះដែលមិនមានលក្ខណៈពិសេស។ ក្នុងករណីនេះក្នុង Join Join, អ្នកត្រូវបន្ថែមសេចក្តីថ្លែងការណ៍លក្ខខណ្ឌនិងបញ្ជាក់អ្វីដែលអ្នកចង់ត្រឡប់ជាលទ្ធផល។
នៅពេលប្រើក្នុង MySQL ចូលរួម - កន្លែងណាអ្នកត្រូវយល់ច្បាស់ថាមានតែកំណត់ត្រាទាំងនោះដែលបញ្ជាក់លក្ខខណ្ឌអនុវត្តប៉ុណ្ណោះនឹងត្រូវបង្ហាញហើយការជ្រើសរើសនឹងមើលទៅដូចនេះ:
សំណើបែបនេះអនុញ្ញាតឱ្យអ្នកធ្វើការជ្រើសរើសលើទិន្នន័យជាក់លាក់ដែលទាក់ទងទៅនឹងលក្ខខណ្ឌដែលបានជ្រើសដោយអ្នកសរសេរកម្មវិធី។ មានលក្ខខណ្ឌបែបនេះជាច្រើនប៉ុន្តែនៅពេលជាមួយគ្នានេះបញ្ជាក់ប៉ារ៉ាម៉ែត្រនៃការជ្រើសរើសទិន្នន័យពីតារាងផ្សំគ្នា។
ដោយប្រើ Join ដើម្បីផ្លាស់ប្តូរទិន្នន័យនៅក្នុងតារាង
ការពង្រីករួមគឺជាការពិតជាទូទៅ។ វាអនុញ្ញាតមិនត្រឹមតែធ្វើគំរូខុសៗគ្នាប៉ុណ្ណោះទេប៉ុន្តែថែមទាំងបញ្ចូលក្នុងសំណើពីតារាងមួយទៅច្រើនទៀតបញ្ចូលលក្ខខណ្ឌបន្ថែមទៅក្នុងគំរូ។ ការរចនាក៏អាចត្រូវបានប្រើសម្រាប់ប្រតិបត្តិការទិន្នន័យផ្សេងទៀត។ ដូច្នេះចូលរួមអាចត្រូវបានប្រើដើម្បីផ្លាស់ប្តូរទិន្នន័យនៅក្នុងតារាង។ ផ្ទុយទៅវិញដើម្បីបញ្ជាក់លក្ខខណ្ឌក្នុងតារាងឬក្នុងករណីទាំងនោះប្រសិនបើអ្នកចង់ធ្វើបច្ចុប្បន្នភាពទិន្នន័យនៅក្នុងតារាងជាច្រើនសម្រាប់លក្ខខណ្ឌដូចគ្នា។
ជាឧទាហរណ៍សូមគិតអំពីបញ្ហានេះ។ តារាងបីត្រូវបានផ្ដល់ឱ្យក្នុងនោះមានទិន្នន័យខ្លះ។ អ្នកត្រូវធ្វើការផ្លាស់ប្តូរទិន្នន័យនៅក្នុងតារាងទាំងពីរដោយប្រើសំណួរតែមួយ។ ដើម្បីដោះស្រាយភារកិច្ចប្រភេទនេះអ្នកអាចប្រើពាក្យ Join Join នៅក្នុងពាក្យបញ្ជា Update ។ ប្រភេទនៃការរួមបញ្ចូលដោយខ្លួនវាផ្ទាល់គឺអាស្រ័យដូចជាក្នុងករណីទិន្នន័យទៅលើលទ្ធផលដែលអ្នកសរសេរកម្មវិធីចង់ទទួល។
ចូរយើងពិចារណាគំរូដ៏សាមញ្ញបំផុត។ អ្នកត្រូវធ្វើបច្ចុប្បន្នភាពសំណួរដូចគ្នាសម្រាប់លក្ខខណ្ឌដូចគ្នា។ សំណួរបែបនេះត្រូវបានបង្កើតឡើងដើម្បីបង្កើនប្រសិទ្ធភាពការងារជាមួយមូលដ្ឋានទិន្នន័យ។ ហេតុអ្វីបានជាសរសេរសំណួរផ្សេងគ្នាសម្រាប់តារាងនីមួយៗបើអ្នកអាចធ្វើការគណនាទិន្នន័យទាំងអស់ជាមួយសំណួរមួយ? MySQL Update សូមចូលរួមឧទាហរណ៍ក្នុងករណីនេះ:
ការកសាងសំណួរស្មុគ្រស្មាញ
ជារឿយៗនៅពេលធ្វើការជាមួយមូលដ្ឋានទិន្ន័យវាចាំបាច់ក្នុងការបង្កើតសំណួរមិនត្រឹមតែបញ្ចូលគ្នារវាងតារាងជាច្រើនប៉ុណ្ណោះទេប៉ុន្តែថែមទាំងការប្រើប្រាស់ subqueries ផងដែរ។ ភារកិច្ចបែបនេះពិបាកយល់ដល់អ្នកសរសេរកម្មវិធីទិន្នន័យមូលដ្ឋាន។ ការលំបាកគឺថាអ្នកត្រូវតែគិតតាមរយៈជំហាននីមួយៗកំណត់ទិន្នន័យណាមួយពីតារាងឬសំណួរដែលអ្នកត្រូវការដើម្បីទទួលនិងរបៀបដែលអ្នកនឹងត្រូវធ្វើការជាមួយពួកគេនាពេលអនាគត។
សម្រាប់ការយល់ដឹងជាក់លាក់បន្ថែមអ្នកអាចពិចារណា (នៅក្នុង MySQL ចូលរួម) ឧទាហរណ៍នៃសំណួរស្មុគ្រស្មាញ។ ប្រសិនបើអ្នកជាអ្នកចាប់ផ្តើមដំបូងហើយទើបចាប់ផ្តើមធ្វើការជាមួយមូលដ្ឋានទិន្នន័យនោះការបណ្តុះបណ្តាលបែបនេះនឹងទទួលបានអត្ថប្រយោជន៍។ ជម្រើសដ៏ល្អបំផុតគឺ MySQL Left Join ឧទាហរណ៍។
សំណើសុំនេះនឹងប្រគល់មកយើងវិញ 58 កិច្ចសន្យាលក់ដែលតុល្យភាពនៃមូលនិធិសម្រាប់កាលបរិច្ឆេទដែលបានជ្រើសរើសត្រូវបានបំពេញឬមាន។ ក្នុងករណីនេះនេះជាកាលបរិច្ឆេទបច្ចុប្បន្ន។ ដូចគ្នានេះផងដែរនៅក្នុងគំរូសំណូមពរត្រូវបានបន្ថែមថាឈ្មោះកិច្ចសន្យាគួរតែមានសញ្ញា "123" ។ ព័ត៌មានដែលបង្ហាញនៅលើអេក្រង់ (ទិន្នន័យ) នឹងមានការតម្រៀប - តម្រៀបតាមលេខកិច្ចសន្យា។
ឧទាហរណ៍ដូចខាងក្រោមនឹងបង្ហាញព័ត៌មានលម្អិតនៃការបង់ប្រាក់ទាំងអស់ដែលលេខកិច្ចសន្យាត្រូវបានបញ្ជាក់។
ប្រើ Subqueries
ដូចដែលបានរៀបរាប់ខាងលើនៅពេលធ្វើការជាមួយមូលដ្ឋានទិន្នន័យអ្នកអាចបញ្ចូលតារាងមិនត្រឹមតែប៉ុណ្ណោះទេប៉ុន្តែថែមទាំងតារាងដែលមានសំណួរ។ ការរចនានេះត្រូវបានប្រើជាចម្បងដើម្បីបង្កើនល្បឿនសំណួរនិងបង្កើនប្រសិទ្ធភាពវា។
ឧទាហរណ៍ប្រសិនបើអ្នកត្រូវជ្រើសតែវាលពីរពីតារាងដែលមានវាលរាប់រយហើយនិយាយអំពីពាន់រទេះអ្នកគួរតែប្រើសំណួរដែលនឹងត្រឡប់តែវាលដែលត្រូវការហើយបញ្ចូលវាជាមួយគំរូទិន្នន័យមេ។ ជាឧទាហរណ៍នៃ MySQL Join Select អ្នកអាចពិចារណាអំពីប្រភេទនៃប្រភេទនេះ:
ទាំងនេះមិនមែនជាវិធីទាំងអស់ដើម្បីប្រើ MySQL ស្តង់ដារស្ថាបត្យកម្មទេប៉ុន្តែគ្រាន់តែជាបទដ្ឋានប៉ុណ្ណោះ។ របៀបប្រើការចូលរួមរួមនិងទម្រង់បែបបទរបស់វាអ្នកសរសេរកម្មវិធីសម្រេចចិត្តប៉ុន្តែវាមានតម្លៃចងចាំនិងពិចារណាអំពីអ្វីដែលលទ្ធផលគួរត្រូវបានទទួលនៅពេលសំណួរត្រូវបានប្រតិបត្តិ។
Similar articles
Trending Now