คอมพิวเตอร์ซอฟต์แวร์

MySQL JOIN: คำอธิบายตัวอย่างของการใช้คำสั่งและคำแนะนำ

การพัฒนา ฐานข้อมูลของ ทรัพยากรอินเทอร์เน็ตในทางปฏิบัติไม่แตกต่างจากฐานข้อมูลมาตรฐานที่พัฒนาขึ้นใน MS SQL SERVER โดยปกติแล้วสำหรับแหล่งข้อมูลดังกล่าวจะมีการใช้ภาษา MY SQL แม้ว่าจะสามารถใช้เพื่อพัฒนาผลิตภัณฑ์ซอฟต์แวร์มาตรฐานสำหรับใช้งานในท้องถิ่น แต่บทความนี้ไม่เกี่ยวกับเรื่องนี้

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

แนวความคิดของคำว่า Join

ภาษาที่ใช้ในการพัฒนาฐานข้อมูลไม่ว่าจะเป็นภาษาใดก็ตามคำศัพท์มาตรฐานจากพจนานุกรมภาษาอังกฤษที่ใช้เป็นพื้นฐาน (เพราะเหตุนี้ภาษาอังกฤษจึงเป็นเรื่องง่ายสำหรับคุณในการทำงานกับตาราง) หากต้องการใช้การเชื่อมต่อของตารางในตัวอย่างคำเดียวกันจะถูกใช้ - เข้าร่วม ในภาษาโปรแกรมฐานข้อมูล My SQL ถูกใช้ คำแปลอย่างเป็นทางการนี้แปลตรงกับภาษาตัวเอง - "unification"

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

ประเภทของการก่อสร้างสำหรับสมาคม

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

  1. เข้าร่วมด้านใน
  2. ข้ามเข้าร่วม
  3. เข้าร่วมซ้าย
  4. ขวาเข้าร่วม

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

การสร้างและการเติมข้อมูลตารางสำหรับการใช้งานในภายหลัง

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

ตารางแรกจะอธิบายบางส่วนของรายการที่คนพบตลอดชีวิตของเขา

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

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

ใช้การเข้าร่วมภายใน

เมื่อใช้โครงสร้าง MySQL-Join Ineer ควรคำนึงถึงคุณลักษณะบางอย่าง การออกแบบนี้ช่วยให้คุณสามารถเลือกจากตารางทั้งสองระเบียนเท่านั้นที่มีทั้งในตารางที่หนึ่งและสอง มันทำงานอย่างไร? ในตารางแรกเรามีรหัสหลัก - รหัสซึ่งระบุหมายเลขซีเรียลของเร็กคอร์ดในตาราง

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

เมื่อใช้การออกแบบคุณต้องเข้าใจว่าข้อมูลใดที่คุณต้องการจะได้รับ ข้อผิดพลาดที่พบมากที่สุดโดยเฉพาะอย่างยิ่งสำหรับโปรแกรมเมอร์ ฐานข้อมูล สามเณร คือการ ใช้งาน Inner Join ที่ไม่ลงตัวและไม่ถูกต้อง ตัวอย่างเช่น MySQL Inner Join คุณสามารถพิจารณาสคริปต์ที่จะกลับมาหาเราจากข้อมูลตารางก่อนหน้านี้เกี่ยวกับวัตถุและพร็อพเพอร์ตี้ที่อธิบายไว้ก่อนหน้านี้ แต่สามารถใช้โครงสร้างได้หลายวิธี ในแง่นี้ My SQL เป็นภาษาที่ยืดหยุ่นมาก ดังนั้นคุณสามารถพิจารณาตัวอย่างของการใช้ MySQL Inner Join

รวมตารางโดยไม่ระบุพารามิเตอร์ใด ๆ ในกรณีนี้เราได้รับผลของแผนดังกล่าว:

ถ้าเราระบุโดยใช้คำ Utility "Using" ว่าจำเป็นต้องคำนึงถึงคีย์หลักของระเบียนในตารางผลของการเลือกจะเปลี่ยนอย่างรุนแรง ในกรณีนี้เราจะได้ตัวอย่างที่จะคืนเฉพาะแถวที่มีคีย์หลักเดียวกันเท่านั้น

นอกจากนี้ยังสามารถใช้ตัวแปรที่สามในการใช้โครงสร้างได้ด้วยเมื่อใช้แบบสอบถามฟิลด์ที่จะรวมตารางควรระบุด้วยคำว่า "on" ในกรณีนี้ตัวอย่างจะส่งคืนข้อมูลต่อไปนี้:

คุณลักษณะในการใช้ Left Join

ถ้าเราพิจารณาอีกทางหนึ่งของการรวมตารางโดยใช้โครงสร้างการสร้าง MySQL-Join คุณจะเห็นความแตกต่างในข้อมูลที่ส่งออก กลไกดังกล่าวเป็นโครงสร้างด้านซ้าย

การใช้โครงสร้างการเข้าสู่ระบบแบบซ้าย MySQL มีคุณลักษณะบางอย่างและเช่นเดียวกับ Inner จำเป็นต้องมีความเข้าใจอย่างชัดเจนเกี่ยวกับผลลัพธ์ที่จำเป็นต้องได้รับ

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

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

ตัวอย่างซ้าย

ในการตรวจสอบผู้ปฏิบัติงาน Left Join MySQL สร้างในทางปฏิบัติเราใช้ตารางที่อธิบายไว้ก่อนหน้านี้ สมมติว่าคุณต้องเลือกรายการผลิตภัณฑ์ทั้งหมดที่อยู่ในสโตร์และตรวจสอบว่าผลิตภัณฑ์ใดมีเครื่องหมายหรือคุณสมบัติอยู่ ในกรณีนี้ตัวอย่างจะแสดงผลิตภัณฑ์ทั้งหมดบนหน้าจอและสำหรับผู้ที่ไม่มีคุณสมบัติจะแสดงค่าว่างเปล่า

ใช้ที่ใดในการเข้าร่วมสร้าง

เป็นพารามิเตอร์การเข้าร่วมอาจรวมถึงฟิลด์ที่คุณต้องการเชื่อมต่อกับตารางเท่านั้น แต่ยังรวมถึงโอเปอเรเตอร์ข้อที่อยู่

ตัวอย่างเช่นพิจารณาสคริปต์ที่ควรกลับมาที่เราเฉพาะระเบียนที่ไม่มีคุณลักษณะเท่านั้น ในกรณีนี้ในการเข้าร่วมสร้างคุณต้องเพิ่มเงื่อนไขเงื่อนไขและระบุสิ่งที่คุณต้องการให้ผลเป็นผล

เมื่อใช้ใน MySQL Join - ในกรณีที่คุณต้องเข้าใจอย่างชัดเจนว่าเฉพาะระเบียนที่ใช้เงื่อนไขที่ระบุเท่านั้นจะถูกแสดงและการเลือกจะมีลักษณะดังนี้

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

ใช้เข้าร่วมเพื่อเปลี่ยนข้อมูลในตาราง

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

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

ลองพิจารณาตัวอย่างที่ง่ายที่สุด คุณจำเป็นต้องอัปเดตข้อความค้นหาเดียวกันสำหรับเงื่อนไขเดียวกัน แบบสอบถามดังกล่าวถูกสร้างขึ้นเพื่อเพิ่มประสิทธิภาพการทำงานกับฐานข้อมูล ทำไมต้องเขียนแบบสอบถามที่แตกต่างกันสำหรับแต่ละตารางถ้าคุณสามารถดำเนินการจัดการข้อมูลทั้งหมดด้วยการสอบถามได้? ตัวอย่าง MySQL Update Join ในกรณีนี้จะเป็น:

สร้างคำค้นหาที่ซับซ้อน

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

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

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

ตัวอย่างต่อไปนี้จะแสดงรายละเอียดของการชำระเงินทั้งหมดที่ระบุหมายเลขสัญญาไว้

การใช้ Subqueries

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

ตัวอย่างเช่นถ้าคุณต้องการเลือกเพียงสองช่องจากตารางที่มีหลายร้อยฟิลด์และพูดว่าพันระเบียนจากนั้นคุณควรใช้แบบสอบถามที่จะส่งคืนเฉพาะฟิลด์ที่จำเป็นและรวมเข้ากับตัวอย่างข้อมูลหลัก เป็นตัวอย่างของ MySQL Join Select คุณสามารถพิจารณาแบบสอบถามประเภทนี้:

นี่ไม่ใช่วิธีการทั้งหมดในการใช้โครงสร้าง MySQL มาตรฐาน แต่เป็นมาตรฐาน วิธีการใช้ Join construct และรูปแบบใดที่โปรแกรมเมอร์ตัดสินใจ แต่ควรจดจำและคำนึงถึงผลลัพธ์ที่ควรจะได้รับเมื่อดำเนินการแบบสอบถาม

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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