6.1 Thay đổi cấu trúc cơ sở dữ liệu

Và cuối cùng, phần thú vị nhất khi làm việc với cơ sở dữ liệu là thay đổi cơ sở dữ liệu. Nếu bạn nghĩ rằng đây là một điều gì đó rất đơn giản, thì đây là một giai thoại dành cho bạn về chủ đề này:


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!

Tình hình hoàn toàn giống với cơ sở dữ liệu. Bạn muốn lấy ra một phần dữ liệu trong bảng riêng? Được rồi, bạn cần:

  • tạo một bảng mới
  • sao chép dữ liệu vào bảng mới này
  • xóa cột khỏi bảng cũ
  • thay đổi tất cả các truy vấn SQL tham chiếu đến bảng cũ
  • thêm các truy vấn SQL sẽ truy cập vào bảng mới
  • thay đổi mã Java đã làm việc với các bảng theo cách cũ
  • thay đổi tập lệnh sao lưu và khôi phục, vì bây giờ cấu trúc bảng không khớp
  • nếu bạn có dữ liệu thử nghiệm cho nhà phát triển, bạn cũng cần thay đổi chúng

Mặc dù trong thực tế nó thậm chí còn tồi tệ hơn:

Cấu trúc cơ sở dữ liệu mới:

  • trước tiên, bạn thay đổi cấu trúc bảng trên máy của nhà phát triển
  • sau đó bạn tin rằng cấu trúc như vậy thực sự tốt hơn
  • phê duyệt cấu trúc cơ sở dữ liệu mới

Tập lệnh di chuyển:

  • bạn viết các tập lệnh sẽ thay đổi dữ liệu bảng, v.v. trên cơ sở dữ liệu thực
  • chạy các tập lệnh này trên máy có cấu trúc cơ sở dữ liệu cũ và xem nó thay đổi như thế nào
  • xác minh tất cả các địa điểm quan trọng của căn cứ mới

Cập nhật khi bán

  • dừng cơ sở dữ liệu sản xuất
  • tạo một bản sao lưu đầy đủ
  • thực thi tập lệnh
  • vì thường có rất nhiều trên thị trường, những tập lệnh này có thể hoạt động hàng giờ

Bạn khởi chạy sản phẩm và hy vọng rằng bạn không phải khôi phục mọi thứ.

6.2 Câu lệnh ALTER TABLE

Mặt khác, bản thân tập lệnh thay đổi cấu trúc bảng rất đơn giản. Về mặt nào đó, nó tương tự như một tập lệnh tạo bảng. Chế độ xem chung của yêu cầu thay đổi bảng:

ALTER TABLE table
team 1,
team 2,
Team N

Các lệnh rất khác nhau, nhưng có thể phân biệt ba nhóm chính:

  • ADD- thêm một cái gì đó vào bảng
  • MODIFY- thay đổi một cái gì đó trong bảng
  • DROP- xóa một cái gì đó trong bảng

Và khi tôi nói điều gì đó, đó không phải là về dữ liệu mà là về cấu trúc của bảng.

Ví dụ: bạn quyết định thêm một cột mới vào bảng, thì bạn cần thực hiện truy vấn sau:

ALTER TABLE table
	ADD COLUMN Name type

Hãy viết một truy vấn sẽ thêm một cột email vào bảng nhân viên của chúng ta :

ALTER TABLE employee
	ADD COLUMN email  VARCHAR(10)

Bây giờ, hãy thay đổi độ dài của chuỗi email từ 10 thành 100: đối với điều này, chúng ta cần một tập lệnh mới:

ALTER TABLE employee
	MODIFY COLUMN email VARCHAR(100)

Nếu bạn muốn thay đổi một số thuộc tính của một cột, nhưng không phải loại của nó, thì bạn cần lệnh ALTER COLUM . Hãy đặt giá trị email mặc định :

ALTER TABLE employee
	ALTER COLUMN email VARCHAR(100)  DEFAULT 'test@test.com'

Và cuối cùng, cột có thể được gỡ bỏ nếu bạn không cần:

ALTER TABLE employee
	DROP COLUMN email 

6.3 Thêm và xóa khóa chính

Và một số ví dụ hữu ích hơn.

Giả sử chúng ta quên khai báo cột id làm khóa chính. Bạn luôn có thể làm điều đó một cách riêng biệt thông qua ALTER TABLE:

ALTER TABLE employee
	ADD PRIMARY KEY (email);

Loại bỏ nó thậm chí còn dễ dàng hơn:

ALTER TABLE employee
	DELETE PRIMARY KEY;