SQL Server Veritabanı: Oluşturma, Değiştirme, Silme ve Geri Yükleme

⚡ Akıllı Özet

SQL Server veritabanları, tabloları, görünümleri, saklı prosedürleri ve diğer nesneleri barındıran kaplardır. Oluşturma, değiştirme, silme işlemleri bu kaplarda yapılır.pingVeritabanı geri yükleme işlemi SQL Server Management Studio veya Transact-SQL ifadeleri kullanılarak yapılabilir.

  • 🗄️ Veri tabanı: SQL Server veritabanı, tabloları, görünümleri, prosedürleri ve fonksiyonları tek bir düzenli, birbirine bağlı yapıda depolar.
  • 🧩 Sistem ve Kullanıcı: Sistem veritabanları (master, msdb, model, tempdb, resource) otomatik olarak kurulur; kullanıcı veritabanları ise sizin tarafınızdan oluşturulur.
  • 🖱️ Yaratmak: Nesne Gezgini'ndeki Yeni Veritabanı iletişim kutusu aracılığıyla veya CREATE DATABASE komutuyla bir veritabanı ekleyin.
  • ✏️ Alter: ALTER DATABASE komutunu veya Yeniden Adlandır menüsünü kullanarak bir veritabanının adını değiştirebilir veya dosyalarını ve seçeneklerini güncelleyebilirsiniz.
  • 🗑️ Düşürmek: Kullanıcı veritabanını DROP DATABASE veya Delete seçeneğiyle silebilirsiniz; sistem veritabanları silinemez.
  • 💾 Restore: RESTORE DATABASE komutunu kullanarak bir .bak yedek dosyasından veritabanını yeniden oluşturun.

SQL Server Veritabanı Oluşturma, Değiştirme, Silme ve Geri Yükleme

Veritabanı nedir?

Veritabanı, aşağıdakiler gibi nesnelerin bir koleksiyonudur: tablolarGörünümler, saklı prosedürler, tetikleyiciler ve fonksiyonlar. SQL ServerVeritabanı, tüm bu ilgili nesnelerin depolandığı ve birbirine bağlandığı düzenli bir yapıdır.

Gerçek hayattan birkaç örneği ele alalım:

  • Kitaplık, kitapların bulunduğu yerdir.
  • Ev, yaşadığımız yerdir.
  • Otopark, araçların park edildiği yerdir ve bu tür örnekler sayısızdır.

Benzer şekilde, bir veritabanı, tüm tablolarımız, görünümlerimiz ve saklı prosedürlerimiz için bir tür yuva görevi görür. Teknik olarak, bir veritabanı verileri kolay erişim ve alma için iyi organize edilmiş bir şekilde depolar. SQL Server'da iki tür veritabanı vardır:

  • Sistem veritabanları: Bunlar SQL Server'ı kurduğunuzda otomatik olarak oluşturulur. Sunucuda, özellikle veritabanı nesnelerinin doğru şekilde çalışmasını sağlamada çok önemli bir rol oynarlar. SQL Server sistem veritabanlarına örnek olarak master, msdb, model, tempdb ve resource verilebilir.
  • Kullanıcı veritabanları: Bunlar, veritabanı oluşturma erişimi verilmiş olan sizin gibi veritabanı kullanıcıları tarafından oluşturulur.

Veritabanı Oluşturma Kuralları

Öncelikle, yeni bir veritabanı oluşturmanın temel kurallarını bilmeniz gerekiyor:

  • Veritabanı adlarının bir SQL Server örneğinde benzersiz olması gerekir.
  • Veritabanı adları maksimum 128 karakterden oluşabilir.
  • CREATE DATABASE komutu otomatik kaydetme modunda çalıştırılmalıdır.

Aşağıdaki görsel, SQL Server'da veritabanı oluşturmak için mevcut iki yaklaşımı özetlemektedir.

SQL Server veritabanı oluşturmanın iki yolu: Management Studio ve Transact-SQL

SQL Server'da veritabanı oluşturmanın 2 yolu vardır:

SQL Server Management Studio'da Veritabanı Nasıl Oluşturulur

İşte SQL Server Management Studio'da veritabanı oluşturmak için adım adım süreç:

) 1 Adım 'Nesne Gezgini' penceresinde 'Veritabanı' üzerine sağ tıklayın ve ardından 'Yeni Veritabanı'nı seçin.

Aşağıda Yeni Veritabanı seçeneğini içeren sağ tıklama menüsü gösterilmektedir.

Nesne Gezgini'nde Veritabanı düğümüne sağ tıklayın ve Yeni Veritabanı seçeneğini seçin.

) 2 Adım 'Yeni Veritabanı' ekranı görünür. Bir 'Veritabanı adı' girin. 'Mantıksal Ad' sütunu otomatik olarak şu bilgilerle doldurulur:

  • Eğitim – Dosya türü: Satır Verileri ve Dosya grubu: BİRİNCİL
  • Edu_log – Dosya türü: LOG ve Dosya grubu: 'Uygulanamaz'

Aşağıda veritabanı adı ve mantıksal dosyalarını içeren Yeni Veritabanı iletişim kutusu gösterilmektedir.

Yeni Veritabanı iletişim kutusu, Edu veritabanı adını ve Edu ile Edu_log mantıksal dosyalarını göstermektedir.

İşte:

  • A) Edu (Dosya türü: Satır Verileri, Dosya grubu: BİRİNCİL) .mdf veri dosyasıdır.
  • B) Edu_log (Dosya türü: LOG, Dosya grubu: 'Uygulanamaz') .ldf uzantılı günlük dosyasıdır.

) 3 Adım (İsteğe bağlı) Daha karmaşık ayarlar için 'Seçenekler' ve 'Dosya Grupları' sayfalarına gidebilirsiniz. Başlangıç ​​seviyesinde, Genel sekmesinden veritabanı oluşturmak yeterli olacaktır.

Aşağıda Seçenekler ve Dosya Grupları sayfaları gösterilmektedir.

Gelişmiş ayarlar için yeni Veritabanı Seçenekleri ve Dosya Grupları sayfaları.

) 4 Adım Veritabanını oluşturmak için 'Ekle' (Tamam düğmesi) seçeneğine tıklayın.

Oluşturmayı onaylayan düğme aşağıda vurgulanmıştır.

Edu veritabanını oluşturan Yeni Veritabanı iletişim kutusundaki Tamam düğmesi

Sonuç: 'Edu' veritabanı oluşturuldu. 'Edu' veritabanını genişletebilirsiniz; bu veritabanı Tablolar, Görünümler vb. içerecektir. Bunlar, yeni tablolar, görünümler vb. oluşturana kadar başlangıçta boştur.

Nesne Gezgini, yeni oluşturulan Edu veritabanını ve boş klasörlerini gösteriyor.

Kaynak Sorgusunu Görüntüleyin: Yeni oluşturulan 'Edu' veritabanının kaynak sorgusunu görüntüleyebilirsiniz. Şu adımları izleyin: Veritabanı adına sağ tıklayın > Veritabanını Komut Dosyası Olarak Oluştur > OLUŞTUR > Yeni Sorgu Düzenleyici Penceresi.

Veritabanı Komut Dosyasını Yeni Sorgu Düzenleyici Penceresi bağlam menüsüne OLUŞTUR olarak ekle

Sorgu Penceresi: Oluşturulan CREATE komut dosyası, aşağıda gösterildiği gibi yeni bir sorgu penceresinde açılır.

Edu için otomatik olarak oluşturulan CREATE DATABASE komut dosyasını görüntüleyen sorgu düzenleyici penceresi.

Komut Dosyası Oluştur:

USE [master]
GO

CREATE DATABASE [Edu]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'Edu', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
 LOG ON 
( NAME = N'Edu_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )

T-SQL ile Veritabanı Oluşturun

Bir diğer yöntem ise veritabanı oluşturmak için bir T-SQL sorgusu yazıp ardından çalıştırmaktır. En basit veritabanı oluşturma T-SQL sorgusuna bakalım.

Sözdizimi:

CREATE DATABASE <Database_name>

Sorgu:

CREATE DATABASE [Edu_TSQL_file]

Aşağıda gösterildiği gibi, sorguyu çalıştırmak için 'Yürüt'e tıklayın.

SSMS araç çubuğundaki Yürüt düğmesi, VERİTABANI OLUŞTUR sorgusunu çalıştırmak için kullanılır.

Sonuç: SQL Nesne Gezgini'nde oluşturulan Edu_TSQL_file dosyasını görebilirsiniz.

Nesne Gezgini, Transact-SQL ile oluşturulan Edu_TSQL_file veritabanını listeliyor.

Şimdi, .mdf ve .ldf dosyalarını açıkça belirterek bir veritabanı oluşturmayı inceleyelim. Burada, dosya konumunu sorgunun açık bir parçası olarak verebilirsiniz.

Sözdizimi:

CREATE DATABASE database_name   
[ CONTAINMENT = { NONE | PARTIAL } ]  
[ ON   
      [ PRIMARY ] <filespec> [ ,...n ]   
      [ , <filegroup> [ ,...n ] ]   
      [ LOG ON <filespec> [ ,...n ] ]   
];

Sorgu:

CREATE DATABASE [Edu_TSQL_file]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'Edu_TSQL_file', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu_TSQL_file.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
 LOG ON 
( NAME = N'Edu_TSQL_file_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu_TSQL_file_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )

Aşağıda gösterildiği gibi, açık verileri ve günlük dosyalarıyla oluşturulan veritabanı Nesne Gezgini'nde görünür.

Nesne Gezgini, açıkça .mdf ve .ldf dosyaları kullanılarak oluşturulan Edu_TSQL_file veritabanını göstermektedir.

Veritabanı Nasıl Değiştirilir

CREATE DATABASE sorgusuna benzer şekilde, bir veritabanını da değiştirebilirsiniz. Veritabanının adını değiştirebilir, dosya konumunu veya ayarını değiştirebilir ve daha fazlasını yapabilirsiniz.

Veritabanında değişiklik yapmanın temel kuralları:

  • ALTER DATABASE komutu otomatik kaydetme modunda çalıştırılmalıdır.
  • ALTER DATABASE'in açık veya örtülü bir işlemde kullanılmasına izin verilmez.

SQL Server'da bir veritabanını değiştirmenin 2 yolu vardır:

  • SQL Server Management Studio
  • İşlem-SQL

SQL Server Management Studio'da Veritabanı Nasıl Değiştirilir

Aşağıda SQL Server Management Studio'da bir veritabanını değiştirme adımları verilmiştir. Önceden oluşturduğumuz 'Edu' veritabanının adını değiştirmeyi deneyelim. Önceden oluşturulmuş Edu veritabanı, Nesne Gezgini'nde aşağıda gösterilmektedir.

Nesne Gezgini veritabanı listesinden önceden oluşturulmuş Edu veritabanı seçildi.

) 1 Adım Veritabanının adını değiştirin. Veritabanı adına sağ tıklayın ve 'Yeniden Adlandır' seçeneğine tıklayın.

Edu veritabanına sağ tıklayın ve bağlam menüsünden Yeniden Adlandır seçeneğini kullanın.

) 2 Adım Veritabanı adı düzenlenebilir hale gelir. Yeni adı girin ve Enter tuşuna basın.

Düzenlenebilir Edu veritabanı ad alanı, yeni bir ad için hazır.

Sonuç: Veritabanının adı artık 'Edu' yerine "Edu_Alter" olarak değiştirildi.

Nesne Gezgini, veritabanının adının Edu'dan Edu_Alter'a değiştirildiğini gösteriyor.

Transact-SQL ile Veritabanını Değiştirme

Şimdi T-SQL kullanarak bir veritabanını değiştirelim.

Sözdizimi:

ALTER DATABASE <Databse_name>              
MODIFY NAME = <New Name>

Sorgu:

ALTER DATABASE Edu_TSQL
MODIFY NAME = Edu_TSQL_Alter;

'Yürüt' seçeneğini tıklayarak yukarıdaki sorguyu çalıştırın.

Sonuç: Veritabanının adı, aşağıda gösterildiği gibi, 'Edu_TSQL' yerine "Edu_TSQL_Alter" olarak değiştirildi.

Nesne Gezgini, ALTER DATABASE işleminden sonra veritabanının adının Edu_TSQL_Alter olarak değiştirildiğini gösteriyor.

Genel Sözdizimi: ALTER DATABASE komutunun tam sözdizimi, yeniden adlandırma, sıralama, dosya seçenekleri ve uyumluluk düzeyi de dahil olmak üzere birçok seçeneği destekler.

ALTER DATABASE { database_name  | CURRENT }  
{   MODIFY NAME = new_database_name   
  | COLLATE collation_name  
  | <file_and_filegroup_options>  
  | SET <option_spec> [ ,...n ] [ WITH <termination> ] 
  | SET COMPATIBILITY_LEVEL = { 140 | 130 | 120 | 110 | 100 | 90 }   
} ;

Not: Yukarıda gösterilen uyumluluk seviyeleri eski sürümleri yansıtmaktadır. Mevcut sürümler 150 (SQL Server 2019), 160 (SQL Server 2022) ve 170 (SQL Server 2025) seviyelerini eklerken, önceki birkaç seviyeyi de desteklemeye devam etmektedir.

.mdf/.ldf dosya adını değiştirme

Sorgu:

Alter DATABASE Edu_TSQL_Alter;
MODIFY FILE ( NAME = Edu_TSQL, NEWNAME = Edu_TSQL_newName );

Yeniden adlandırılan mantıksal dosya, aşağıda gösterildiği gibi veritabanı özelliklerine yansır.

Veritabanı özellikleri, yeniden adlandırılan mantıksal dosya Edu_TSQL_newName'i doğruluyor.

.mdf/.ldf dosyasının konumunu değiştirme

Sorgu:

Alter DATABASE Edu_TSQL_Alter;
MODIFY FILE ( NAME = Edu_TSQL_NewName, FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\New_File\Edu_TSQL_log.ldf' );

Veritabanının güncellenmiş dosya yolu aşağıda gösterilmiştir.

Yeni .ldf günlük dosyasının konumunu gösteren veritabanı dosya sayfası.

Veritabanını Sil

SQL Server'da bir veritabanını silmenin (drop etmenin) 2 yolu vardır:

  • SQL Server Management Studio
  • İşlem-SQL

SQL Server Management Studio'da Veritabanı Nasıl Bırakılır

SQL Server Management Studio'da bir veritabanını silme işlemi aşağıdaki gibidir. Önceden oluşturduğumuz 'Edu_Alter' veritabanını silmeyi deneyelim.

) 1 Adım Veritabanına sağ tıklayın, 'Sil' seçeneğine tıklayın ve ardından 'Tamam'a tıklayın.

Nesneyi sil iletişim kutusu (sürükleme için)ping SSMS'deki Edu_Alter veritabanı

Sonuç: 'Edu_Alter', 'Nesne Gezgini' veritabanı listesinden silindi.

Edu_Alter veritabanı silindikten sonra Nesne Gezgini veritabanı listesi

Transact-SQL kullanarak Veritabanını Silme

Şimdi önceden oluşturduğumuz 'Edu_TSQL_Alter' veritabanını silmeyi deneyelim.

Sözdizimi:

DROP DATABASE <Databse_name>

Sorgu:

USE master;  
GO  
DROP DATABASE Edu_TSQL_Alter;  
GO

'Yürüt' seçeneğini tıklayarak yukarıdaki sorguyu çalıştırın.

Sonuç: Aşağıda gösterildiği gibi, 'Edu_TSQL_Alter' 'Nesne Gezgini' veritabanı listesinden silindi.

T-SQL ile Edu_TSQL_Alter veritabanı silindikten sonra Nesne Gezgini veritabanı listesi

SQL Server'da Veritabanını Geri Yükleme

Daha önce yedeklediğiniz bir veritabanını geri yükleyerek yeni bir veritabanı oluşturabilirsiniz. Bu işlem, aşağıdaki sözdizimini kullanan RESTORE DATABASE komutunu çalıştırarak yapılabilir:

restore Database <database name> from disk = '<Backup file location + filename>

Sorgu, tıpkı önceki komutlarda olduğu gibi, sorgu penceresi içinde yürütülmelidir. Örneğin:

restore database Edu from disk = 'C:\Backup\Edu_full_backup.bak'

Grafiksel kullanıcı arayüzünü de kullanabilirsiniz: Veritabanına sağ tıklayın > Veritabanını Geri Yükle > Aygıt > yedekleme dosyasını içe aktarın > Tamam'a tıklayın.

SSS

Veritabanı oluşturmak için ana veritabanında CREATE DATABASE, CREATE ANY DATABASE veya ALTER ANY DATABASE iznine sahip olmak gerekir. Ayrıca, sysadmin veya dbcreator sunucu rolüne sahip bir üye veya uygun şekilde yetkilendirilmiş bir kişi de gereklidir. girişBu ifadeyi çalıştırabilirsiniz.

Tek bir SQL Server örneği 32,767'ye kadar veritabanı barındırabilir. Bu rakam, mimari açıdan belirlenmiş katı bir sınırdır; pratikte, bellek, depolama ve yönetim yükü nedeniyle iyi performans için çok daha küçük sayılar tavsiye edilir.

Hayır. Master, model, msdb, tempdb ve resource gibi sistem veritabanları motor tarafından gereklidir ve silinemez. Yalnızca sizin oluşturduğunuz kullanıcı veritabanları DROP DATABASE veya Delete seçeneğiyle silinebilir.

SIZE, dosyanın başlangıç ​​boyutunu, MAXSIZE, dosyanın ulaşabileceği en büyük boyutu ve FILEGROWTH ise dosya her genişlediğinde eklenecek alan miktarını belirler. Bu ayarlar hem veri hem de günlük dosyaları için geçerlidir.

COMPATIBILITY_LEVEL, bir veritabanının hangi sorgu işleme davranışını kullanacağını kontrol eder. Mevcut değerler arasında 140 (SQL Server 2017), 150 (2019), 160 (2022) ve 170 (2025) bulunur. ALTER DATABASE SET COMPATIBILITY_LEVEL komutu, veritabanını yeni bir sunucuya taşımadan bu değeri değiştirir.

DROP DATABASE komutu, veritabanını ve .mdf ile .ldf dosyalarını kalıcı olarak siler. Veritabanını devre dışı bırakmak (OFF)LINE Dosyaları diskte bırakarak erişimi engeller, böylece daha sonra geri yükleme yapmadan tekrar çevrimiçi hale getirebilirsiniz.

Evet. GitHub Yardımcı Pilotu SSMS veya editörünüz içindeki doğal dil istemlerinden CREATE DATABASE, ALTER DATABASE ve DROP DATABASE komutlarını oluşturabilirsiniz. Gerçek bir sunucuda çalıştırmadan önce oluşturulan dosya yollarını, boyutlarını ve seçeneklerini daima gözden geçirin.

Yapay zeka ve makine öğrenimi, dosya boyutları ve büyüme ayarları önererek, kapasiteyi tahmin ederek, yapılandırma sapmalarını tespit ederek ve riskli DROP veya ALTER işlemlerini işaretleyerek kaynak tahsisine yardımcı olur. Dikkatli incelemenin yerini almak yerine, veritabanı yöneticisine destek sağlarlar.

Bu yazıyı şu şekilde özetleyin: