ให้เราสร้างตารางสองตารางก่อนและรวมเข้ากับข้อจำกัดของคีย์ต่างประเทศ แบบสอบถามเพื่อสร้างตารางแรกมีดังนี้ −
mysql> สร้างตาราง ParentTable -> ( -> UniqueId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> EmployeeName varchar(10) -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.56 วินาที)
แทรกบางระเบียนในตารางแรกโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −
mysql> แทรกลงในค่า ParentTable(EmployeeName) ('John'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า ParentTable (EmployeeName) ('Carol'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว ( 0.32 วินาที) mysql> แทรกลงในค่า ParentTable (EmployeeName) ('Sam'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า ParentTable (EmployeeName) ('Bob'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว ( 0.19 วินาที)
ตอนนี้คุณสามารถแสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −
mysql> เลือก *จาก ParentTable;
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+----------+-------------+| UniqueId | ชื่อพนักงาน |+----------+-------------+| 1 | จอห์น || 2 | แครอล || 3 | แซม || 4 | Bob |+----------+-------------+4 แถวในชุด (0.00 วินาที)แบบสอบถามเพื่อสร้างตารางที่สองด้วยข้อจำกัดของคีย์ต่างประเทศมีดังนี้ -
mysql> สร้างตาราง ChildTable -> ( -> UniqueId int ไม่ใช่ NULL PRIMARY KEY, -> EmployeeAddress varchar(100), -> CONSTRAINT fk_uniqueId FOREIGN KEY (UniqueId) อ้างอิง ParentTable (UniqueId) -> ); ตกลงแบบสอบถาม 0 แถวที่ได้รับผลกระทบ (0.54 วินาที)
ตอนนี้แทรกบางระเบียนในตารางที่สองโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −
mysql> แทรกลงในค่า ChildTable (1,'15 West Shady Lane Starkville, MS 39759'); เคียวรีตกลง ได้รับผลกระทบ 1 แถว (0.19 วินาที)mysql> ลงในค่า ChildTable (2,'72 West Rock Creek St. Oxford, MS 38655'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า ChildTable (UniqueId) (3) ตกลงแบบสอบถาม 1 แถวได้รับผลกระทบ (0.41 วินาที) mysql> แทรกลงในค่า ChildTable (4,' 119 North Sierra St. Marysville, OH 43040');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.16 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −
mysql> เลือก *จาก ChildTable;
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+----------+----------------------------------- --------+| UniqueId | ที่อยู่พนักงาน |+----------+----------------------------- --------+| 1 | 15 West Shady Lane สตาร์ควิลล์, MS 39759 || 2 | 72 West Rock Creek St. Oxford, MS 38655 || 3 | NULL || 4 | 119 North Sierra St. Marysville, OH 43040 |+----------+--------------------------- ---------------+4 แถวในชุด (0.00 วินาที)ให้เราเข้าร่วมตารางโดยใช้การเข้าร่วมทางซ้าย แบบสอบถามมีดังนี้ −
mysql> เลือก ParentTable.UniqueId,ParentTable.EmployeeName,ChildTable.EmployeeAddress จากParentTable ซ้ายเข้าร่วม -> ChildTable บน ParentTable.UniqueId=ChildTable.UniqueId;
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อน>+----------+--------------+-------------------- ----------------------------------+| UniqueId | ชื่อพนักงาน | ที่อยู่พนักงาน |+----------+--------------+--------------------- ----------------------+| 1 | จอห์น | 15 West Shady Lane สตาร์ควิลล์, MS 39759 || 2 | แครอล | 72 West Rock Creek St. Oxford, MS 38655 || 3 | แซม | NULL || 4 | บ๊อบ | 119 North Sierra St. Marysville, OH 43040 |+----------+--------------+-------------------- ------------------------------+4 แถวในชุด (0.00 วินาที)