คำสั่ง SQL: DQL, DDL, DML, DCL และ TCL พร้อมตัวอย่าง

⚡ สรุปอย่างชาญฉลาด

คำสั่ง SQL แบ่งออกเป็นห้าภาษาย่อยที่ใช้จัดการฐานข้อมูลเชิงสัมพันธ์ ได้แก่ DDL สำหรับกำหนดโครงสร้าง DML สำหรับเปลี่ยนแปลงข้อมูล DCL สำหรับควบคุมการเข้าถึง TCL สำหรับจัดการธุรกรรม และ DQL สำหรับดึงข้อมูล โดยแต่ละภาษาย่อยจะมีชุดคำสั่งและไวยากรณ์เฉพาะของตนเอง

  • 🏗️ ดีดีแอล: คำสั่ง CREATE, DROP, ALTER และ TRUNCATE ใช้สำหรับกำหนดและเปลี่ยนแปลงโครงสร้างของตารางและฐานข้อมูล
  • ✏️ ดีเอ็มแอล: คำสั่ง INSERT, UPDATE และ DELETE ใช้สำหรับแก้ไขข้อมูลในแถวของตาราง
  • 🔑 ดีซีแอล: คำสั่ง GRANT และ REVOKE ใช้สำหรับให้และยกเลิกสิทธิ์การเข้าถึงวัตถุในฐานข้อมูล
  • 🔄 ทีซีแอล: คำสั่ง COMMIT, ROLLBACK และ SAVEPOINT ควบคุมวิธีการบันทึกหรือยกเลิกธุรกรรม
  • 🔍 ดีคิวแอล: คำสั่ง SELECT จะดึงข้อมูลแถวที่ถูกกรองตามเงื่อนไข WHERE
  • 🗄️ ภาษามาตรฐาน: ระบบจัดการฐานข้อมูลเชิงสัมพันธ์หลักทุกระบบ ตั้งแต่ MySQL ไปยัง Oracle และ SQL Server ใช้ SQL
  • ⚠️ ความแตกต่างที่สำคัญ: ทั้งคำสั่ง TRUNCATE และ DELETE ต่างก็ลบแถวทั้งหมด แต่ TRUNCATE เป็นคำสั่ง DDL ซึ่งไม่ใช่การลบทีละแถว

คำสั่ง SQL DQL DDL DML DCL TCL

SQL คืออะไร?

SQL เป็นภาษาฐานข้อมูลที่ออกแบบมาสำหรับการดึงและการจัดการข้อมูลในฐานข้อมูลเชิงสัมพันธ์

SQL เป็นภาษามาตรฐานสำหรับการจัดการฐานข้อมูล ระบบ RDBMS ทั้งหมดเช่น MySQL, เอ็มเอส แอคเซส, OracleSybase, Postgres และ SQL Server ใช้ SQL เป็นภาษาฐานข้อมูลมาตรฐาน ภาษาโปรแกรม SQL ใช้คำสั่งต่างๆ สำหรับการดำเนินการที่แตกต่างกัน เราจะเรียนรู้เกี่ยวกับคำสั่ง DCL, TCL, DQL, DDL และ DML ใน SQL พร้อมตัวอย่าง

ทำไมต้องใช้ SQL?

ต่อไปนี้คือเหตุผลสำคัญในการใช้ SQL:

  • ช่วยให้ผู้ใช้เข้าถึงข้อมูลใน ระบบอาร์ดีบีเอ็มเอส.
  • มันช่วยให้คุณอธิบายข้อมูลได้
  • ช่วยให้คุณสามารถกำหนดข้อมูลในฐานข้อมูลและจัดการข้อมูลเฉพาะนั้นได้
  • ด้วยความช่วยเหลือของคำสั่ง SQL คุณสามารถสร้างและลบฐานข้อมูลและตารางได้
  • SQL ช่วยให้คุณสามารถใช้ฟังก์ชันในฐานข้อมูล และสร้างมุมมอง (views) และโพรซีเดอร์ที่จัดเก็บไว้ (stored procedures) ได้
  • คุณสามารถตั้งค่าสิทธิ์บนตาราง ขั้นตอน และมุมมองได้

ประวัติโดยย่อของ SQL

นี่คือสถานที่สำคัญต่างๆ จากที่นี่ ประวัติของ SQL:

  • พ.ศ. 1970 (ค.ศ. XNUMX) – ดร. เอ็ดการ์ เอฟ “เท็ด” คอดด์ บรรยายถึงแบบจำลองเชิงสัมพันธ์สำหรับฐานข้อมูล
  • ปี 1974 – ภาษาการสอบถามเชิงโครงสร้าง (Structured Query Language) ปรากฏขึ้น โดยเดิมทีมีชื่อว่า SEQUEL IBM.
  • 1979 - Oracle เปิดตัวฐานข้อมูล SQL ตัวแรกที่วางจำหน่ายในเชิงพาณิชย์ โดยอิงจาก IBMต้นแบบงานวิจัย System R ของเขา
  • ปี 1986 – ANSI ได้เผยแพร่มาตรฐาน SQL ฉบับแรก คือ SQL-86
  • ปี 1989 – SQL-89 ได้ถูกนำเสนอเป็นฉบับปรับปรุงครั้งแรกของมาตรฐานนี้
  • ปี 1992 – SQL-92 (SQL2) กลายเป็นมาตรฐานหลักที่ฐานข้อมูลส่วนใหญ่ยังคงใช้อ้างอิงอยู่ในปัจจุบัน
  • ปี 1999 – SQL:1999 (SQL3) เปิดตัวพร้อมคุณสมบัติใหม่ เช่น ทริกเกอร์ การค้นหาแบบเรียกซ้ำ และการเขียนโปรแกรมเชิงวัตถุ
  • ปี 2003 – SQL:2003 เพิ่มฟังก์ชัน Window, ตัวสร้างลำดับ และคุณสมบัติที่เกี่ยวข้องกับ XML
  • 2006 – SQL:2006 เพิ่มการรองรับภาษาการสืบค้นข้อมูลด้วย XML (XQuery)
  • ปี 2008 – SQL:2008 ได้นำเสนอคำสั่ง TRUNCATE และทริกเกอร์ INSTEAD OF
  • 2011 – SQL:2011 ปรับปรุงการรองรับฐานข้อมูลเชิงเวลาให้ดียิ่งขึ้น
  • 2016 – SQL:2016 เพิ่มการรองรับ JSON และการจับคู่รูปแบบแถว (MATCH_RECOGNIZE)
  • ปี 2019 – SQL/MDA (ส่วนที่ 15) เพิ่มการรองรับอาร์เรย์หลายมิติลงในมาตรฐาน
  • 2023 – SQL:2023 เพิ่มชนิดข้อมูล JSON ดั้งเดิมและคิวรีกราฟคุณสมบัติ (SQL/PGQ)
  • ปี 2024 – GQL ซึ่งเป็นภาษาฐานข้อมูล ISO ใหม่ภาษาแรกนับตั้งแต่ SQL ได้รับการเผยแพร่ในฐานะมาตรฐานเสริมสำหรับการสืบค้นกราฟ
  • ปี 2026 – SQL:2023 ยังคงเป็นมาตรฐานปัจจุบัน โดยมาตรฐานฉบับปรับปรุงครั้งต่อไปอยู่ระหว่างการพัฒนาโดย ISO/IEC

ประเภทของคำสั่ง SQL

ต่อไปนี้คือคำสั่ง SQL 5 ประเภทที่ใช้กันอย่างแพร่หลาย:

  • ภาษานิยามข้อมูล (DDL)
  • ภาษาการจัดการข้อมูล (DML)
  • ภาษาควบคุมข้อมูล (DCL)
  • ภาษาควบคุมการทำธุรกรรม (TCL)
  • ภาษาคิวรีข้อมูล (DQL)
ประเภทของคำสั่ง SQL
ประเภทของ SQL

ตารางด้านล่างนี้สรุปหมวดหมู่ทั้งห้าก่อนที่จะอธิบายรายละเอียดในแต่ละหมวดหมู่

Category จุดมุ่งหมาย คำสั่งหลัก
DDL กำหนดโครงสร้าง สร้าง ลบ แก้ไข ตัดทอน
ดราก้อน แก้ไขข้อมูล เพิ่มข้อมูล อัปเดตข้อมูล ลบข้อมูล
DCL ควบคุมการเข้าถึง อนุมัติ, เพิกถอน
ทีซีแอล จัดการธุรกรรม ยืนยัน, ย้อนกลับ, บันทึกจุด
ดีคิวแอล ดึงข้อมูล SELECT

DDL คืออะไร?

ภาษานิยามข้อมูล (Data Definition Language หรือ DDL) ช่วยให้คุณกำหนดโครงสร้างหรือสคีมาของฐานข้อมูล มาเรียนรู้เกี่ยวกับคำสั่ง DDL พร้อมไวยากรณ์กัน คำสั่ง DDL หลักใน SQL ได้แก่ CREATE, DROP, ALTER และ TRUNCATE

สร้าง

คำสั่ง CREATE ใช้สำหรับกำหนดโครงสร้างหรือสคีมาของฐานข้อมูล:

ไวยากรณ์:

CREATE TABLE TABLE_NAME (COLUMN_NAME DATATYPES[,....]);

ตัวอย่างเช่น:

Create database university;
Create table students;
Create view for_students;

DROP

คำสั่ง DROP ใช้สำหรับลบตารางและฐานข้อมูลออกจากระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS)

ไวยากรณ์:

DROP TABLE ;

ตัวอย่างเช่น:

Drop object_type object_name;
Drop database university;
Drop table student;

แก้ไข

คำสั่ง ALTER ช่วยให้คุณสามารถแก้ไขโครงสร้างของฐานข้อมูลได้

ไวยากรณ์: วิธีการเพิ่มคอลัมน์ใหม่ในตาราง:

ALTER TABLE table_name ADD column_name COLUMN-definition;

หากต้องการแก้ไขคอลัมน์ที่มีอยู่ในตาราง:

ALTER TABLE MODIFY(COLUMN DEFINITION....);

ตัวอย่างเช่น:

Alter table guru99 add subject varchar;

ตัด

คำสั่งนี้ใช้เพื่อลบแถวทั้งหมดออกจากตารางและเพิ่มพื้นที่ว่างในตาราง

ไวยากรณ์:

TRUNCATE TABLE table_name;

ตัวอย่าง:

TRUNCATE table students;

ภาษาการจัดการข้อมูลคืออะไร?

ภาษาจัดการข้อมูล (DML) ช่วยให้คุณสามารถแก้ไขฐานข้อมูลได้โดยการแทรก แก้ไข และลบข้อมูล DML มีหน้าที่ในการดำเนินการแก้ไขข้อมูลทุกประเภทในฐานข้อมูล คำสั่ง DML ที่สำคัญใน SQL ได้แก่:

  • INSERT
  • อัพเดท
  • ลบ

INSERT

คำสั่งนี้ใช้สำหรับแทรกข้อมูลลงในแถวของตาราง

ไวยากรณ์:

INSERT INTO TABLE_NAME (col1, col2, col3,.... col N)
VALUES (value1, value2, value3, .... valueN);
Or
INSERT INTO TABLE_NAME
VALUES (value1, value2, value3, .... valueN);

ตัวอย่างเช่น:

INSERT INTO students (RollNo, FIrstName, LastName) VALUES ('60', 'Tom', Erichsen');

อัพเดท

คำสั่งนี้ใช้เพื่ออัพเดตหรือแก้ไขค่าของคอลัมน์ในตาราง

ไวยากรณ์:

UPDATE table_name SET [column_name1= value1,...column_nameN = valueN] [WHERE CONDITION]

ตัวอย่างเช่น:

UPDATE students
SET FirstName = 'Jhon', LastName= 'Wick'
WHERE StudID = 3;

ลบ

คำสั่งนี้ใช้เพื่อลบหนึ่งแถวขึ้นไปออกจากตาราง

ไวยากรณ์:

DELETE FROM table_name [WHERE condition];

ตัวอย่างเช่น:

DELETE FROM students
WHERE FirstName = 'Jhon';

ดีซีแอลคืออะไร?

DCL (Data Control Language) ประกอบด้วยคำสั่งต่างๆ เช่น GRANT และ REVOKE ซึ่งมีประโยชน์ในการให้สิทธิ์และการอนุญาต นอกจากนี้ยังมีคำสั่งอื่นๆ ที่ใช้ควบคุมพารามิเตอร์ของระบบฐานข้อมูล

ให้

คำสั่งนี้ใช้สำหรับให้สิทธิ์การเข้าถึงฐานข้อมูลแก่ผู้ใช้

ไวยากรณ์:

GRANT SELECT, UPDATE ON MY_TABLE TO SOME_USER, ANOTHER_USER;

ตัวอย่างเช่น:

GRANT SELECT ON Users TO'Tom'@'localhost;

Revถูก

คำสั่งนี้มีประโยชน์ในการเรียกคืนสิทธิ์การเข้าถึงจากผู้ใช้

ไวยากรณ์:

REVOKE privilege_nameON object_nameFROM {user_name |PUBLIC |role_name}

ตัวอย่างเช่น:

REVOKE SELECT, UPDATE ON student FROM BCA, MCA;

ทีซีแอลคืออะไร?

คำสั่ง Transaction Control Language หรือ TCL เกี่ยวข้องกับการจัดการธุรกรรมภายในฐานข้อมูล โดยทำงานโดยตรงกับสถานะต่างๆ ที่อธิบายไว้ด้านล่าง การจัดการธุรกรรม.

กระทำ

คำสั่งนี้ใช้เพื่อบันทึกธุรกรรมทั้งหมดลงฐานข้อมูล

ไวยากรณ์:

Commit;

ตัวอย่างเช่น:

DELETE FROM Students
WHERE RollNo =25;
COMMIT;

ย้อนกลับ

คำสั่ง Rollback ช่วยให้คุณสามารถยกเลิกธุรกรรมที่ยังไม่ได้บันทึกไปยังฐานข้อมูลได้

ไวยากรณ์:

ROLLBACK;

ตัวอย่าง:

DELETE FROM Students
WHERE RollNo =25;

ประหยัด

คำสั่งนี้ช่วยให้คุณตั้งค่าจุดบันทึก (savepoint) ภายในธุรกรรมได้

ไวยากรณ์:

SAVEPOINT SAVEPOINT_NAME;

ตัวอย่าง:

SAVEPOINT RollNo;

ดีคิวแอลคืออะไร?

ภาษาการสอบถามข้อมูล (DQL) ใช้สำหรับดึงข้อมูลจากฐานข้อมูล โดยใช้คำสั่งเพียงคำสั่งเดียว คือ SELECT

SELECT

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

ไวยากรณ์:

SELECT expressions
FROM TABLES
WHERE conditions;

ตัวอย่างเช่น:

SELECT FirstName
FROM Student
WHERE RollNo > 15;

ลบ เทียบกับ ตัดทอน เทียบกับ ลบทิ้ง

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

แง่มุม ลบ ตัด DROP
Category ดราก้อน DDL DDL
ลบ แถวที่เลือก ทุกแถว โต๊ะทั้งโต๊ะ
WHERE ข้อ ได้รับอนุญาต ไม่ได้รับอนุญาต ไม่สามารถใช้งาน
ย้อนกลับ เป็นไปได้ มักจะไม่ เป็นไปไม่ได้
โครงสร้างยังคงอยู่ มี (ใบกำกับภาษีเต็มรูปแบบ) มี (ใบกำกับภาษีเต็มรูปแบบ) ไม่

โดยสรุปแล้ว ให้ใช้คำสั่ง DELETE เพื่อลบแถวที่ต้องการ ใช้คำสั่ง TRUNCATE เพื่อล้างตารางอย่างรวดเร็ว และใช้คำสั่ง DROP เพื่อลบตารางทั้งหมด

คำถามที่พบบ่อย

DELETE เป็นคำสั่ง DML ที่ใช้ลบแถวที่เลือก และสามารถย้อนกลับได้ ส่วน TRUNCATE เป็นคำสั่ง DDL ที่ลบทุกแถวพร้อมกัน เร็วกว่า และโดยทั่วไปไม่สามารถย้อนกลับได้

คำสั่งเหล่านี้เป็นส่วนหนึ่งของภาษาควบคุมข้อมูล หรือ DCL คำสั่ง GRANT ให้สิทธิ์แก่ผู้ใช้ในการเข้าถึงวัตถุในฐานข้อมูล และคำสั่ง REVOKE เพิกถอนสิทธิ์เหล่านั้น ซึ่งทั้งสองคำสั่งนี้ใช้ควบคุมการเข้าถึงและความปลอดภัย

ใช่แล้ว โมเดลแปลงข้อความเป็น SQL จะแปลงคำขอที่เป็นภาษาธรรมชาติให้เป็นคำสั่ง SELECT หรือคำสั่งอื่นๆ ที่ใช้กับโครงสร้างข้อมูลที่รู้จัก ควรตรวจสอบคำสั่ง SQL ที่สร้างขึ้นก่อนนำไปใช้กับข้อมูลจริงเสมอ

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

DDL (Directly Licensing) กำหนดหรือเปลี่ยนแปลงโครงสร้างของฐานข้อมูล เช่น ตารางและคอลัมน์ ส่วน DML (Directly Machine Licensing) เปลี่ยนแปลงข้อมูลที่เก็บอยู่ภายในโครงสร้างนั้น ผ่านคำสั่ง INSERT, UPDATE และ DELETE ความแตกต่างที่สำคัญระหว่างโครงสร้างกับเนื้อหาคือจุดนี้

สรุปโพสต์นี้ด้วย: