6.1 การเปลี่ยนแปลงโครงสร้างของฐานข้อมูล
และสุดท้าย ส่วนที่อร่อยที่สุดของการทำงานกับฐานข้อมูลคือการเปลี่ยนแปลงฐานข้อมูล หากคุณคิดว่านี่เป็นเรื่องง่ายมาก นี่คือเกร็ดเล็กเกร็ดน้อยสำหรับคุณในหัวข้อ:
The service station master, wiping his hands, hands over the car to the client and chats along the way:
- But who do you work for?
- I am a cardiac surgeon, I perform heart operations.
- And they pay a lot?
- $20,000 per operation.
- Nothing for myself ... But we, in fact, are doing the same thing, sorting out the engines, and they pay me only $ 300 ...
- Do you want to earn as much as I do?
- Want...
The surgeon starts the engine in the car and turns to the master:
- Move over!
สถานการณ์เหมือนกันทุกประการกับฐานข้อมูล คุณต้องการนำข้อมูลส่วนหนึ่งออกจากตารางแยกหรือไม่ โอเค คุณต้อง:
- สร้างตารางใหม่
- คัดลอกข้อมูลลงในตารางใหม่นี้
- ลบคอลัมน์ออกจากตารางเก่า
- เปลี่ยนแบบสอบถาม SQL ทั้งหมดที่อ้างถึงตารางเก่า
- เพิ่มแบบสอบถาม SQL ที่จะเข้าถึงตารางใหม่
- เปลี่ยนโค้ด Java ที่ทำงานกับตารางด้วยวิธีเก่า
- เปลี่ยนสคริปต์การสำรองและกู้คืนเนื่องจากตอนนี้โครงสร้างตารางไม่ตรงกัน
- หากคุณมีข้อมูลทดสอบสำหรับนักพัฒนา คุณต้องเปลี่ยนข้อมูลเหล่านั้นด้วย
แม้ว่าในความเป็นจริงจะเลวร้ายยิ่งกว่า:
โครงสร้างฐานข้อมูลใหม่:
- ก่อนอื่น คุณเปลี่ยนโครงสร้างตารางในเครื่องของผู้พัฒนา
- ถ้าอย่างนั้นคุณก็มั่นใจว่าโครงสร้างดังกล่าวดีกว่าจริงๆ
- อนุมัติโครงสร้างฐานข้อมูลใหม่
สคริปต์การโยกย้าย:
- คุณเขียนสคริปต์ที่จะเปลี่ยนข้อมูลตาราง ฯลฯ บนฐานข้อมูลจริง
- เรียกใช้สคริปต์เหล่านี้บนเครื่องที่มีโครงสร้างฐานข้อมูลเก่า และดูว่ามีการเปลี่ยนแปลงอย่างไร
- ตรวจสอบสถานที่สำคัญทั้งหมดของฐานใหม่
อัพเดทลดราคา
- หยุดฐานข้อมูลการผลิต
- ทำการสำรองข้อมูลทั้งหมด
- เรียกใช้สคริปต์
- เนื่องจากมักจะมีจำนวนมากในท้องตลาด สคริปต์เหล่านี้สามารถทำงานได้หลายชั่วโมง
คุณเปิดตัวผลิตภัณฑ์และหวังว่าคุณจะไม่ต้องย้อนกลับทุกอย่าง
6.2 คำสั่ง ALTER TABLE
ในทางกลับกัน สคริปต์เองซึ่งเปลี่ยนโครงสร้างตารางนั้นง่ายมาก ในบางวิธี จะคล้ายกับสคริปต์สร้างตาราง มุมมองทั่วไปของคำขอเปลี่ยนตาราง:
ALTER TABLE table
team 1,
team 2,
Team N
คำสั่งนั้นแตกต่างกันมาก แต่สามารถแยกความแตกต่างได้สามกลุ่มหลัก:
ADD
- เพิ่มบางอย่างลงในตารางMODIFY
- เปลี่ยนบางอย่างในตารางDROP
- ลบบางอย่างในตาราง
และเมื่อฉันพูดอะไร มันไม่ได้เกี่ยวกับข้อมูล แต่เกี่ยวกับโครงสร้างของตาราง
ตัวอย่างเช่น คุณตัดสินใจที่จะเพิ่มคอลัมน์ใหม่ในตาราง จากนั้นคุณต้องดำเนินการค้นหาต่อไปนี้:
ALTER TABLE table
ADD COLUMN Name type
ลองเขียนแบบสอบถามที่จะเพิ่มคอลัมน์อีเมล ในตาราง พนักงาน ของเรา :
ALTER TABLE employee
ADD COLUMN email VARCHAR(10)
ตอนนี้เรามาเปลี่ยนความยาวของสตริงอีเมลจาก 10 เป็น 100: สำหรับสิ่งนี้เราต้องการสคริปต์ใหม่:
ALTER TABLE employee
MODIFY COLUMN email VARCHAR(100)
หากคุณต้องการเปลี่ยนแอตทริบิวต์บางคอลัมน์แต่เปลี่ยนประเภทไม่ได้ คุณต้องใช้คำ ALTER COLUM
สั่ง มาตั้ง ค่า อีเมลเริ่มต้นกัน :
ALTER TABLE employee
ALTER COLUMN email VARCHAR(100) DEFAULT 'test@test.com'
และสุดท้าย คอลัมน์สามารถลบออกได้หากคุณไม่ต้องการ:
ALTER TABLE employee
DROP COLUMN email
6.3 การเพิ่มและลบคีย์หลัก
และตัวอย่างที่เป็นประโยชน์เพิ่มเติม
สมมติว่าเราลืมประกาศ คอลัมน์ idเป็นคีย์หลัก คุณสามารถทำแยกกันได้เสมอผ่านALTER TABLE
:
ALTER TABLE employee
ADD PRIMARY KEY (email);
การลบออกนั้นง่ายยิ่งขึ้น:
ALTER TABLE employee
DELETE PRIMARY KEY;
GO TO FULL VERSION