ก่อนอื่นทำความเข้าใจการเข้าร่วมอย่างละเอียด ไม่เพียงแค่ด้านในและด้านซ้ายเท่านั้น รู้ว่าการเข้าร่วมไขว้ทำอะไรและการรวมภายนอกเต็มรูปแบบ รู้ถึงสถานการณ์ที่จะทำให้คุณเลือกการเข้าร่วมประเภทใดประเภทหนึ่ง เข้าใจว่าพวกเขาไม่สามารถใช้แทนกันได้และแบบสอบถามที่ใช้การเข้าร่วมด้านซ้ายอาจส่งคืนผลลัพธ์ที่แตกต่างจากที่ใช้การเข้าร่วมภายใน (ใครจะคิดว่าจะเห็นได้ชัด แต่ฉันอ่านคำถามมากเกินไปที่ผู้คนในการแก้ปัญหาของพวกเขาลองสุ่มเข้าร่วมที่ต่างกัน)
ถัดไปจะเข้าใจมวลรวมและวิธีการทำงาน Mysql จะช่วยให้คุณไม่ต้องทำอะไรเป็นกลุ่มด้วยวิธีมาตรฐาน แต่มีวินัยในการกำหนดกลุ่มอย่างสมบูรณ์โดยข้ออย่างถูกต้อง มันจะช่วยให้คุณเข้าใจสิ่งที่คุณกำลังทำและจะทำให้ knowldge ของคุณสามารถถ่ายโอนไปยังฐานข้อมูลอื่นได้ง่ายขึ้น
เรียนรู้ว่าคำสั่ง case ทำอะไร
เมื่อทำแบบสอบถามที่ซับซ้อนเรียนรู้การทำงานเป็นชิ้น ๆ ตรวจสอบที่แต่ละชิ้นที่คุณมีผลลัพธ์ที่คุณคาดหวัง ตัวอย่างเช่นสมมติว่าคุณต้องเขียนแบบสอบถามการรายงานเกี่ยวกับคำสั่งซื้อที่ได้รับคืนภายใน 3 เดือนที่ผ่านมาและเหตุผลของการส่งคืนรวมถึงข้อมูลติดต่อสำหรับลูกค้า ขั้นตอนแรกคือการรับใบสั่งซื้อที่ส่งคืนภายในสามเดือนที่ผ่านมา เมื่อคุณรู้ว่าคุณมีสถานะของแข็งคุณสามารถเพิ่มข้อมูลเกี่ยวกับเหตุผลในการคืนสินค้า เมื่อคุณมีสถานะของแข็งคุณสามารถเพิ่มลูกค้าที่ส่งคืนได้ เมื่อคุณมีสถานะของแข็งนี้แล้วให้เพิ่มข้อมูลติดต่อของบุคคลนั้น ตรวจสอบผลลัพธ์ของคุณในแต่ละขั้นตอนและดูว่าเหมาะสมหรือไม่ ในกรณีนี้ฉันอาจต้องการจบด้วยระเบียนเดียวต่อการส่งคืน หากในระดับกลางใด ๆ จำนวนผลลัพธ์ขึ้นหรือลงคุณรู้ว่าคุณมีปัญหากับแบบสอบถาม บางครั้งในแบบเอกสารสำเร็จรูปคุณจะต้องการดูฟิลด์เพิ่มเติมเพื่อยืนยันว่าข้อมูลนั้นถูกต้องหรือไม่ ฉันใส่สิ่งเหล่านี้ลงในบรรทัดที่แยกต่างหากและคอมเม้นท์พวกเขาเมื่อฉันทำงานในขั้นตอนต่อไป (ลบพวกเขาออกเมื่อสิ้นสุดฉันรู้ว่าฉันถูก) เพื่อให้พวกเขาพร้อมที่จะดูอีกครั้งได้อย่างง่ายดายหากเพิ่มริ้วรอยอื่น คุณไม่สามารถทำการสืบค้นที่ซับซ้อนได้อย่างถูกต้องหากไม่เข้าใจอย่างถ่องแท้ว่าผลลัพธ์ของคุณควรเป็นอย่างไร คิดว่ามันดูโอเคเพราะมันส่งคืนผลลัพธ์บางอย่างเกือบจะรับประกันได้ว่าคุณมีผลลัพธ์ที่ไม่ถูกต้องเป็นส่วนที่ดีของเวลา m) ดังนั้นพวกเขาจึงพร้อมที่จะดูอีกครั้งได้อย่างง่ายดายหากเพิ่มรอยย่นอีกทำให้ข้อความค้นหาเป็นเรื่องตลก คุณไม่สามารถทำการสืบค้นที่ซับซ้อนได้อย่างถูกต้องหากไม่เข้าใจอย่างถ่องแท้ว่าผลลัพธ์ของคุณควรเป็นอย่างไร คิดว่ามันดูโอเคเพราะมันส่งคืนผลลัพธ์บางอย่างเกือบจะรับประกันได้ว่าคุณมีผลลัพธ์ที่ไม่ถูกต้องเป็นส่วนที่ดีของเวลา m) ดังนั้นพวกเขาจึงพร้อมที่จะดูอีกครั้งได้อย่างง่ายดายหากเพิ่มรอยย่นอีกทำให้ข้อความค้นหาเป็นเรื่องตลก คุณไม่สามารถทำการสืบค้นที่ซับซ้อนได้อย่างถูกต้องหากไม่เข้าใจอย่างถ่องแท้ว่าผลลัพธ์ของคุณควรเป็นอย่างไร คิดว่ามันดูโอเคเพราะมันส่งคืนผลลัพธ์บางอย่างเกือบจะรับประกันได้ว่าคุณมีผลลัพธ์ที่ไม่ถูกต้องเป็นส่วนที่ดีของเวลา
นี่คือรายการของสิ่งพื้นฐานบางอย่างที่คุณควรจะทำใน SQL โดยไม่ต้องคิดถึงมัน:
- ก่อนอื่นให้เลือกแบบตรงขึ้นโดยไม่มีการเข้าร่วม (และไม่เลือก *) แต่มีเงื่อนไขในการเลือก
- คุณควรรู้วิธีรวมสองตารางขึ้นไปและรับระเบียนที่อยู่ในตารางทั้งหมด
- คุณควรรู้วิธีรวมตารางสองตารางขึ้นไปและรับระเบียนที่อยู่ในตารางทั้งหมด แต่ส่งคืนระเบียนเดียวจากตารางที่มีหลายด้านของความสัมพันธ์แบบหนึ่ง - ต่อกลุ่ม
- คุณควรจะสามารถรับระเบียนในตารางเดียว แต่ไม่สามารถอยู่ในตารางที่เกี่ยวข้องได้
- คุณควรจะสามารถรวบรวมข้อมูลสำหรับรายงาน
- คุณควรจะสามารถแทรกหนึ่งระเบียนไปยังตาราง
- คุณควรจะสามารถอัปเดตหนึ่งระเบียนในตาราง
- คุณควรจะสามารถลบหนึ่งระเบียนในตาราง
- คุณควรจะสามารถแทรกกลุ่มของระเบียนไปยังตารางโดยไม่มีเคอร์เซอร์
- คุณควรจะสามารถอัปเดตกลุ่มของระเบียนในตารางโดยไม่มีเคอร์เซอร์
- คุณควรจะสามารถลบกลุ่มของระเบียนในตารางโดยไม่มีเคอร์เซอร์
- คุณควรจะสามารถดำเนินการหลายอย่างในหนึ่งธุรกรรมและจัดการกับดักข้อผิดพลาด
- คุณควรจะสามารถสร้างสหภาพของระเบียนและรู้ว่าเมื่อใดควรใช้ยูเนี่ยนรองสหภาพทั้งหมด
- คุณควรจะสามารถเปลี่ยนแปลงข้อมูลสำหรับหนึ่งฟิลด์ตามเกณฑ์บางอย่าง (โดยใช้ CASE)
เมื่อคุณรู้สึกคุ้นเคยกับความรู้ SQL พื้นฐานของคุณแล้วให้รู้จักโครงสร้างฐานข้อมูลของคุณ ฉันสามารถเขียนเคียวรีที่ซับซ้อนกับ dbs ที่ซับซ้อนมากที่ฉันสนับสนุนได้เร็วกว่าคนอื่น ๆ เพราะฉันเข้าใจโครงสร้างและไม่ต้องคิดเกี่ยวกับที่เก็บสิ่งต่าง ๆ หากคุณเข้าใจโครงสร้างของตารางและความสัมพันธ์กับคีย์ต่างประเทศและที่เก็บค่าการค้นหาและความหมายของคอลัมน์ (ไม่ใช่แค่ชื่อ แต่เป็นข้อมูลที่เก็บไว้ในนั้น) คุณสามารถเป็นผู้เชี่ยวชาญในการสอบถามฐานข้อมูลนั้น สิ่งแรกที่ฉันทำในงานใหม่ใด ๆ คือเข้าใจโครงสร้าง db อย่างถี่ถ้วน