កុំព្យូទ័រប្រភេទឯកសារ

SQL មួយខុសគ្នា: ការរៀបរាប់, ឧទាហរណ៍, លក្ខណៈសម្បត្តិ

ជាញឹកញាប់នៅពេលដែលអ្នកប្រើ SQL មួយដើម្បីទាញយកទិន្នន័យពីតារាងនេះអ្នកប្រើដែលបានទទួលទិន្នន័យទូលំទូលាយនេះគឺអត្ថិភាពនៃជួរដេកស្ទួនដូចគ្នាពិតជាបាន។ ដើម្បីជៀសវាងស្ថានភាពនេះប្រើ SQL មួយអាគុយម៉ង់ខុសគ្នាក្នុងប្រយោគជ្រើស។ អត្ថបទនេះនឹងពិភាក្សាអំពីគំរូនៃការប្រើប្រាស់នៃអាគុយម៉ង់នេះព្រមទាំងស្ថានភាពដែលកម្មវិធីនេះគួរតែត្រូវបានបោះបង់ចោលដោយអាគុយម៉ង់។

មុនពេលយើងបន្តទៅពិចារណាឧទាហរណ៍ជាក់លាក់បង្កើតមូលដ្ឋានទិន្នន័យដែលបានទាមទារប្តីប្រពន្ធរបស់តារាង។

ការរៀបចំតារាង

សូមស្រមៃគិតថាយើងមានហាងមូលដ្ឋានទិន្នន័យអំពីពផ្ទាំងរូបភាពដែលបានបង្ហាញនៅក្នុងតារាងទាំងពីរ។ oboi នេះតារាង (ផ្ទាំង) ដែលមានវាលលេខសម្គាល់ (គ្រឿងសម្គាល់តែមួយគត់) របស់ប្រភេទ (ប្រភេទនៃផ្ទាំងរូបភាព។ - ក្រដាស, ប្លាស្ទិច, ល), សម្បុរ (color) ដែលជា struct (រចនាសម្ព័ន្ធ) និងតម្លៃ (តម្លៃ) ។ និងតារាង Ostatki (សំណល់) ជាមួយនឹងវាល id_oboi (សេចក្ដីយោងទៅនឹងគ្រឿងសម្គាល់តែមួយគត់ដែលមាននៅក្នុងតារាង Oboi មួយ) និងចំនួន (ចំនួននៃការវិលនៅក្នុងស្តុក) ។

បំពេញតារាងទិន្នន័យ។ នៅក្នុងតារាងបន្ថែមផ្ទាំងរូបភាពកំណត់ត្រា 9:

Oboi

លេខសម្គាល់

ប្រភេទ

ប៍ន

struct

តម្លៃ

1

ក្រដាស

multicolor

ពុម្ព

ចំនួន 56,9

2

ក្រដាសស្រទាប់ទ្វេរដង

ត្នោត

រលូន

114,8

3

ប្លាស្ទិច

ទឹកក្រូច

ពុម្ព

504

4

fleece

ត្នោត

ពុម្ព

1020,9

5

ក្រដាសស្រទាប់ទ្វេរដង

ត្នោត

រលូន

150,6

6

ក្រដាស

multicolor

រលូន

95,4

7

ប្លាស្ទិច

ត្នោត

រលូន

372

8

fleece

ពុម្ព

980,1

9

ការណាត់

ផ្កាឈូក

រលូន

1166,5

តារាងជាមួយនឹងការនៅសល់ការ - និងកំណត់ត្រាប្រាំបួន:

Ostatki

id_oboi

រាប់

1

8

2

12

3

24

4

9

5

16

6

7

7

24

8

32

9

11

យើងបន្តទៅការរៀបរាប់នៃលំដាប់ខុសគ្នានេះនៅក្នុង SQL នេះ។

ដាក់គ្នានៅក្នុងការជ្រើសឃ្លា

អាគុយម៉ង់ខុសគ្នាគួរតែត្រូវបានដាក់ភ្លាមបន្ទាប់ពីជ្រើសពាក្យគន្លឹះនៅក្នុងសំណួរ។ លោកបានអនុវត្តទៅជួរឈរទាំងអស់បញ្ជាក់នៅក្នុងការកាត់ទោសនេះជ្រើសនោះទេព្រោះវានឹងត្រូវបានដកចេញពីលទ្ធផលសំណួរចុងក្រោយគឺខ្សែអក្សរដែលដូចគ្នាពិត។ ដូច្នេះនៅពេលដែលគឺគ្រប់គ្រាន់ដើម្បីបញ្ជាក់នៅពេលសរសេរ SQL មួយ«ជ្រើសរើសខុសគ្នា»ការស្នើរសុំ។ ករណីលើកលែងគឺការប្រើប្រាស់នៃមុខងារសរុបនៅក្នុងគ្នាដែលមើលទៅនៅពេលបន្តិចទៀតនេះ។

វាគួរតែត្រូវបានចងចាំថាភាគច្រើននៃមូលដ្ឋានទិន្នន័យនិងមិនទទួលស្គាល់ប្រភេទរបស់អ្នកនៃការស្នើសុំ:

ជ្រើស Ostatki.Count ខុសគ្នា, Oboi ខុសគ្នា។ *

ពី oboi

ខាងក្នុងចូលរួម Ostatki លើ Oboi.id = Ostatki.id_oboi

មានអាគុយម៉ង់មិនត្រូវបានគេចាត់ទុកថាជាច្រើនដងឬនៅពេលដែលបានបញ្ជាក់នោះទេប៉ុន្តែមុនពេលដែលទីពីរទីបីឬជួរឈរដែលបានជ្រើសមួយផ្សេងទៀត។ អ្នកនឹងទទួលបានកំហុសដែលសំដៅទៅលើកំហុសនៅក្នុងវាក្យសម្ព័ន្ធមួយ។

សំណួរខុសគ្នាកម្មវិធីនេះនៅក្នុងស្ដង់ដារ

វាច្បាស់ណាស់ថាជាមួយនឹងតារាងរចនាសម្ព័ន្ធអគារត្រឹមត្រូវនិងបំពេញឱ្យពួកគេក្នុងតារាងតែមួយបានដកចេញស្ថានភាពនេះនៅពេលដែលមានខ្សែអក្សរដែលដូចគ្នាពិត។ ដូច្នេះការប្រតិបត្តិសំណួរ«ជ្រើស * ខុសគ្នា»ដែលមានគំរូនៃតារាងមួយគឺ impractical ។

សូមពិចារណាអំពីស្ថានភាពមួយនៅពេលដែលយើងត្រូវដឹងថាអ្វីដែលជាប្រភេទយើងមានផ្ទាំងរូបភាព, គ្រាន់តែសម្រាប់ផ្តល់ភាពងាយស្រួលដើម្បីតម្រៀបតាមប្រភេទ:

ជ្រើស Oboi.type

ពីគោលបំណង Oboi តាមប្រភេទ

និងទទួលបានលទ្ធផលនេះ:

ប្រភេទ

ក្រដាស

ក្រដាស

ក្រដាសស្រទាប់ទ្វេរដង

ក្រដាសស្រទាប់ទ្វេរដង

ប្លាស្ទិច

ប្លាស្ទិច

ការណាត់

fleece

fleece

ដូចដែលគេឃើញនៅក្នុងតារាងមានជួរដេកស្ទួនមាន។ ប្រសិនបើយើងបន្ថែមសំណើនេះជ្រើសខុសគ្នា:

ជ្រើស Oboi.type ខុសគ្នា

ពីគោលបំណង Oboi តាមប្រភេទ

យើងទទួលបានលទ្ធផលដោយមិនចាំបាច់ធ្វើឡើងវិញនេះ:

ប្រភេទ

ក្រដាស

ក្រដាសស្រទាប់ទ្វេរដង

ប្លាស្ទិច

ការណាត់

fleece

ដូច្នេះប្រសិនបើអ្នកបញ្ចូលទិន្នន័យត្រឹមត្រូវនៅក្នុងតារាងបន្ទាប់មកភ្លាមបន្ទាប់ពីការហៅទូរស័ព្ទឬសំណើររបស់អ្នកទិញដែលយើងអាចឆ្លើយថាផ្ទាំងរូបភាពរាវសំឡីកែវរូបភាព acrylic មាននៅក្នុងហាងនេះគឺមិនមាន។ បានផ្ដល់ឱ្យថាជួរនៃហាងនោះត្រូវបានជាធម្មតាមិនត្រូវបានកំណត់ទៅមួយរយផ្ទាំងរូបភាព, មើលបញ្ជីនៃប្រភេទដែលមិនមែនជាតែមួយគត់ដែលនឹងត្រូវបានពិតជាពឹងផ្អែកលើកម្លាំងពលកម្ម។

កម្មវិធីនៃការខុសគ្នានៅក្នុងមុខងារសរុប

អាគុយម៉ង់ខុសគ្នា SQL អាចត្រូវបានប្រើជាមួយមុខងារសរុបណាមួយ។ ប៉ុន្តែសម្រាប់ Min និងអតិបរមាកម្មវិធីរបស់ខ្លួននឹងមានប្រសិទ្ធិភាពទេប៉ុន្តែនៅពេលដែលគណនាផលបូកឬតម្លៃមធ្យមគឺកម្រនឹងស្ថានភាពដែលគ្មាននរណាម្នាក់នឹងត្រូវយកទៅក្នុងគណនីការធ្វើនេះ។

ឧបមាថាយើងចង់ពិនិត្យមើលសមត្ថភាពរបស់ឃ្លាំងរបស់យើងនិងដើម្បីផ្ញើការស្នើរសុំនេះ, គណនាចំនួនសរុបនៃការនៅក្នុងស្តុករមូរ:

ផលបូក SELECT (Ostatki.count)

ពី Ostatki

ស្នើសុំនឹងផ្ដល់ចម្លើយ 143. ប្រសិនបើមាន, ទោះជាយ៉ាងណាយើងនឹងផ្លាស់ប្តូរទៅជា:

ផលបូក SELECT (Ostatki.count ខុសគ្នា)

ពី Ostatki

យើងទទួលបានចំនួនសរុប 119, ជាផ្ទាំងរូបភាពសម្រាប់លេខផ្នែកទី 3 និង 7 គឺមាននៅក្នុងភាគហ៊ុននៅក្នុងចំនួនទឹកប្រាក់ដូចគ្នា។ ទោះជាយ៉ាងណាវាជាការច្បាស់ណាស់ថាចម្លើយគឺខុស។

ត្រូវបានគេប្រើច្រើនបំផុតជាញឹកញាប់នៅក្នុង SQL មួយមុខងារខុសគ្នារាប់។ ដូច្នេះយើងអាចរកឃើញយ៉ាងងាយស្រួលចេញប្រភេទតែមួយគត់របៀបជាច្រើននៃផ្ទាំងរូបភាព, យើងមាន:

ការរាប់ SELECT (Oboi.type ខុសគ្នា)

ពី oboi

និងទទួលបានលទ្ធផលនៃការ 5 - ក្រដាសធម្មតានិងប្លាស្ទិស្រទាប់ទ្វេរដងនិងមិនមែនជាត្បាញក្រណាត់។ ពិតណាស់ទាំងអស់បានគេមើលឃើញការផ្សាយពាណិជ្ជកម្មដូចជា: «តែយើងមានជាង 20 ប្រភេទផ្សេងគ្នានៃផ្ទាំងរូបភាព, "ដោយដែលត្រូវបានន័យថាហាងនេះគឺមិនមែនគ្រាន់តែជាការវិលប្តីប្រពន្ធឡូនិងខុសគ្នានៃប្រភេទសម័យទំនើបផ្ទាំងរូបភាព។

វាជាការគួរឱ្យចាប់អារម្មណ៍ថានៅក្នុងសំណួរដូចគ្នានេះដែរអ្នកអាចបញ្ជាក់មុខងារច្រើនដូចជាការរាប់ចាត់ទុក DISTINCT, និងដោយគ្មានវា។ នោះគឺជាស្ថានភាពតែមួយគត់ដែលខុសគ្នានៅក្នុង Select'e អាចមានវត្តមានច្រើនដង។

ពេលដែលត្រូវបោះបង់ចោលការប្រើប្រាស់នៃអាគុយម៉ង់នេះ

ការប្រើប្រាស់នៃ SQL មួយពីអាគុយម៉ង់ខុសគ្នានេះគួរតែត្រូវបានបោះបង់ចោលនៅក្នុងមួយនៃករណីពីរ:

  1. អ្នកអនុវត្តការជ្រើសរើសតុមួយនិងមានទំនុកចិត្តនៅក្នុងតម្លៃតែមួយគត់គ្នា។ ក្នុងករណីនេះការប្រើប្រាស់នៃអាគុយម៉ង់នេះគឺមិនសមរម្យនោះទេព្រោះវាជាការផ្ទុកបន្ថែមទៀតនៅលើម៉ាស៊ីនបម្រើឬម៉ាស៊ីនភ្ញៀវ (អាស្រ័យលើប្រភេទនៃ DBMS នេះ) ។
  2. តើអ្នកមានការភ័យខ្លាចនៃការបាត់បង់ទិន្នន័យរបស់អ្នក។ សូមឱ្យយើងពន្យល់។

ថៅកែឧបមាថាគេសួរអ្នកទៅបញ្ជីផ្ទាំងរូបភាពដែលអ្នកមានជាមួយនឹងការបង្ហាញនៃការតែពីរជួរឈរ - ប្រភេទនិងណ៍។ ចេញពីទំលាប់, អ្នកផ្តល់ឱ្យអាគុយម៉ង់ខុសគ្នាមួយ:

ជ្រើស Oboi.type ខុសគ្នា, Oboi.color

ពី oboi

ORDER BY Oboi.type

និង - បាត់បង់ទិន្នន័យមួយចំនួន:

ប្រភេទ

ប៍ន

ក្រដាស

multicolor

ក្រដាសស្រទាប់ទ្វេរដង

ត្នោត

ប្លាស្ទិច

ត្នោត

ប្លាស្ទិច

ទឹកក្រូច

ការណាត់

ផ្កាឈូក

fleece

ត្នោត

fleece

វាអាចផ្តល់នូវចំណាប់អារម្មណ៍ថាផ្ទាំងរូបភាពក្រដាស (Dual-ធម្មតានិងស្រទាប់) យើងបានតែចិត្តរបស់មនុស្សម្នាក់នៅក្នុងការពិតសូម្បីតែនៅក្នុងតុតូចរបស់យើងនៃការទាំងពីរអត្ថបទ (បណ្តាលដោយគ្មានការខុសគ្នា) នេះ:

ប្រភេទ

ប៍ន

ក្រដាស

multicolor

ក្រដាស

multicolor

ក្រដាសស្រទាប់ទ្វេរដង

ត្នោត

ក្រដាសស្រទាប់ទ្វេរដង

ត្នោត

ប្លាស្ទិច

ត្នោត

ប្លាស្ទិច

ទឹកក្រូច

ការណាត់

ផ្កាឈូក

fleece

fleece

ត្នោត

ដូច្នេះដូចជានៅក្នុងការសរសេរសំណើជាមួយអាគុយម៉ង់តម្រូវការខុសគ្នាត្រូវប្រុងប្រយ័ត្ននិងមានសមត្ថភាពក្នុងការសម្រេចចិត្តនៅលើកម្មវិធីរបស់វាអាស្រ័យលើការងារនោះទេ។

ជម្រើសខុសគ្នា

ផ្ទុយទៅនឹងការខុសគ្នាអាគុយម៉ង់ - អាគុយម៉ង់ទាំងអស់។ នៅក្នុងកម្មវិធីរបស់ខ្លួនជួរស្ទួនត្រូវបានរក្សាទុក។ ប៉ុន្តែជាមូលដ្ឋានទិន្នន័យលំនាំដើមនិងការរកឃើញថាវាគឺជាការចាំបាច់ដើម្បីបង្ហាញតម្លៃទាំងអស់, អាគុយម៉ង់ទាំងអស់ - វាគឺជាការប្រកួតវគ្គជម្រុះជាងអាគុយម៉ង់មុខងារពិតប្រាកដមួយ។ យើងសង្ឃឹមថានៅពេលនេះថាអ្នកយល់ថាខុសគ្នា (SQL) ដែលត្រូវបានប្រើ។ សង្ខេបផ្តល់ដំណឹងឱ្យអ្នកពេញលេញអំពីលទ្ធភាពនៃការប្រើអាគុយម៉ង់ក្នុងការដោះស្រាយបញ្ហាភាពខុសគ្នានេះ។ បន្ទាប់ពីទាំងអស់, ដូចដែលវាបានប្រែក្លាយចេញ, សូម្បីតែដូចជាអាគុយម៉ង់សាមញ្ញក្នុងកម្មវិធីរបស់ខ្លួនលាក់លទ្ធភាពជាក់ស្តែងយ៉ាងខ្លាំងនៃការបាត់បង់ទិន្នន័យមួយចំនួននិងបង្ហាញពមិនត្រឹមត្រូវ។

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 km.birmiss.com. Theme powered by WordPress.