6.1 Veritabanı yapısının değiştirilmesi

Ve son olarak, veritabanlarıyla çalışmanın en lezzetli yanı veritabanını değiştirmektir. Bunun çok basit bir şey olduğunu düşünüyorsanız, işte size konuyla ilgili bir anekdot:


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!

Veritabanlarında da durum tamamen aynıdır. Ayrı tablodaki verilerin bir kısmını çıkarmak mı istiyorsunuz? Tamam, şunlara ihtiyacın var:

  • yeni bir tablo oluştur
  • verileri bu yeni tabloya kopyalayın
  • eski tablodan sütunları kaldır
  • eski tabloya atıfta bulunan tüm SQL sorgularını değiştirin
  • yeni tabloya erişecek SQL sorguları ekleyin
  • tablolarla eski şekilde çalışan Java kodunu değiştirin
  • yedekleme ve geri yükleme komut dosyalarını değiştirin, çünkü artık tablo yapıları eşleşmemektedir
  • geliştiriciler için test verileriniz varsa bunları da değiştirmeniz gerekir

Gerçekte daha da kötü olmasına rağmen:

Yeni veritabanı yapısı:

  • önce geliştiricinin makinesindeki tablo yapısını değiştirirsiniz
  • o zaman böyle bir yapının gerçekten daha iyi olduğuna ikna oldunuz
  • yeni veritabanı yapısını onaylayın

Geçiş komut dosyaları:

  • gerçek bir veritabanında tablo verilerini vb. değiştirecek komut dosyaları yazarsınız
  • bu betikleri eski veritabanı yapısına sahip bir makinede çalıştırın ve nasıl değiştiğini görün
  • yeni üssün tüm kritik yerlerini doğrulayın

satışta güncelleme

  • üretim veritabanını durdur
  • tam yedekleme yap
  • komut dosyalarını çalıştırma
  • piyasada genellikle çok olduğundan, bu komut dosyaları saatlerce çalışabilir

Prod'u başlatırsınız ve her şeyi geri almak zorunda kalmayacağınızı umarsınız.

6.2 ALTER TABLE ifadesi

Öte yandan, tablo yapısını değiştiren betiğin kendisi çok basittir. Bazı yönlerden tablo oluşturma komut dosyasına benzer. Bir tablo değişikliği talebinin genel görünümü:

ALTER TABLE table
team 1,
team 2,
Team N

Komutlar çok farklıdır, ancak üç ana grup ayırt edilebilir:

  • ADD- masaya bir şeyler ekler
  • MODIFY- tablodaki bir şeyi değiştirir
  • DROP- tablodaki bir şeyi siler

Ve bir şey söylediğimde, bu verilerle ilgili değil, tablonun yapısıyla ilgili.

Örneğin, tabloya yeni bir sütun eklemeye karar verdiniz ve ardından aşağıdaki sorguyu çalıştırmanız gerekiyor:

ALTER TABLE table
	ADD COLUMN Name type

Çalışan tablomuza e-posta sütunu ekleyecek bir sorgu yazalım :

ALTER TABLE employee
	ADD COLUMN email  VARCHAR(10)

Şimdi e-posta dizesinin uzunluğunu 10'dan 100'e değiştirelim: bunun için yeni bir komut dosyasına ihtiyacımız var:

ALTER TABLE employee
	MODIFY COLUMN email VARCHAR(100)

Bir sütunun bazı özniteliklerini değiştirmek istiyorsanız, ancak türünü değiştirmek istiyorsanız, o zaman komutuna ALTER COLUM ihtiyacınız vardır . Varsayılan e-posta değerini ayarlayalım :

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

Son olarak, ihtiyacınız yoksa sütun kaldırılabilir:

ALTER TABLE employee
	DROP COLUMN email 

6.3 Birincil anahtar ekleme ve kaldırma

Ve bazı daha yararlı örnekler.

Diyelim ki id sütununu birincil anahtar olarak bildirmeyi unuttuk. Bunu her zaman şu yolla ayrı olarak yapabilirsiniz ALTER TABLE:

ALTER TABLE employee
	ADD PRIMARY KEY (email);

Kaldırmak daha da kolay:

ALTER TABLE employee
	DELETE PRIMARY KEY;