เรียนรู้เกี่ยวกับ DDL, DML และ JOINs
Structured Query Language เป็นหนึ่งในโครงสร้างพื้นฐานของสถาปัตยกรรมฐานข้อมูลสมัยใหม่ SQL กำหนดวิธีการที่ใช้ในการสร้างและจัดการกับฐานข้อมูลเชิงสัมพันธ์บนแพลตฟอร์มที่สำคัญทั้งหมด ได้อย่างรวดเร็วก่อนภาษาอาจดูเหมือนข่มขู่และซับซ้อน แต่ไม่ยากเลย
บทนำสู่พื้นฐานเบื้องหลัง SQL นี้จะดูคำสั่งหลักบางคำที่ใช้ในการสร้างและแก้ไขฐานข้อมูล
เกี่ยวกับ SQL
การออกเสียงที่ถูกต้องของ SQL เป็นปัญหาที่ถกเถียงกันภายในชุมชนฐานข้อมูล ในมาตรฐาน SQL ของสถาบันมาตรฐานแห่งชาติอเมริกันได้ประกาศว่าการออกเสียงอย่างเป็นทางการคือ "es queue el" อย่างไรก็ตามผู้เชี่ยวชาญด้านฐานข้อมูลจำนวนมากได้ดำเนินการเกี่ยวกับการออกเสียงคำแสลง "sequel." ทางเลือกคือของคุณ
SQL มีหลายรสชาติ ฐานข้อมูล Oracle ใช้ PL / SQL ที่เป็นกรรมสิทธิ์ Microsoft SQL Server ใช้ Transact-SQL รูปแบบทั้งหมดขึ้นอยู่กับมาตรฐานอุตสาหกรรม ANSI SQL บทนำนี้ใช้คำสั่ง SQL แบบ ANSI ที่ใช้งานได้กับระบบฐานข้อมูลเชิงสัมพันธ์ที่ทันสมัย
DDL และ DML
คำสั่ง SQL สามารถแบ่งออกเป็นสองภาษาย่อยหลัก ภาษาข้อกำหนดข้อมูล (DDL) ประกอบด้วยคำสั่งที่ใช้ในการสร้างและทำลายฐานข้อมูลและอ็อบเจ็กต์ฐานข้อมูล หลังจากที่มีการกำหนดโครงสร้างฐานข้อมูลด้วย DDL ผู้ดูแลระบบฐานข้อมูลและผู้ใช้สามารถใช้ Data Manipulation Language (DML) เพื่อแทรกค้นหาและแก้ไขข้อมูลที่อยู่ภายในได้
คำจำกัดความข้อมูลข้อมูล
ภาษาข้อกำหนดข้อมูลถูกใช้เพื่อสร้างและทำลายฐานข้อมูลและอ็อบเจ็กต์ฐานข้อมูล คำสั่งเหล่านี้ถูกใช้โดยผู้บริหารฐานข้อมูลเป็นหลักในระหว่างขั้นตอนการตั้งค่าและกำจัดของโครงการฐานข้อมูล นี่คือโครงสร้างและการใช้งานคำสั่งพื้นฐาน DDL สี่แบบ:
สร้าง. การติดตั้ง ระบบการจัดการฐานข้อมูล ในเครื่องคอมพิวเตอร์ช่วยให้คุณสามารถสร้างและจัดการฐานข้อมูลอิสระจำนวนมากได้ ตัวอย่างเช่นคุณอาจต้องการรักษาฐานข้อมูลของที่อยู่ติดต่อของลูกค้าสำหรับฝ่ายขายของคุณและฐานข้อมูลบุคลากรสำหรับแผนกทรัพยากรบุคคลของคุณ คำสั่ง CREATE ใช้เพื่อสร้างแต่ละฐานข้อมูลเหล่านี้บนแพลตฟอร์มของคุณ ตัวอย่างเช่นคำสั่ง:
สร้างฐานข้อมูลว่างเปล่าชื่อว่า "employees" ใน DBMS ของคุณ หลังจากสร้างฐานข้อมูลแล้วขั้นตอนต่อไปคือการสร้างตารางที่มีข้อมูล สามารถใช้ตัวแปรอื่นของคำสั่ง CREATE เพื่อการนี้ได้ คำสั่ง:
CREATE TABLE personal_info (first_name char (20) ไม่ใช่ null, last_name char (20) ไม่ใช่ null, employee_id int ไม่ใช่ null)สร้างตารางชื่อ "personal_info" ในฐานข้อมูลปัจจุบัน ในตัวอย่างตารางมีแอตทริบิวต์ที่สาม: first_name, last_name และ employee_id พร้อมกับข้อมูลเพิ่มเติมบางอย่าง
ใช้. คำสั่ง USE ช่วยให้คุณระบุฐานข้อมูลที่คุณต้องการทำงานร่วมกับภายใน DBMS ของคุณ ตัวอย่างเช่นถ้าคุณกำลังทำงานในฐานข้อมูลการขายและต้องการออกคำสั่งบางอย่างที่จะมีผลต่อฐานข้อมูลพนักงานให้นำคำสั่ง SQL ดังต่อไปนี้มาใช้:
ใช้พนักงานคุณควรคำนึงถึงฐานข้อมูลที่คุณกำลังทำงานอยู่เสมอก่อนที่จะออกคำสั่ง SQL ที่จัดการข้อมูล
แก้ไข เมื่อคุณสร้างตารางภายในฐานข้อมูลแล้วคุณอาจต้องการแก้ไขคำจำกัดความ คำสั่ง ALTER ช่วยให้คุณสามารถเปลี่ยนแปลงโครงสร้างของตารางได้โดยไม่ต้องลบและสร้างใหม่ ลองดูคำสั่งต่อไปนี้:
ALTER TABLE personal_info เพิ่มเงินเดือนเป็นโมฆะตัวอย่างนี้เพิ่มแอ็ตทริบิวใหม่ลงในตาราง personal_info ซึ่งเป็นเงินเดือนของพนักงาน อาร์กิวเมนต์ "เงิน" ระบุว่าเงินเดือนของพนักงานจะถูกจัดเก็บโดยใช้รูปแบบดอลลาร์และเซนต์ สุดท้ายคำว่า "null" บอกฐานข้อมูลว่าไม่เป็นไรสำหรับฟิลด์นี้จะไม่มีค่าสำหรับพนักงานที่ระบุ
DROP คำสั่งสุดท้ายของ Data Definition Language, DROP ช่วยให้เราสามารถลบวัตถุฐานข้อมูลทั้งหมดออกจาก DBMS ของเราได้ ตัวอย่างเช่นหากเราต้องการลบตาราง personal_info ที่เราสร้างออกไปอย่างถาวรเราจะใช้คำสั่งต่อไปนี้:
DROP TABLE personal_infoในทำนองเดียวกันคำสั่งด้านล่างจะใช้เพื่อลบฐานข้อมูลพนักงานทั้งหมด:
พนักงาน DROP DATABASEใช้คำสั่งนี้อย่างระมัดระวัง คำสั่ง DROP จะลบโครงสร้างข้อมูลทั้งหมดออกจากฐานข้อมูลของคุณ ถ้าคุณต้องการลบเร็กคอร์ดแต่ละรายการให้ใช้คำสั่ง DELETE ของ Data Manipulation Language
การจัดการข้อมูลภาษาคำสั่ง
ภาษาการจัดการข้อมูล (DML) ใช้เพื่อดึงข้อมูลแทรกและแก้ไขข้อมูลฐานข้อมูล คำสั่งเหล่านี้ถูกใช้โดยผู้ใช้ฐานข้อมูลทั้งหมดในระหว่างการดำเนินการตามปกติของฐานข้อมูล
แทรก. คำสั่ง INSERT ใน SQL ถูกใช้เพื่อเพิ่มระเบียนลงในตารางที่มีอยู่ กลับไปที่ตัวอย่าง personal_info จากส่วนก่อนหน้าลองจินตนาการว่าแผนกทรัพยากรบุคคลของเราต้องการเพิ่มพนักงานใหม่ในฐานข้อมูลของตน คุณสามารถใช้คำสั่งที่คล้ายกับข้อความนี้:
โปรดทราบว่ามี 4 ค่าที่ระบุสำหรับเร็กคอร์ด เหล่านี้สอดคล้องกับแอตทริบิวต์ของตารางตามลำดับที่กำหนด: first_name, last_name, employee_id และ salary
เลือก. คำสั่ง SELECT คือคำสั่งที่ใช้มากที่สุดใน SQL ช่วยให้ผู้ใช้ฐานข้อมูลสามารถเรียกดูข้อมูลที่ต้องการได้จากฐานข้อมูลการดำเนินงาน ลองดูตัวอย่างอีกครั้งโดยใช้ตาราง personal_info จากฐานข้อมูลพนักงาน
คำสั่งที่แสดงด้านล่างดึงข้อมูลทั้งหมดที่อยู่ภายในตาราง personal_info โปรดสังเกตว่าเครื่องหมายดอกจันถูกใช้เป็นสัญลักษณ์แทนใน SQL นี้หมายถึง "เลือกทุกอย่างจากตาราง personal_info.
หรือผู้ใช้อาจต้องการ จำกัด แอตทริบิวต์ที่ดึงมาจากฐานข้อมูล ตัวอย่างเช่นแผนกทรัพยากรบุคคลอาจต้องการรายชื่อสุดท้ายของพนักงานทุกคนใน บริษัท คำสั่ง SQL ต่อไปนี้จะดึงเฉพาะข้อมูลดังกล่าว:
เลือก last_name จาก personal_infoสามารถใช้คำสั่ง WHERE เพื่อ จำกัด ระเบียนที่ดึงข้อมูลไปยังกลุ่มที่ตรงกับเกณฑ์ที่ระบุ CEO อาจจะสนใจในการทบทวนประวัติพนักงานของพนักงานทุกคนที่ได้รับเงินเดือนสูง คำสั่งต่อไปนี้ดึงข้อมูลทั้งหมดที่อยู่ภายใน personal_info สำหรับระเบียนที่มีค่าเงินเดือนมากกว่า 50,000 ดอลลาร์:
SELECT * FROM personal_info WHERE salary> $ 50000UPDATE คำสั่ง UPDATE สามารถใช้เพื่อปรับเปลี่ยนข้อมูลที่อยู่ภายในตารางทั้งในรูปแบบกลุ่มหรือแบบเดี่ยว สมมติว่า บริษัท ให้พนักงานทุกคนเพิ่มค่าครองชีพ 3 เปอร์เซ็นต์ต่อปีในแต่ละปี คุณสามารถใช้คำสั่ง SQL ต่อไปนี้เพื่อนำไปใช้กับพนักงานทุกคนที่เก็บอยู่ในฐานข้อมูลได้อย่างรวดเร็ว:
อัพเดต personal_info SET เงินเดือน = เงินเดือน * 1.03เมื่อ Bart ซิมป์สันพนักงานใหม่แสดงให้เห็นถึงประสิทธิภาพเหนือและเหนือกว่าหน้าที่ของผู้บริหารผู้จัดการต้องการรับรู้ถึงความสำเร็จที่เป็นตัวเอกของเขาด้วยการระดมทุน $ 5,000 ประโยคที่สามารถใช้เพื่อออก Bart สำหรับการเพิ่มนี้:
อัพเดต personal_info SET เงินเดือน = เงินเดือน + $ 5000 WHERE employee_id = 12345ลบ. สุดท้ายลองมาดูที่คำสั่ง DELETE คุณจะพบว่าไวยากรณ์ของคำสั่งนี้คล้ายคลึงกับคำสั่ง DML อื่น ๆ แต่น่าเสียดายที่รายงานรายได้ของ บริษัท ล่าสุดของเราไม่ค่อยตอบสนองความคาดหวังและ Bart ได้รับการปลดแอก สามารถใช้คำสั่ง DELETE กับคำสั่ง WHERE เพื่อลบระเบียนของเขาออกจากตาราง personal_info:
DELETE FROM personal_info WHERE employee_id = 12345ร่วม
ตอนนี้คุณได้เรียนรู้พื้นฐานของ SQL แล้วถึงเวลาที่จะใช้แนวคิดที่มีประสิทธิภาพมากที่สุดแห่งหนึ่งในภาษาที่จะนำเสนอ - คำสั่ง JOIN คำสั่ง JOIN ช่วยให้คุณสามารถรวมข้อมูลในหลายตารางเพื่อประมวลผลข้อมูลจำนวนมากได้อย่างมีประสิทธิภาพ ข้อความเหล่านี้เป็นที่ที่มีการใช้พลังงานที่แท้จริงของฐานข้อมูล
เมื่อต้องการสำรวจการใช้งาน JOIN ขั้นพื้นฐานเพื่อรวมข้อมูลจากตารางสองตารางให้ดำเนินการกับตัวอย่างโดยใช้ตาราง PERSONAL_INFO และเพิ่มตารางเพิ่มเติมในการผสม สมมติว่าคุณมีตารางชื่อ DISCIPLINARY_ACTION ที่สร้างขึ้นโดยใช้ข้อความต่อไปนี้:
ตารางนี้ประกอบด้วยผลของการลงโทษทางวินัยของพนักงาน บริษัท คุณจะสังเกตเห็นว่าไม่มีข้อมูลใด ๆ เกี่ยวกับพนักงานนอกเหนือจากหมายเลขพนักงาน ง่ายมากที่จะจินตนาการถึงสถานการณ์ต่างๆที่คุณอาจต้องการรวมข้อมูลจากตาราง DISCIPLINARY_ACTION และ PERSONAL_INFO
สมมติว่าคุณได้รับมอบหมายให้สร้างรายงานที่แสดงการดำเนินการทางวินัยที่เกิดขึ้นกับพนักงานทุกคนที่มีเงินเดือนมากกว่า 40,000 เหรียญ การใช้งาน JOIN ในกรณีนี้เป็นเรื่องง่าย เราสามารถดึงข้อมูลนี้โดยใช้คำสั่งต่อไปนี้:
รหัสระบุสองตารางที่เราต้องการรวมในคำสั่งจากนั้นรวมคำสั่งในคำสั่ง WHERE เพื่อ จำกัด ผลลัพธ์ให้กับระเบียนที่มีรหัสพนักงานตรงกันและตรงกับเกณฑ์ของเราที่มีเงินเดือนมากกว่า 40,000 เหรียญ