MS-SQL

สอนใช้คำสั่ง SQL เบื้องต้น: สร้างและจัดการ Database ด้วย CREATE, ALTER และ TRUNCATE

8 นาที 9 views บันทึกเป็น PDF
สอนใช้คำสั่ง SQL เบื้องต้น: สร้างและจัดการ Database ด้วย CREATE, ALTER และ TRUNCATE

มือใหม่หัดเขียนโปรแกรมต้องรู้! เรียนรู้วิธีสร้างฐานข้อมูล (Database) และตาราง (Table) ด้วยคำสั่ง SQL พื้นฐานที่ใช้จริงในการพัฒนาซอฟต์แวร์ พร้อมตัวอย่างโค้ดที่ทำตามได้ทันที

รู้จักกับ SQL และคำสั่ง DDL ที่โปรแกรมเมอร์ต้องรู้

เวลาเราสร้างแอปพลิเคชันหรือเว็บไซต์ ข้อมูลคือหัวใจสำคัญที่สุด เราต้องมีที่เก็บข้อมูลที่เรียกว่า Database (ฐานข้อมูล) ซึ่งเปรียบเสมือนตู้เก็บเอกสารขนาดใหญ่ที่จัดระเบียบไว้อย่างดี เพื่อให้เราค้นหาหรือบันทึกข้อมูลได้รวดเร็ว โดยภาษาที่เราใช้คุยกับตู้เก็บเอกสารนี้คือ SQL (ภาษาที่ใช้จัดการฐานข้อมูล)

ก่อนจะเริ่มใส่ข้อมูล เราต้องรู้จักกลุ่มคำสั่ง DDL (ภาษาที่ใช้กำหนดโครงสร้างฐานข้อมูล) กันก่อน คำสั่งพวกนี้ทำหน้าที่เหมือนการออกแบบผังบ้านหรือการสร้างตู้เก็บของ ถ้าเราไม่มีการวางโครงสร้างที่ดีตั้งแต่แรก การจัดการข้อมูลในอนาคตจะวุ่นวายมาก เหมือนการโยนของทุกอย่างลงในกล่องใบเดียวโดยไม่มีช่องแยก

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

การสร้างฐานข้อมูลด้วยคำสั่ง CREATE DATABASE

การสร้าง Database เปรียบเสมือนการจองพื้นที่ในตู้เก็บเอกสารเพื่อแบ่งหมวดหมู่ให้ชัดเจน เช่น เราอาจจะสร้างฐานข้อมูลชื่อว่า MyStore เพื่อเก็บข้อมูลขายของออนไลน์โดยเฉพาะ การมีหลายฐานข้อมูลช่วยให้ข้อมูลไม่ปนกันและดูแลรักษาง่ายขึ้นมาก

เราจะใช้คำสั่ง CREATE DATABASE ตามด้วยชื่อที่เราต้องการตั้ง โดยชื่อฐานข้อมูลควรสื่อความหมายเพื่อให้คนอื่นในทีมเข้าใจตรงกันว่าฐานข้อมูลนี้มีไว้ทำอะไร และที่สำคัญคือต้องไม่มีช่องว่างหรืออักขระพิเศษเพื่อให้โปรแกรมทำงานได้ไม่มีบั๊ก (จุดผิดพลาดในโค้ด)

เมื่อเราสั่งรันคำสั่งนี้ ระบบจะเตรียมพื้นที่ว่างเปล่าให้เราทันที เปรียบเหมือนเราเพิ่งซื้อตู้เก็บเอกสารเปล่ามาวางไว้ในออฟฟิศ ตอนนี้เรายังไม่มี Table (ตารางเก็บข้อมูล) ข้างใน แต่เรามีพื้นที่พร้อมใช้งานแล้วสำหรับการสร้างตารางต่อไป

-- สร้างฐานข้อมูลชื่อ MyStore
CREATE DATABASE MyStore;
GO
-- เลือกใช้งานฐานข้อมูลที่เพิ่งสร้าง
USE MyStore;
GO

คำอธิบาย: CREATE DATABASE คือคำสั่งสร้างฐานข้อมูล MyStore คือชื่อที่เราตั้ง ส่วน GO คือคำสั่งบอกให้ SQL Server เริ่มทำงานในบล็อกนั้น ส่วน USE คือการบอกโปรแกรมว่าเราจะเข้าไปทำงานในฐานข้อมูลชื่อนี้แล้ว

ผลลัพธ์: จะมีรายการฐานข้อมูลชื่อ MyStore ปรากฏขึ้นในเมนู Object Explorer ของโปรแกรมจัดการฐานข้อมูล และมีข้อความแจ้งเตือนว่า Command(s) completed successfully

การออกแบบตารางด้วยคำสั่ง CREATE TABLE

เมื่อมีฐานข้อมูลแล้ว ขั้นต่อมาคือการสร้าง Table (ตารางเก็บข้อมูล) ไว้ข้างใน ซึ่งเปรียบเสมือนช่องลิ้นชักที่แบ่งเป็นคอลัมน์ต่างๆ เช่น ตารางเก็บข้อมูลลูกค้า ต้องมีคอลัมน์ชื่อ นามสกุล และเบอร์โทรศัพท์ เพื่อให้ข้อมูลมีความเป็นระเบียบ

หัวใจสำคัญของการสร้างตารางคือการกำหนด Data Type (ชนิดของข้อมูล) ให้ถูกต้อง เช่น ถ้าเราเก็บอายุ ต้องกำหนดเป็นตัวเลข ถ้าเก็บชื่อต้องกำหนดเป็นข้อความ การเลือกชนิดข้อมูลที่เหมาะสมจะช่วยประหยัดพื้นที่และทำให้โปรแกรมทำงานได้เร็วขึ้น

มือใหม่มักพลาดเรื่องการลืมตั้ง Primary Key (กุญแจหลัก) ซึ่งคือคอลัมน์ที่ไม่ซ้ำกันเลยในแต่ละแถว เช่น รหัสพนักงานหรือรหัสลูกค้า การมีกุญแจหลักจะทำให้เราอ้างอิงข้อมูลแต่ละตัวได้แม่นยำที่สุดเวลาต้องการแก้ไขหรือลบข้อมูลในอนาคต

-- สร้างตารางลูกค้า
CREATE TABLE Customers (
    CustomerID INT PRIMARY KEY, -- รหัสลูกค้าเป็นตัวเลขและเป็นกุญแจหลัก
    FullName NVARCHAR(100),    -- ชื่อลูกค้าเก็บข้อความได้ 100 ตัวอักษร
    Email NVARCHAR(50)         -- อีเมลลูกค้า
);
GO

คำอธิบาย: INT คือชนิดข้อมูลตัวเลขจำนวนเต็ม NVARCHAR คือชนิดข้อมูลข้อความที่รองรับภาษาไทยได้ PRIMARY KEY คือการบอกว่าคอลัมน์นี้ห้ามซ้ำและใช้ระบุตัวตนของข้อมูล

ผลลัพธ์: ภายในฐานข้อมูล MyStore จะมีตารางชื่อ Customers โผล่ขึ้นมา โดยมีโครงสร้างคอลัมน์ตามที่เรากำหนดไว้

การปรับแต่งโครงสร้างด้วยคำสั่ง ALTER TABLE

บางครั้งเมื่อโปรเจกต์โตขึ้น เราอาจต้องการเก็บข้อมูลเพิ่ม เช่น อยากเพิ่มคอลัมน์ 'เบอร์โทรศัพท์' เข้าไปในตารางลูกค้าเดิมที่มีอยู่แล้ว เราไม่ต้องลบตารางทิ้งแล้วสร้างใหม่ แต่เราสามารถใช้คำสั่ง ALTER TABLE เพื่อปรับแต่งโครงสร้างได้ทันที

การใช้ ALTER TABLE เปรียบเหมือนการเพิ่มลิ้นชักเข้าไปในตู้เดิมที่เรามีอยู่แล้ว ทำให้เรายืดหยุ่นในการพัฒนาซอฟต์แวร์ได้มาก เพราะความต้องการของลูกค้าหรือฟีเจอร์ของแอปมักมีการเปลี่ยนแปลงอยู่เสมอในระหว่างที่เรากำลังพัฒนา

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

-- เพิ่มคอลัมน์เบอร์โทรศัพท์เข้าไปในตารางลูกค้า
ALTER TABLE Customers
ADD PhoneNumber NVARCHAR(20);
GO

คำอธิบาย: ALTER TABLE คือคำสั่งแก้ไขตาราง ADD คือคำสั่งเพิ่มคอลัมน์ใหม่เข้าไป โดยระบุชื่อคอลัมน์และชนิดข้อมูลตามหลัง

ผลลัพธ์: ตาราง Customers จะมีคอลัมน์ PhoneNumber เพิ่มเข้ามาใหม่ในฐานข้อมูลโดยที่ข้อมูลเดิมในตารางไม่หายไป

การล้างข้อมูลทิ้งด้วยคำสั่ง TRUNCATE TABLE

บางครั้งเราต้องการล้างข้อมูลทั้งหมดในตารางทิ้ง แต่ยังต้องการเก็บโครงสร้างตารางไว้ใช้งานต่อ เช่น การล้างข้อมูลทดสอบก่อนนำโปรเจกต์ไปใช้งานจริง เราจะใช้คำสั่ง TRUNCATE TABLE ซึ่งทำงานได้รวดเร็วมาก

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

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

-- ล้างข้อมูลทั้งหมดในตารางลูกค้า
TRUNCATE TABLE Customers;
GO

คำอธิบาย: TRUNCATE TABLE จะสั่งให้ระบบลบแถวข้อมูลทั้งหมดในตารางทิ้งทันที โดยที่ตัวตารางและคอลัมน์ที่สร้างไว้ยังคงอยู่ครบ

ผลลัพธ์: เมื่อเราลองสั่งดูข้อมูลในตาราง Customers อีกครั้ง เราจะไม่พบข้อมูลใดๆ เหลืออยู่ แต่ตารางยังคงสถานะพร้อมให้เราใส่ข้อมูลใหม่เข้าไปได้

สรุปการนำไปใช้งานจริง

การจัดการฐานข้อมูลด้วยคำสั่ง DDL เป็นจุดเริ่มต้นที่สำคัญของงาน Backend (ส่วนการทำงานหลังบ้าน) ลองนึกภาพว่าคุณกำลังสร้างแอปจดบันทึกรายรับรายจ่าย คุณต้องเริ่มจากการสร้างฐานข้อมูล FinanceApp และสร้างตาราง Transactions เพื่อเก็บยอดเงินและวันที่

ในระหว่างการพัฒนา ถ้าคุณพบว่าต้องการเก็บประเภทของรายจ่ายด้วย คุณก็ใช้ ALTER TABLE เพิ่มคอลัมน์ Category เข้าไป และเมื่อคุณเขียนโค้ดเสร็จแล้วต้องการทดสอบระบบใหม่ตั้งแต่ต้น ก็ใช้ TRUNCATE TABLE ล้างข้อมูลทดสอบเก่าทิ้งเพื่อเริ่มนับหนึ่งใหม่

ฝึกฝนการเขียนคำสั่งเหล่านี้ให้คล่องโดยใช้ SQL Server Management Studio (โปรแกรมสำหรับจัดการฐานข้อมูลของ Microsoft) เป็นเครื่องมือหลัก ยิ่งคุณทำบ่อยคุณจะยิ่งเห็นภาพชัดเจนว่าข้อมูลแต่ละชุดเชื่อมโยงกันอย่างไร และนั่นคือจุดเริ่มต้นที่ทำให้คุณก้าวไปเป็นโปรแกรมเมอร์มืออาชีพที่มีพื้นฐานแน่นปึ้ก

แชร์บทความ

Facebook X LINE

บทความที่เกี่ยวข้อง

คู่มือ MS-SQL Backup, Restore และการตั้งค่า Maintenance Plans สำหรับมือใหม่
MS-SQL

คู่มือ MS-SQL Backup, Restore และการตั้งค่า Maintenance Plans สำหรับมือใหม่

เรียนรู้วิธีสำรองข้อมูล (Backup) และกู้คืน (Restore) ฐานข้อมูล MS-SQL ด้วย SSMS พร้อมวิธีตั้งค่าระบบอัตโนมัติ เพื่อป้องกันข้อมูลหายสำหรับโปรแกรมเมอร์มือใหม่

3 weeks ago 7 นาที
14 views
คู่มือการจัดการความปลอดภัยใน MS-SQL: Logins, Users และการคุมสิทธิ์ด้วย GRANT, DENY, REVOKE
MS-SQL

คู่มือการจัดการความปลอดภัยใน MS-SQL: Logins, Users และการคุมสิทธิ์ด้วย GRANT, DENY, REVOKE

ไม่อยากให้ฐานข้อมูลถูกแฮกต้องอ่าน! เรียนรู้วิธีตั้งค่าความปลอดภัยใน MS-SQL ตั้งแต่การสร้าง Login (บัญชีผู้ใช้) ไปจนถึงการคุมสิทธิ์เข้าถึงข้อมูลให้ปลอดภัย

3 weeks ago 9 นาที
15 views
เจาะลึก MS-SQL Trigger (AFTER & INSTEAD OF) พร้อมวิธีจัดการ Error ด้วย TRY...CATCH
MS-SQL

เจาะลึก MS-SQL Trigger (AFTER & INSTEAD OF) พร้อมวิธีจัดการ Error ด้วย TRY...CATCH

เรียนรู้การใช้ Trigger ใน MS-SQL เพื่อจัดการข้อมูลอัตโนมัติ พร้อมเทคนิคการเขียน Error Handling ให้ระบบเสถียร ไม่พังง่าย เหมาะสำหรับมือใหม่หัดเขียนฐานข้อมูล

3 weeks ago 9 นาที
15 views