พื้นฐาน SQL

เรียนรู้เกี่ยวกับ 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 จากส่วนก่อนหน้าลองจินตนาการว่าแผนกทรัพยากรบุคคลของเราต้องการเพิ่มพนักงานใหม่ในฐานข้อมูลของตน คุณสามารถใช้คำสั่งที่คล้ายกับข้อความนี้:

ค่าของ INSERT INTO personal_info ('bart', 'simpson', 12345, $ 45000)

โปรดทราบว่ามี 4 ค่าที่ระบุสำหรับเร็กคอร์ด เหล่านี้สอดคล้องกับแอตทริบิวต์ของตารางตามลำดับที่กำหนด: first_name, last_name, employee_id และ salary

เลือก. คำสั่ง SELECT คือคำสั่งที่ใช้มากที่สุดใน SQL ช่วยให้ผู้ใช้ฐานข้อมูลสามารถเรียกดูข้อมูลที่ต้องการได้จากฐานข้อมูลการดำเนินงาน ลองดูตัวอย่างอีกครั้งโดยใช้ตาราง personal_info จากฐานข้อมูลพนักงาน

คำสั่งที่แสดงด้านล่างดึงข้อมูลทั้งหมดที่อยู่ภายในตาราง personal_info โปรดสังเกตว่าเครื่องหมายดอกจันถูกใช้เป็นสัญลักษณ์แทนใน SQL นี้หมายถึง "เลือกทุกอย่างจากตาราง personal_info.

SELECT * FROM personal_info

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

เลือก last_name จาก personal_info

สามารถใช้คำสั่ง WHERE เพื่อ จำกัด ระเบียนที่ดึงข้อมูลไปยังกลุ่มที่ตรงกับเกณฑ์ที่ระบุ CEO อาจจะสนใจในการทบทวนประวัติพนักงานของพนักงานทุกคนที่ได้รับเงินเดือนสูง คำสั่งต่อไปนี้ดึงข้อมูลทั้งหมดที่อยู่ภายใน personal_info สำหรับระเบียนที่มีค่าเงินเดือนมากกว่า 50,000 ดอลลาร์:

SELECT * FROM personal_info WHERE salary> $ 50000

UPDATE คำสั่ง 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 ที่สร้างขึ้นโดยใช้ข้อความต่อไปนี้:

CREATE TABLE disciplinary_action (action_id int ไม่ใช่ null, employee_id int ไม่ใช่ null, ความคิดเห็น char (500))

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

สมมติว่าคุณได้รับมอบหมายให้สร้างรายงานที่แสดงการดำเนินการทางวินัยที่เกิดขึ้นกับพนักงานทุกคนที่มีเงินเดือนมากกว่า 40,000 เหรียญ การใช้งาน JOIN ในกรณีนี้เป็นเรื่องง่าย เราสามารถดึงข้อมูลนี้โดยใช้คำสั่งต่อไปนี้:

เลือก personal_info.first_name, personal_info.last_name, disciplinary_action.comments จาก personal_info, disciplinary_action where individual_info.employee_id = disciplinary_action.employee_id และ personal_info.salary> 40000

รหัสระบุสองตารางที่เราต้องการรวมในคำสั่งจากนั้นรวมคำสั่งในคำสั่ง WHERE เพื่อ จำกัด ผลลัพธ์ให้กับระเบียนที่มีรหัสพนักงานตรงกันและตรงกับเกณฑ์ของเราที่มีเงินเดือนมากกว่า 40,000 เหรียญ