SQL Server CREATE, ALTER, DROP Table [ตัวอย่าง T-SQL]

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

ตารางใน SQL Server จัดเก็บข้อมูลในรูปแบบแถวและคอลัมน์ Transact-SQL ใช้คำสั่ง CREATE TABLE เพื่อสร้างตาราง, ALTER TABLE เพื่อเพิ่มหรือเปลี่ยนแปลงคอลัมน์ และ DROP TABLE เพื่อลบตาราง ข้อมูล และโครงสร้างของตาราง

  • 🧱 ตารางคืออะไร: ตารางเป็นหน่วยจัดเก็บข้อมูลในรูปแบบแถวและคอลัมน์ และเป็นหน่วยพื้นฐานสำหรับจัดเก็บข้อมูลในฐานข้อมูล
  • 🛠️ สร้างตาราง: คำสั่ง CREATE TABLE กำหนดชื่อคอลัมน์ ชนิดข้อมูล และการตั้งค่า NULL หรือ NOT NULL ให้กับแต่ละคอลัมน์
  • 📋 สร้างจากสิ่งที่มีอยู่แล้ว: คำสั่ง SELECT … INTO จะคัดลอกคอลัมน์และแถวที่เลือกจากตารางที่มีอยู่แล้วไปยังตารางใหม่
  • เปลี่ยนตาราง: คำสั่ง ALTER TABLE … ADD เพิ่มคอลัมน์ใหม่ให้กับตารางโดยไม่ต้องสร้างตารางใหม่
  • 🗑️ ลากโต๊ะ: คำสั่ง DROP TABLE จะลบตารางทั้งหมด รวมทั้งข้อมูลและโครงสร้างของตารางด้วย
  • 🖱️ ผู้ออกแบบโต๊ะ: นอกจากนี้ SQL Server Management Studio ยังสามารถสร้างและแก้ไขตารางด้วยวิธีแบบเห็นภาพได้โดยใช้ Table Designer

คำสั่ง CREATE, ALTER และ DROP ใน SQL Server พร้อมตัวอย่าง T-SQL

ตารางคืออะไร?

ตารางเป็นวัตถุใน SQL Server ซึ่งจัดเก็บข้อมูลในรูปแบบแถวและคอลัมน์ แผนภาพด้านล่างแสดงแถวและคอลัมน์ตามลำดับ

แผนภาพแสดงตารางที่จัดเก็บข้อมูลในรูปแบบแถวและคอลัมน์

วิธีสร้างตารางใน SQL Server ด้วย T-SQL

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

คุณสามารถสร้างตารางได้ด้วยวิธีต่อไปนี้:

  • T-SQL: สร้างตารางใหม่โดยกำหนดคอลัมน์ทั้งหมดและชนิดข้อมูลของแต่ละคอลัมน์
  • T-SQL: สร้างตารางใหม่โดยใช้ตารางที่มีอยู่แล้ว
  • ใช้โปรแกรมออกแบบตาราง (Table Designer)

เรามาศึกษาเรื่องนี้อย่างละเอียดกันเถอะ

T-SQL: สร้างตารางใหม่โดยกำหนดคอลัมน์ทั้งหมดและชนิดข้อมูลของแต่ละคอลัมน์

ด้านล่างนี้คือไวยากรณ์สำหรับการสร้างตารางใน SQL Server

ไวยากรณ์:

CREATE TABLE tableName
( 
  column_1 datatype [ NULL | NOT NULL ],
  column_2 datatype [ NULL | NOT NULL ],
  ...
);

ที่นี่

  • พารามิเตอร์ tableName แสดงถึงชื่อของตารางที่คุณจะสร้าง
  • พารามิเตอร์ column_1, column_2... แสดงถึงคอลัมน์ที่จะเพิ่มลงในตาราง
  • ควรระบุค่าของคอลัมน์ว่าเป็น NULL หรือ NOT NULL หากไม่ระบุค่า SQL Server จะใช้ค่า NULL เป็นค่าเริ่มต้น

เรามาสร้างตารางพื้นฐานที่มีสองคอลัมน์กันเถอะ

ค้นหา:

CREATE TABLE COURSE
(
Course_ID Int,
Course_Name Varchar(10)
)

ข้อกำหนดเบื้องต้น: เลือกฐานข้อมูลที่คุณต้องการสร้างตาราง

ขั้นตอน 1) เรียกใช้คำสั่ง SQL โดยคลิกที่ปุ่ม "เรียกใช้" ก่อนเรียกใช้คำสั่งนี้ จะไม่มีตารางใด ๆ อยู่ ดังแสดงในภาพด้านล่าง

Object Explorer ไม่แสดงตาราง Course ก่อนที่คำสั่ง CREATE จะทำงาน

หลังจากเรียกใช้คำสั่งค้นหาแล้ว ให้คลิกปุ่มรีเฟรช ตารางใหม่ชื่อ Course จะปรากฏขึ้นดังที่แสดงด้านล่าง

ตารางรายวิชาจะแสดงใน Object Explorer หลังจากการดำเนินการและการรีเฟรช

ขั้นตอน 2) ใส่ข้อมูลลงไป ภาพหน้าจอข้างล่างแสดงตาราง Course ที่สร้างขึ้นใหม่พร้อมรับข้อมูลแล้ว

เลือกตารางหลักสูตรที่สร้างขึ้นใหม่ใน Object Explorer ก่อนแทรกข้อมูล

โครงสร้างตารางเรียนที่มีสองคอลัมน์แสดงไว้ก่อนการแทรกข้อมูล

ขณะนี้ตารางมีอยู่เพียงแต่ยังไม่มีข้อมูลใดๆ อยู่ในนั้น

Transact-SQL มีคำสั่ง INSERT สำหรับแทรกข้อมูลลงในตาราง โดยใช้คำสั่งนี้ คุณสามารถแทรกข้อมูลหนึ่งแถวหรือหลายแถวลงในตารางได้

ไวยากรณ์:

INSERT INTO tableName
(column_1, column_2, ... )
VALUES
(expression_1, expression_2, ... ),
(expression_1, expression_2, ... ),
...;

ไวยากรณ์ข้างต้นแสดงรูปแบบพื้นฐานของคำสั่งเมื่อใช้คำหลัก VALUES เพื่อแทรกข้อมูลลงในตาราง

เราจะแทรกข้อมูลสี่แถวโดยใช้คำสั่ง INSERT

Insert into COURSE values (1,'SQL');
Insert into COURSE values (2,'Python');
Insert into COURSE values (3,'SQL');
Insert into COURSE values (4,'C');

ภาพด้านล่างแสดงให้เห็นว่าการแทรกข้อมูลสี่แถวสำเร็จแล้ว

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

ขั้นตอน 3) ใช้คำสั่ง SELECT เพื่อดูข้อมูล ในการดูข้อมูลใน SQL Server ให้ใช้ไวยากรณ์ต่อไปนี้:

SELECT expression
FROM tableName
[WHERE condition];

ตัวอย่างแบบสอบถาม:

SELECT * FROM COURSE;

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

ตารางแสดงผลลัพธ์ที่แสดงแถวหลักสูตรทั้งสี่แถวที่ได้จากคำสั่ง SELECT

T-SQL: สร้างตารางใหม่โดยใช้ตารางที่มีอยู่แล้ว

สมมติว่าคุณต้องการตารางอีกตารางหนึ่งที่คล้ายกับตาราง COURSE ที่สร้างไว้ข้างต้น แต่คุณต้องการเฉพาะคอลัมน์ Course_Name เท่านั้น ไม่ต้องการ Course_ID

ไวยากรณ์:

SELECT (Column 1, …) INTO <New Table name> FROM <Old Table name>;

ตัวอย่างแบบสอบถาม:

SELECT COURSE_NAME INTO COURSE_NAMES FROM COURSE;

ขั้นตอน 1) เรียกใช้คำสั่งโดยคลิกที่ปุ่ม Execute ระบบจะสร้างตารางใหม่ชื่อ COURSE_NAMES โดยมีหนึ่งคอลัมน์และคัดลอกข้อมูลสี่รายการจากตารางเดิม ดังแสดงด้านล่าง

สร้างตาราง COURSE_NAMES ใหม่จากตารางที่มีอยู่โดยใช้คำสั่ง SELECT INTO

ตัวอย่างแบบสอบถาม:

SELECT * FROM COURSE_NAMES;

ผลลัพธ์ด้านล่างแสดงรายการระเบียน Course_Name ทั้งสี่รายการในตาราง COURSE_NAMES ใหม่

ตารางแสดงผลลัพธ์ที่แสดงค่า Course_Name ในตาราง COURSE_NAMES

การใช้โปรแกรมออกแบบตาราง

คุณสามารถสร้างตารางจากได้เช่นกัน สตูดิโอจัดการเซิร์ฟเวอร์ SQL IDE ที่ใช้ Table Designer

ขั้นตอน 1) คลิกขวาที่ ตาราง > สร้างใหม่ > ตาราง ดังแสดงในภาพด้านล่าง

คลิกขวาที่ตาราง จากนั้นเลือก สร้าง แล้วเลือก ตาราง ใน Object Explorer

ขั้นตอน 2) ป้อนชื่อคอลัมน์และ ประเภทข้อมูลและเลือกได้ว่าแต่ละคอลัมน์อนุญาตให้มีค่าว่างหรือไม่

แถบเครื่องมือออกแบบตารางสำหรับกำหนดตารางใหม่

ตารางออกแบบ (Table Designer) พร้อมตัวเลือกชื่อคอลัมน์ ชนิดข้อมูล และอนุญาตค่าว่าง (Allow Nulls)

ขั้นตอน 3) กด CTRL+S เพื่อบันทึกตาราง และตั้งชื่อตารางเป็น Course_Title

เลือกชื่อในกล่องโต้ตอบเพื่อบันทึกตารางใหม่เป็น Course_Title

หลังจากคลิกปุ่มรีเฟรช ตารางใหม่จะปรากฏขึ้นโดยมีชื่อว่า Course_Title และมีคอลัมน์หนึ่งชื่อ Course_Name ดังแสดงในภาพด้านล่าง

ตาราง Course_Title ที่มีคอลัมน์ Course_Name เพียงคอลัมน์เดียวใน Object Explorer

แก้ไขตารางใน SQL Server

การแก้ไขตารางใน SQL Server มีสองวิธี:

  • T-SQL: แก้ไขตารางโดยการเพิ่มคอลัมน์ใหม่
  • ใช้โปรแกรมออกแบบตาราง (Table Designer)

T-SQL: แก้ไขตารางโดยการแทรกคอลัมน์

ด้านล่างนี้คือไวยากรณ์ของคำสั่ง ALTER ใน SQL:

ไวยากรณ์:

 Alter TABLE <Table name> ADD Column1 datatype, Column2 datatype;

ค้นหา:

ALTER TABLE dbo.Course_Title ADD Course_Duration VARCHAR(20);

ขั้นตอน 1) เรียกใช้คิวรีโดยคลิกที่ปุ่ม Execute ตอนนี้คอลัมน์ใหม่ชื่อ Course_Duration จะปรากฏขึ้นในตาราง Course_Title ดังแสดงด้านล่าง

คำสั่ง ALTER TABLE ADD เพิ่มคอลัมน์ Course_Duration ลงในตาราง

คอลัมน์ Course_Title รวมถึงคอลัมน์ Course_Duration ที่เพิ่มเข้ามาใหม่

การใช้โปรแกรมออกแบบตาราง

นอกจากนี้ คุณยังสามารถแก้ไขตารางจากส่วนติดต่อผู้ใช้โดยใช้โปรแกรมออกแบบตารางได้อีกด้วย

ขั้นตอน 1) คลิกขวาที่ตารางที่มีอยู่ > ออกแบบ ดังแสดงในภาพด้านล่าง

คลิกขวาที่ตาราง Course_Title แล้วเลือก Design

ขั้นตอน 2) เพิ่มชื่อคอลัมน์เป็น Course_Start_Date และเลือกชนิดข้อมูลของคอลัมน์นั้น

การเพิ่มคอลัมน์ Course_Start_Date และชนิดข้อมูลใน Table Designer

ขั้นตอน 3) กด CTRL+S เพื่อบันทึกคอลัมน์ที่เพิ่มใหม่ คอลัมน์ใหม่ชื่อ Course_Start_Date จะถูกสร้างขึ้นในตาราง Course_Title ดังแสดงด้านล่าง

ตาราง Course_Title แสดงคอลัมน์ Course_Start_Date ที่บันทึกไว้

ลบตารางใน SQL Server

คุณลบตารางเมื่อไม่ต้องการใช้งานอีกต่อไป

การลบตารางใน SQL Server มีสองวิธี:

  • ใช้โปรแกรม SQL Server Management Studio
  • T-SQL: ลบตารางด้วยคำสั่ง DROP TABLE

ใช้ SQL Server Management Studio

ขั้นตอน 1) คลิกขวาที่ตารางที่มีอยู่ > ลบ สำหรับตารางชื่อ Course_Title ดังแสดงในภาพด้านล่าง

คลิกขวาที่ตาราง Course_Title แล้วเลือก ลบ

ขั้นตอน 2) ในหน้าต่างลบวัตถุ ให้คลิก ตกลง

หน้าต่างยืนยันการลบวัตถุพร้อมปุ่ม OK

ตาราง Course_Title ถูกลบออกจากรายการตารางแล้ว ดังแสดงด้านล่าง

รายการตารางใน Object Explorer หลังจากลบตาราง Course_Title แล้ว

T-SQL: ลบตาราง

ด้านล่างนี้คือไวยากรณ์สำหรับการลบตาราง

ไวยากรณ์:

DROP TABLE <tableName>;

พารามิเตอร์ tableName คือชื่อของตารางที่จะถูกลบ

ค้นหา:

DROP TABLE COURSE_NAMES;

ขั้นตอน 1) เรียกใช้คำสั่งโดยคลิกที่ปุ่ม "เรียกใช้" ตาราง COURSE_NAMES จะถูกลบออกจากรายการตาราง ดังแสดงด้านล่าง

คำสั่ง DROP TABLE จะลบตาราง COURSE_NAMES ออก

รายการตารางใน Object Explorer หลังจากที่ลบตาราง COURSE_NAMES ไปแล้ว

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

ไวยากรณ์:

DELETE TABLE <Table name>;

หมายเหตุ ใน T-SQL มาตรฐาน แถวจะถูกลบออกด้วย DELETE FROM <table>และโต๊ะก็ว่างเปล่าอย่างรวดเร็วด้วย TRUNCATE TABLE <table>ตารางทั้งหมดถูกลบออกด้วยคำสั่ง DROP TABLE ดังแสดงในภาพด้านบน

ข้อเท็จจริงที่น่าสนใจ!

  • ไฟล์ขนาดใหญ่ เช่น XML หรือรูปภาพ สามารถจัดเก็บในคอลัมน์โดยใช้ชนิดข้อมูลขนาดใหญ่ เช่น VARBINARY(MAX), VARCHAR(MAX) หรือชนิดข้อมูล XML (SQL Server ไม่ใช้ชนิดนี้) Oracle(ชื่อแบบ BLOB และ CLOB)
  • คำสั่ง DELETE จะลบเฉพาะแถวและสามารถย้อนกลับได้ภายในธุรกรรม ในขณะที่คำสั่ง DROP จะลบโครงสร้างตารางทั้งหมด ใน SQL Server แม้แต่คำสั่ง DROP ก็สามารถย้อนกลับได้เมื่อทำงานภายในธุรกรรมที่ระบุไว้อย่างชัดเจน

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

คำสั่ง DELETE จะลบแถวที่เลือกและมีการบันทึกการเปลี่ยนแปลงทั้งหมด คำสั่ง TRUNCATE จะลบแถวทั้งหมดอย่างรวดเร็วและรีเซ็ตค่า Identity คำสั่ง DROP จะลบตารางทั้งหมด รวมถึงข้อมูลและโครงสร้าง ใน SQL Server คำสั่งทั้งสามนี้สามารถย้อนกลับได้ภายในธุรกรรมที่กำหนดไว้อย่างชัดเจน

ใช้คำสั่ง DROP TABLE IF EXISTS table_name ซึ่งมีให้ใช้งานตั้งแต่ SQL Server 2016 คำสั่งนี้จะลบตารางหากมีอยู่ และจะไม่ทำอะไรเลยหากไม่มีอยู่ ซึ่งจะช่วยหลีกเลี่ยงข้อผิดพลาด ในเวอร์ชันเก่ากว่า ให้ตรวจสอบ OBJECT_ID ก่อนทำการลบping.

SQL Server ไม่มีคำสั่ง RENAME TABLE ให้ใช้ stored procedure ของระบบแทน คือ sp_rename เช่น EXEC sp_rename 'old_name', 'new_name' หลังจากนั้น ให้ทำการอัปเดตวิว โปรซีเดอร์ และโค้ดที่เกี่ยวข้องด้วย เพราะ sp_rename จะไม่เปลี่ยนแปลงการอ้างอิงเหล่านั้นโดยอัตโนมัติ

ใช่แล้ว คำสั่ง ALTER TABLE table ALTER COLUMN column new_type จะเปลี่ยนชนิดข้อมูลของคอลัมน์ และคำสั่ง ALTER TABLE table DROP COLUMN column จะลบคอลัมน์นั้น การเปลี่ยนแปลงจะสำเร็จก็ต่อเมื่อข้อมูลที่มีอยู่เข้ากันได้ ดังนั้นควรทดสอบการแปลงและสำรองข้อมูลก่อน

กำหนดข้อจำกัดภายในคำสั่ง CREATE TABLE เช่น Course_ID INT PRIMARY KEY หรือเพิ่มข้อจำกัดในภายหลังด้วยคำสั่ง ALTER TABLE ADD CONSTRAINT คีย์หลัก ส่งเสริมความเป็นเอกลักษณ์ ในขณะที่ คีย์ต่างประเทศ เชื่อมโยงแถวต่างๆ ข้ามตาราง

ตารางชั่วคราวซึ่งตั้งชื่อโดยขึ้นต้นด้วย # จะถูกสร้างขึ้นใน tempdb และจะถูกลบโดยอัตโนมัติเมื่อเซสชันสิ้นสุดลง ส่วนตารางปกติจะคงอยู่จนกว่าคุณจะลบมัน ตารางชั่วคราวเหมาะสำหรับผลลัพธ์ชั่วคราวที่มีอายุสั้นภายในชุดคำสั่งหรือขั้นตอนการทำงาน

ใช่. นักบิน GitHub สามารถสร้างสคริปต์ CREATE, ALTER และ DROP TABLE จากข้อความแจ้งด้วยภาษาธรรมชาติ และแนะนำคอลัมน์ ชนิดข้อมูล และข้อจำกัดต่างๆ ได้ ควรตรวจสอบโครงสร้างข้อมูล คีย์ และความสามารถในการรับค่าว่างก่อนนำไปใช้งานจริงเสมอ

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

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