MYSQL – การเปลี่ยนแปลง, DROP, RENAME, MODIFY

คำสั่ง ALTER คืออะไร?

ดังคำกล่าวที่ว่า การเปลี่ยนแปลงเป็นสิ่งเดียวที่คงที่

เมื่อเวลาผ่านไปความต้องการทางธุรกิจก็เปลี่ยนไปเช่นกัน เมื่อความต้องการทางธุรกิจเปลี่ยนไป การออกแบบฐานข้อมูลก็ต้องเปลี่ยนแปลงเช่นกัน

MySQL ให้ แก้ไข ฟังก์ชั่นที่ช่วยเรา รวมการเปลี่ยนแปลงการออกแบบฐานข้อมูลที่มีอยู่แล้ว.

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

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

แก้ไข – ไวยากรณ์

ไวยากรณ์พื้นฐานที่ใช้ในการเพิ่มคอลัมน์ลงในตารางที่มีอยู่แล้วแสดงไว้ด้านล่าง

ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;

ที่นี่

  • “แก้ไขตาราง `table_name`” เป็นคำสั่งที่บอก MySQL เซิร์ฟเวอร์เพื่อแก้ไขตารางชื่อ `table_name`
  • “เพิ่มคอลัมน์ `column_name` `data_type`” เป็นคำสั่งที่บอก MySQL เซิร์ฟเวอร์เพื่อเพิ่มคอลัมน์ใหม่ชื่อ `column_name` พร้อมประเภทข้อมูล `data_type'

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

SHOW COLUMNS FROM `members`;
Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
full_names varchar(350) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL

เราสามารถใช้สคริปต์ที่แสดงด้านล่างเพื่อเพิ่มฟิลด์ใหม่ให้กับตารางสมาชิก

ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR(25);

ดำเนินการสคริปต์ข้างต้นใน MySQL Myflixdb เพิ่มคอลัมน์ใหม่ชื่อหมายเลขบัตรเครดิตลงในตารางสมาชิกโดยใช้ VARCHAR เป็นประเภทข้อมูล เมื่อดำเนินการสคริปต์แสดงคอลัมน์แล้ว จะได้ผลลัพธ์ดังต่อไปนี้

SHOW COLUMNS FROM `members`;
Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
full_names varchar(350) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL
credit_card_number varchar(25) YES

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

คำสั่ง DROP คืออะไร?

คำสั่ง DROP ถูกใช้เพื่อ

  1. ลบฐานข้อมูลออกจาก MySQL เซิร์ฟเวอร์
  2. ลบวัตถุ (เช่น Table , Column) ออกจากฐานข้อมูล

ตอนนี้เรามาดูตัวอย่างการใช้งานจริงที่ใช้คำสั่ง DROP กัน

ในตัวอย่างก่อนหน้าของเราใน Alter Command เราได้เพิ่มคอลัมน์ชื่อหมายเลขบัตรเครดิตลงในตารางสมาชิก

สมมติว่าฟังก์ชันการเรียกเก็บเงินออนไลน์จะใช้เวลาสักพักและเราต้องการลบคอลัมน์บัตรเครดิต

เราสามารถใช้สคริปต์ต่อไปนี้ได้

ALTER TABLE `members` DROP COLUMN `credit_card_number`;

การดำเนินการตามสคริปต์ด้านบนจะปล่อยคอลัมน์ credit_card_number ออกจากตารางสมาชิก

ตอนนี้เรามาดูคอลัมน์ในตารางสมาชิกเพื่อยืนยันว่าคอลัมน์ของเราถูกละทิ้งหรือไม่

SHOW COLUMNS FROM `members`;

ดำเนินการสคริปต์ข้างต้นใน MySQL การใช้งาน workbench กับ myflixdb จะให้ผลลัพธ์ดังต่อไปนี้

Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
full_names varchar(350) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL

โปรดสังเกตว่าหมายเลขบัตรเครดิตหลุดออกจากรายการฟิลด์

วางตาราง

ไวยากรณ์ในการวางตารางจากฐานข้อมูลมีดังนี้ -

DROP TABLE `sample_table`;

ลองดูตัวอย่าง

DROP TABLE `categories_archive`;

การรันสคริปต์ด้านบนจะลบตารางชื่อ ` categories_archive ` ออกจากฐานข้อมูลของเรา

คำสั่งเปลี่ยนชื่อคืออะไร?

คำสั่งเปลี่ยนชื่อถูกใช้เพื่อ เปลี่ยนชื่อของวัตถุฐานข้อมูลที่มีอยู่ (เช่นตาราง,คอลัมน์) เป็นชื่อใหม่.

การเปลี่ยนชื่อตารางไม่ได้ทำให้ข้อมูลใดๆ ที่อยู่ภายในตารางสูญหาย

ไวยากรณ์:-

คำสั่งเปลี่ยนชื่อมีรูปแบบพื้นฐานดังต่อไปนี้

RENAME TABLE `current_table_name` TO `new_table_name`;

สมมติว่าเราต้องการเปลี่ยนชื่อตาราง movierentals เป็น movie_rentals เราสามารถใช้สคริปต์ที่แสดงด้านล่างเพื่อให้บรรลุเป้าหมายนั้น

RENAME TABLE `movierentals` TO `movie_rentals`;

การดำเนินการสคริปต์ด้านบนจะเปลี่ยนชื่อตาราง `movierentals` เป็น `movie_rentals`

ตอนนี้เราจะเปลี่ยนชื่อตาราง movie_rentals กลับเป็นชื่อเดิม

RENAME TABLE `movie_rentals` TO `movierentals`;

เปลี่ยนคำหลัก

เปลี่ยนคำหลักช่วยให้คุณสามารถ

  1. เปลี่ยนชื่อคอลัมน์
  2. เปลี่ยนชนิดข้อมูลคอลัมน์
  3. เปลี่ยนข้อจำกัดของคอลัมน์

ลองดูตัวอย่าง ฟิลด์ชื่อเต็มในตารางสมาชิกเป็นประเภทข้อมูล varchar และมีความกว้าง 150

SHOW COLUMNS FROM `members`;

ดำเนินการสคริปต์ข้างต้นใน MySQL การใช้งาน workbench กับ myflixdb จะให้ผลลัพธ์ดังต่อไปนี้

Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
full_names varchar(150) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL

สมมติว่าเราต้องการ

  1. เปลี่ยนชื่อฟิลด์จาก "full_names" เป็น "fullname
  2. เปลี่ยนเป็นชนิดข้อมูลถ่านที่มีความกว้าง 250
  3. เพิ่มข้อจำกัด NOT NULL

เราสามารถทำได้โดยใช้คำสั่ง change ดังนี้ -

ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;

ดำเนินการสคริปต์ข้างต้นใน MySQL workbench กับ myflixdb แล้วรันสคริปต์แสดงคอลัมน์ที่กำหนดไว้ข้างต้นให้ผลลัพธ์ดังต่อไปนี้

Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
fullnames char(250) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL

แก้ไขคำหลัก

คำหลัก MODIFY ช่วยให้คุณสามารถ

  1. แก้ไขชนิดข้อมูลคอลัมน์
  2. แก้ไขข้อจำกัดของคอลัมน์

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

สคริปต์ด้านล่างเปลี่ยนความกว้างของฟิลด์ "ชื่อเต็ม" จาก 250 เป็น 50

ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;

ดำเนินการสคริปต์ข้างต้นใน MySQL workbench กับ myflixdb แล้วรันสคริปต์แสดงคอลัมน์ที่กำหนดไว้ด้านบน ซึ่งจะให้ผลลัพธ์ดังแสดงด้านล่าง

Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
fullnames char(50) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL

หลังจากคำหลัก

สมมติว่าเราต้องการเพิ่มคอลัมน์ใหม่ในตำแหน่งเฉพาะในตาราง

เราสามารถใช้คำสั่ง alter ร่วมกับคีย์เวิร์ด AFTER ได้

สคริปต์ด้านล่างเพิ่ม “date_of_registration” หลังวันเกิดในตารางสมาชิก

ALTER TABLE  `members` ADD  `date_of_registration` date NULL AFTER  `date_of_birth`;

ดำเนินการสคริปต์ข้างต้นใน MySQL workbench กับ myflixdb แล้วรันสคริปต์แสดงคอลัมน์ที่กำหนดไว้ด้านบน ซึ่งจะให้ผลลัพธ์ดังแสดงด้านล่าง

Field Type Null Key Default Extra
membership_number int(11) NO PRI NULL auto_increment
fullnames char(50) NO NULL
gender varchar(6) YES NULL
date_of_birth date YES NULL
date_of_registration date YES NULL
physical_address varchar(255) YES NULL
postal_address varchar(255) YES NULL
contact_number varchar(75) YES NULL
email varchar(255) YES NULL
Note: The Hilighted row is added after date_of_birth cloumn

สรุป

  • คำสั่ง alter ถูกใช้เมื่อเราต้องการแก้ไขฐานข้อมูลหรือวัตถุใด ๆ ที่มีอยู่ในฐานข้อมูล
  • คำสั่ง drop ใช้สำหรับลบฐานข้อมูล MySQL เซิร์ฟเวอร์ หรือวัตถุภายในฐานข้อมูล
  • คำสั่งเปลี่ยนชื่อใช้เพื่อเปลี่ยนชื่อตารางเป็นชื่อตารางใหม่
  • คีย์เวิร์ด Change ช่วยให้คุณสามารถเปลี่ยนชื่อคอลัมน์ ประเภทข้อมูล และข้อจำกัดได้
  • แก้ไขคำสำคัญช่วยให้คุณสามารถแก้ไขชนิดข้อมูลคอลัมน์และข้อจำกัดได้
  • คำสำคัญ After ใช้เพื่อระบุตำแหน่งของคอลัมน์ในตาราง