КомпьютерФайлын төрөл

SQL ялгаатай: тайлбар, жишээ нь, шинж чанар

Ихэнх тохиолдолд та хүснэгтийн өгөгдлийг авахын тулд SQL ашиглах үед хэрэглэгч илүү өгөгдөл нь туйлын ижил давхардсан эгнээ оршин байна хүлээн авна. энэ байдлыг сэргийлэхийн тулд өгүүлбэрийн сонгох нь SQL ялгаатай аргументыг ашигладаг. Энэ нийтлэл нь програм маргаан орхисон байх ёстой энэ маргаан ашиглах жишээ, түүнчлэн нөхцөл байдлыг хэлэлцэх болно.

Бид тодорхой жишээ авч үргэлжлүүлье өмнө хүснэгтийн хоёр шаардлагатай мэдээллийн санг бий болгож байна.

бэлтгэл хүснэгт

Бид хоёр хүснэгтүүдэд үзүүлсэн ханын тухай мэдээллийн санг хадгалдаг мэдээлэл байна гэж төсөөлөөд үз дээ. , Өнгө (өнгө) нь бүтцийг (бүтэц) ба үнэ (үнэ) - төрөл (. Цаас, винил зэрэг дэлгэцийн зураг нь төрөл) ID салбарт (өвөрмөц танигч), Энэхүү хүснэгт oboi (зураг). Тэгээд ширээний Ostatki id_oboi салбарт нь (үлдэгдэл) болон тоо (хувьцаа нэрийн жагсаалтыг тоо) (хүснэгт Oboi өвөрмөц таниулагч ишлэл).

мэдээ хүснэгтийг бөглөнө үү. Ширээн онд дэлгэцийн зураг 9 бүртгэл нэмнэ:

Oboi

ID

төрөл

өнгө

бүтцийг

үнэ

1

цаасан

олон өнгийн

товойлгон

56.9

2

цаасан дээр хоёр давхраатай

шаргал

гөлгөр

114.8

3

винил

улбар шар өнгийн

товойлгон

504

4

ноосны

шаргал

товойлгон

1020,9

5

цаасан дээр хоёр давхраатай

шаргал

гөлгөр

150,6

6

цаасан

олон өнгийн

гөлгөр

95.4

7

винил

бор

гөлгөр

372

8

ноосны

цагаан

товойлгон

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 FROM

Өвөр Oboi.id = Ostatki.id_oboi ТУХАЙ Ostatki ЭЛСЭЭРЭЙ

хувьсагч хэд хэдэн удаа байдаг гэж үзэж байсан юм уу эсвэл нэг удаа тодорхой, харин хоёр дахь, гурав дахь, эсвэл өөр сонгогдсон баганын өмнө. Та синтакс нь алдаа иш алдаа авах болно.

стандарт Хэрэглээ ялгаатай асуулт

Энэ нь үнэхээр ижил мөр байгаа үед зөв барилгын бүтэц нь ширээ, нэг ширээн дотор тэднийг дүүргэх байдлыг хасагдсан гэдэг нь тодорхой юм. Тиймээс асуулга гүйцэтгэл нь нэг ширээн дээр нь дээж бүхий "ялгаатай * сонгоно» боломжгүй юм.

Бид дэлгэцийн юу төрөл мэдэх, төрлөөр нь ангилах, зүгээр л ая тухтай хялбар байлгах хэрэгтэй үед нь нөхцөл байдлыг авч үзье:

SELECT Oboi.type

төрлөөр Oboi тулд FROM

Тэгээд үр дүнг авах:

төрөл

цаасан

цаасан

цаасан дээр хоёр давхраатай

цаасан дээр хоёр давхраатай

винил

винил

даавуу

ноосны

ноосны

хүснэгтэд харахад давхардсан мөр байдаг. Бид саналыг нэмж байгаа бол ялгаатай сонгоно уу:

ялгаатай Oboi.type SELECT

төрлөөр Oboi тулд FROM

бид давтах ямар үр дүнг авах:

төрөл

цаасан

цаасан дээр хоёр давхраатай

винил

даавуу

ноосны

Тиймээс зөв хүснэгтэд өгөгдөл оруулах бол тэр даруй худалдан авагч нь утасны дуудлага, эсвэл хүсэлт дараа бид дэлгүүрт бэлэн шингэн ханын цаас, шилэн болон нийлэг ханын цаас биш гэдгийг хариулах болно. дэлгүүр хүрээ нь ихэвчлэн нэг зуун дэлгэцийн зураг нь хязгаарлагдмал байна гэж үзвэл энэ нь маш хөдөлмөр зарцуулалт ихтэй байх бус өвөрмөц төрлийн жагсаалтыг үзэж байна.

дотор ялгаатай нийт чиг үүрэг хэрэглээ

SQL ялгаатай баталгаа ямар ч нийт үйл ажиллагаа нь ашиглаж болно. Харин Мин болон Max түүнийг хэрэглэх ямар ч нөлөө үзүүлэхгүй, харин нийлбэр эсвэл дундаж утгыг тооцоолох нь ховор байдаг нь нөхцөл байдал ямар ч нэг анхааралдаа давталт авч болох юм байна.

Бид агуулахын хүчин чадлыг шалгах, энэ хүсэлтийг илгээхийг хүсэж байгаа гэж бодъё, хувьцаа ороомгийн тоо тооцоолно:

SELECT нийлбэр (Ostatki.count)

Ostatki FROM

Авагч хариулт 143. бол Гэсэн хэдий ч, бид өөрчлөгдөх болно өгч болно:

SELECT нийлбэр (ялгаатай Ostatki.count)

Ostatki FROM

Бид хэсэг нь тоо 3 дэлгэцийн зураг гэх мэт нийт 119 авч 7 ижил хэмжээгээр хувьцаа байна. Гэсэн хэдий ч, энэ нь хариулт нь буруу болох нь тодорхой байна.

Ихэнх тохиолдолд SQL ялгаатай үйл ажиллагаа Count хэрэглэгддэг. Тиймээс бид амархан ханын өвөрмөц хэдэн төрлийг олж болно, бид байна вэ:

SELECT тоо (ялгаатай Oboi.type)

oboi FROM

энгийн цаас, давхар винил болон нэхмэл бус даавуу - 5 үр дүнг авах болно. Үнэхээр бүх гэх мэт зар сурталчилгаа үзсэн: "Зөвхөн бид дэлгэцийн зураг нь 20 гаруй өөр өөр төрлийн юм" гэж энэ дэлгүүр нь зөвхөн хоёр арван бус, нэрийн жагсаалт болон ханын цаас нь орчин үеийн төрөл нь олон янзын байдаг гэсэн үг юм.

Энэ нь Count ялгаатай хамааруулах шиг нэг асуулт нь, та олон чиг үүргийг зааж өгч болно, мөн энэ нь ч сонирхолтой байдаг. Энэ нь зөвхөн нөхцөл байдал Select'e нь ялгаатай одоогийн хэд хэдэн удаа байж болох юм.

маргаан ашиглах үед болих хэрэгтэй

SQL ялгаатай маргаан ашиглах хоёр тохиолдол нэг орхигдсон байх ёстой:

  1. Та хүснэгтээс сонгон хийх, өвөрмөц утга бүрт итгэлтэй байна. Энэ тохиолдолд, маргаан ашиглах нь сервер болон клиент (DBMS төрлөөс хамаарч) дээр нэмэлт ачаалал юм, учир нь зохисгүй юм.
  2. Хэрэв та өөрийн өгөгдлийг алдахаас айж байна. АНУ-ын тайлбарлаж үзье.

төрөл, өнгө - бодно босс та өөрт байгаа ханын цаас, зөвхөн хоёр баганын заалт нь жагсааж асууна. зуршил Үүнээс та ялгаатай нь аргументыг өгөх:

ялгаатай Oboi.type сонгох, Oboi.color

oboi FROM

ORDER BY Oboi.type

Тэгээд - зарим өгөгдлийг алдах:

төрөл

өнгө

цаасан

олон өнгийн

цаасан дээр хоёр давхраатай

шаргал

винил

бор

винил

улбар шар өнгийн

даавуу

ягаан

ноосны

шаргал

ноосны

цагаан

Энэ сэтгэгдэл ханын цаас (уламжлалт болон хоёр давхарга) Бид нэг л оюун ухаан, үнэн хэрэгтээ, тэр ч байтугай хоёр дугаар Манай жижиг хүснэгтэд (ялгаатай ч үр дүн) байна гэсэн өгч болно:

төрөл

өнгө

цаасан

олон өнгийн

цаасан

олон өнгийн

цаасан дээр хоёр давхраатай

шаргал

цаасан дээр хоёр давхраатай

шаргал

винил

бор

винил

улбар шар өнгийн

даавуу

ягаан

ноосны

цагаан

ноосны

шаргал

Тиймээс үүрэг хамаарч, түүний хэрэглэх талаар шийдвэр гаргах анхааралтай, эрх бүхий байх баталгаа ялгаатай хэрэгцээ ямар нэгэн хүсэлтийг бичгээр байна.

өөр ялгаатай

Бүх аргумент - аргумент ялгаатай нь ялгаатай. түүнийг хэрэглэх онд давхардсан мөр хадгалагддаг. Гэхдээ анхдагч мэдээллийн бааз гэх мэт энэ бүх утгыг, аргументыг мэдээлэл харуулах шаардлагатай гэж үзвэл - энэ нь харин бодит үйл ажиллагаа аргумент илүү шалгагчтай холбоотой байдаг. Бид та одоо ялгаатай (SQL) ашиглаж байгаа гэдгийг ойлгох гэж найдаж байна. Тодорхойлолт нь танд өөр өөр асуудлыг шийдвэрлэх нь энэ нэмэлт өгөгдлийг ашиглан, техник эдийн засгийн талаар бүрэн мэдээлэл өгч байна. Эцсийн эцэст, энэ нь болсон гэж түүний өргөдөлд ийм энгийн маргаан ч буруу мэдээлэл зарим өгөгдлийг алдаж, харуулах нь маш бодитой боломжийг нуудаг.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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