คอมพิวเตอร์ประเภทไฟล์

SQL ที่แตกต่างกัน: คำอธิบายตัวอย่างคุณสมบัติ

บ่อยครั้งเมื่อคุณใช้ SQL เพื่อดึงข้อมูลจากตารางที่ผู้ใช้จะได้รับข้อมูลที่ซ้ำซ้อนคือการดำรงอยู่ของแถวที่ซ้ำกันเหมือนอย่าง เพื่อหลีกเลี่ยงสถานการณ์นี้ใช้ SQL อาร์กิวเมนต์ที่แตกต่างกันในประโยคเลือก บทความนี้จะหารือตัวอย่างของการใช้อาร์กิวเมนต์นี้เช่นเดียวกับสถานการณ์ที่แอพลิเคชันควรจะถูกทอดทิ้งโดยการโต้แย้ง

ก่อนที่เราจะดำเนินการพิจารณาตัวอย่างที่เฉพาะเจาะจงในการสร้างฐานข้อมูลที่จำเป็นในคู่ของตาราง

ตารางการเตรียมความพร้อม

ลองนึกภาพว่าเรามีฐานข้อมูลเก็บข้อมูลเกี่ยวกับวอลล์เปเปอร์ที่นำเสนอในสองตาราง Oboi นี้ตาราง (วอลล์เปเปอร์) กับเขตข้อมูล ID (ระบุเฉพาะ) ประเภท (ประเภทของวอลล์เปเปอร์ -. กระดาษไวนิล ฯลฯ ) สี (สี) ซึ่งเป็นโครงสร้าง (โครงสร้าง) และราคา (ราคา) และโต๊ะ Ostatki (ตกค้าง) กับเขต id_oboi (อ้างอิงถึงตัวบ่งชี้ที่ไม่ซ้ำกันในตาราง Oboi) และนับ (จำนวนม้วนในสต็อก)

กรอกตารางข้อมูล ในตารางเพิ่มวอลล์เปเปอร์ที่ 9 บันทึก:

Oboi

รหัส

ชนิด

สี

struct

ราคา

1

กระดาษ

หลากสี

นูน

56.9

2

กระดาษสองชั้น

ผ้าขนสัตว์สีธรรมชาติ

เรียบ

114.8

3

เรซิน

สีส้ม

นูน

504

4

ขนแกะ

ผ้าขนสัตว์สีธรรมชาติ

นูน

1,020.9

5

กระดาษสองชั้น

ผ้าขนสัตว์สีธรรมชาติ

เรียบ

150.6

6

กระดาษ

หลากสี

เรียบ

95.4

7

เรซิน

สีน้ำตาล

เรียบ

372

8

ขนแกะ

ขาว

นูน

980.1

9

ผ้า

สีชมพู

เรียบ

1,166.5

ตารางที่มีซาก - เก้าบันทึก:

Ostatki

id_oboi

นับ

1

8

2

12

3

24

4

9

5

16

6

7

7

24

8

32

9

11

เราดำเนินการต่อไปรายละเอียดของการสั่งซื้อที่แตกต่างกันในการ SQL

สถานที่ที่แตกต่างกันในการเลือกข้อ

อาร์กิวเมนต์ที่แตกต่างกันควรจะวางไว้ทันทีหลังจากที่เลือกคำหลักในการค้นหา เขานำไปใช้กับคอลัมน์ทั้งหมดที่ระบุไว้ในประโยคที่เลือกเพราะมันจะได้รับการยกเว้นจากผลแบบสอบถามสุดท้ายคือสตริงที่เหมือนกันอย่างแน่นอน ดังนั้นเมื่อจะเพียงพอที่จะระบุเมื่อเขียน SQL «เลือกที่แตกต่างกัน»คำขอ ยกเว้นการใช้ฟังก์ชั่นรวมภายในที่แตกต่างกันที่มีลักษณะที่เล็ก ๆ น้อย ๆ ในภายหลัง

มันควรจะจำว่าส่วนใหญ่ของฐานข้อมูลและไม่รู้จักประเภทของคำขอ:

SELECT Ostatki.Count ที่แตกต่างกัน, Oboi ที่แตกต่างกัน. *

จาก Oboi

INNER JOIN Ostatki ON Oboi.id = Ostatki.id_oboi

มีไม่ได้พิจารณาข้อโต้แย้งหลายครั้งหรือครั้งเดียวที่ระบุไว้ แต่ก่อนที่สองสามหรือคอลัมน์ที่เลือกอื่น คุณจะได้รับข้อผิดพลาดหมายถึงข้อผิดพลาดในไวยากรณ์

แอพลิเคชันที่แตกต่างกันแบบสอบถามในมาตรฐาน

เป็นที่ชัดเจนว่าด้วยการสร้างตารางโครงสร้างที่เหมาะสมและเติมเต็มพวกเขาภายในตารางเดียวยกเว้นสถานการณ์เมื่อมีสตริงที่เหมือนกันอย่างแน่นอน ดังนั้นการดำเนินการสอบถาม«เลือกที่แตกต่างกัน *»กับตัวอย่างของตารางหนึ่งจะทำไม่ได้

พิจารณาสถานการณ์เมื่อเราต้องการที่จะรู้ว่าสิ่งที่ประเภทเรามีวอลล์เปเปอร์เพียงเพื่อความสะดวกในการจัดเรียงตามประเภท:

SELECT Oboi.type

จากการสั่งซื้อ Oboi โดยแบ่งตามชนิด

และได้รับผล:

ชนิด

กระดาษ

กระดาษ

กระดาษสองชั้น

กระดาษสองชั้น

เรซิน

เรซิน

ผ้า

ขนแกะ

ขนแกะ

เท่าที่เห็นในตารางมีแถวที่ซ้ำกัน ถ้าเราเพิ่มข้อเสนอเลือกที่แตกต่าง:

SELECT Oboi.type ที่แตกต่างกัน

จากการสั่งซื้อ Oboi โดยแบ่งตามชนิด

เราได้รับผลที่ตามมาโดยไม่ต้องทำซ้ำ:

ชนิด

กระดาษ

กระดาษสองชั้น

เรซิน

ผ้า

ขนแกะ

ดังนั้นหากต้องป้อนข้อมูลในตารางแล้วทันทีหลังจากที่โทรศัพท์หรือคำขอของผู้ซื้อที่เราสามารถตอบว่าวอลล์เปเปอร์ของเหลวไฟเบอร์กลาสและวอลล์เปเปอร์คริลิคที่มีอยู่ในร้านไม่ได้ ระบุว่าช่วงของร้านค้ามักจะไม่ จำกัด ถึงหนึ่งร้อยวอลล์เปเปอร์ดูรายการประเภทที่ไม่ซ้ำกันจะค่อนข้างใช้แรงงานเข้มข้น

การประยุกต์ใช้ฟังก์ชั่นที่แตกต่างกันรวมภายใน

อาร์กิวเมนต์ที่แตกต่างกัน SQL สามารถใช้กับฟังก์ชันการรวมใด ๆ แต่สำหรับมินและแม็กซ์การประยุกต์ใช้จะไม่มีผลกระทบ แต่เมื่อคำนวณผลรวมหรือค่าเฉลี่ยจะไม่ค่อยมีสถานการณ์ที่ไม่มีใครจะต้องคำนึงถึงการเกิดซ้ำที่

สมมติว่าเราต้องการตรวจสอบความจุของคลังสินค้าของเราและจะส่งคำขอนี้คำนวณจำนวนรวมของขดลวดในสต็อก:

รวม SELECT (Ostatki.count)

จาก Ostatki

ที่ขอจะให้คำตอบที่ 143 แต่ถ้าเราจะเปลี่ยนไป:

รวม SELECT (Ostatki.count ที่แตกต่างกัน)

จาก Ostatki

เราได้รับทั้งหมด 119 เป็นวอลล์เปเปอร์สำหรับตัวเลขส่วน 3 และ 7 มีในสต็อกในปริมาณที่เท่ากัน แต่ก็เป็นที่ชัดเจนว่าคำตอบคือผิด

ส่วนใหญ่มักจะใช้ใน SQL จำนวนฟังก์ชั่นที่แตกต่างกัน ดังนั้นเราสามารถหาประเภทที่ไม่ซ้ำกันหลายวิธีของวอลล์เปเปอร์ที่เราจะมี:

นับ SELECT (Oboi.type ที่แตกต่างกัน)

จาก Oboi

และได้รับผลจากการที่ 5 - กระดาษและสองชั้นสามัญไวนิลและผ้าไม่ทอ แน่นอนทั้งหมดเห็นโฆษณาเช่น: "แต่เรามีกว่า 20 ชนิดที่แตกต่างกันของวอลล์เปเปอร์" ซึ่งมีความหมายว่าร้านนี้เป็นม้วนไม่เพียงไม่กี่โหลและความหลากหลายของวอลล์เปเปอร์แบบที่ทันสมัย

เป็นที่น่าสนใจในการสอบถามเดียวกันคุณสามารถระบุฟังก์ชั่นหลายตัวเช่นจำนวนแอตทริบิวต์ที่แตกต่างและไม่ได้ นั่นคือสถานการณ์ที่เดียวที่แตกต่างกันใน Select'e สามารถจะนำเสนอหลายครั้ง

เมื่อมีการยกเลิกการใช้อาร์กิวเมนต์

จากการใช้งานของ SQL อาร์กิวเมนต์ที่แตกต่างกันควรจะถูกทอดทิ้งในหนึ่งในสองกรณี

  1. คุณทำการเลือกของตารางและมีความมั่นใจในมูลค่าที่ไม่ซ้ำกันในแต่ละ ในกรณีนี้การใช้งานของการโต้แย้งไม่เหมาะสมเพราะเป็นภาระเพิ่มเติมบนเซิร์ฟเวอร์หรือลูกค้า (ขึ้นอยู่กับชนิดของ DBMS) ที่
  2. คุณกลัวการสูญเสียข้อมูลของคุณ ให้เราอธิบาย

เจ้านายสมมติว่าขอให้คุณรายการวอลล์เปเปอร์ที่คุณมีมีข้อบ่งชี้ในสองคอลัมน์ - ประเภทและสี ออกจากนิสัยคุณจะให้ข้อโต้แย้งที่แตกต่าง:

SELECT Oboi.type ที่แตกต่างกัน Oboi.color

จาก Oboi

ORDER BY Oboi.type

และ - สูญเสียข้อมูลบางส่วน:

ชนิด

สี

กระดาษ

หลากสี

กระดาษสองชั้น

ผ้าขนสัตว์สีธรรมชาติ

เรซิน

สีน้ำตาล

เรซิน

สีส้ม

ผ้า

สีชมพู

ขนแกะ

ผ้าขนสัตว์สีธรรมชาติ

ขนแกะ

ขาว

มันอาจจะให้ความรู้สึกว่าวอลล์เปเปอร์กระดาษ (แบบธรรมดาและชั้นสอง) เราได้เพียงหนึ่งใจในความเป็นจริงแม้จะอยู่ในตารางเล็ก ๆ ของเราสองบทความ (ส่งผลที่แตกต่างกันโดยไม่ได้):

ชนิด

สี

กระดาษ

หลากสี

กระดาษ

หลากสี

กระดาษสองชั้น

ผ้าขนสัตว์สีธรรมชาติ

กระดาษสองชั้น

ผ้าขนสัตว์สีธรรมชาติ

เรซิน

สีน้ำตาล

เรซิน

สีส้ม

ผ้า

สีชมพู

ขนแกะ

ขาว

ขนแกะ

ผ้าขนสัตว์สีธรรมชาติ

ดังนั้นในขณะที่การเขียนคำขอกับการโต้แย้งความต้องการที่แตกต่างใด ๆ ที่จะต้องระมัดระวังและมีอำนาจในการตัดสินใจเกี่ยวกับการประยุกต์ใช้ขึ้นอยู่กับงาน

ทางเลือกที่แตกต่างกัน

ตรงกันข้ามกับข้อโต้แย้งที่แตกต่างกัน - อาร์กิวเมนต์ทั้งหมด ในการประยุกต์ใช้แถวที่ซ้ำกันจะถูกเก็บไว้ แต่เป็นฐานข้อมูลเริ่มต้นและพบว่ามันมีความจำเป็นที่จะแสดงค่าทั้งหมดอาร์กิวเมนต์ทั้งหมด - มันค่อนข้างคัดเลือกกว่าอาร์กิวเมนต์ฟังก์ชั่นที่เกิดขึ้นจริง เราหวังว่าตอนนี้คุณเข้าใจว่าแตกต่างกัน (SQL) ถูกนำมาใช้ คำอธิบายให้ข้อมูลที่ครบถ้วนเกี่ยวกับความเป็นไปได้ของการใช้เรื่องนี้ในการแก้ปัญหาที่แตกต่างกัน หลังจากที่ทุกคนตามที่มันเปิดออกได้เช่นอาร์กิวเมนต์ที่เรียบง่ายในการประยุกต์ใช้ซ่อนความเป็นไปได้ที่มีตัวตนมากของการสูญเสียข้อมูลบางอย่างและแสดงข้อมูลที่ไม่ถูกต้อง

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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