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 eklerMODIFY
- tablodaki bir şeyi değiştirirDROP
- 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;