SQL Server Veritabanı: SQL'de Veritabanı Oluşturun, Değiştirin ve Bırakın
Veritabanı nedir?
Veritabanı, tablolar, görünümler, saklı prosedürler, tetikleyiciler, işlevler vb. gibi nesnelerin bir koleksiyonudur.
Gerçek hayattan birkaç örnekle düşünün:
- Kitapların bulunduğu Kitaplığımız var,
- Yaşadığımız evlerimiz var.
- Araçların park edildiği otoparklarımız var ve örnekleri sayısızdır.
Benzer şekilde, birbirine bağlı tüm tablolarımız, görünümlerimiz, saklı prosedürlerimiz vb. için bir tür yuva olan DATABASE'e sahibiz.
Teknik olarak Veritabanı, verileri kolay erişim ve geri alma için iyi organize edilmiş bir şekilde saklar. İçinde SQL Server, iki tür veritabanı vardır:
- Sistem Veritabanları: SQL Server kurulumu yaptığınızda sistem veritabanları sizin için 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 örnekler şunları içerir: Master, MSDB, Model, Tempdb, Resource
- Kullanıcı Veritabanları: Kullanıcı veritabanları, sizin gibi veritabanları oluşturma erişimine sahip olan veritabanı kullanıcıları tarafından oluşturulur.
Veritabanı Oluşturma Kuralları
Öncelikle yeni DB oluşturmanın temel kurallarını bilmemiz gerekiyor:
- Veritabanı adlarının bir SQL Server örneğinde benzersiz olması gerekir.
- Veritabanı adları maksimum 128 karakterden oluşabilir.
- CREATE DATABASE ifadesi otomatik tamamlama modunda çalışmalıdır.
SQL Server'da Veritabanı oluşturmanın 2 yolu vardır.
- SQL Server Management Studio
- İşlem-SQL
SQL Server Management Studio'da Veritabanı Nasıl Oluşturulur
İşte bir veritabanı oluşturmak için adım adım bir süreç SQL sunucu yönetim stüdyosu:
) 1 Adım 'Object Explorer' penceresinden 'Veritabanı'na sağ tıklayın ve ardından 'Yeni Veritabanı'nı seçin.
) 2 Adım Aşağıda 'Yeni Veritabanı' ekranı görünecektir. 'Veritabanı adı'nı girin. Şunu unutmayın: 'Mantıksal ad' sütunu aşağıdakilerle otomatik olarak doldurulacaktır:
- Eğitim | Dosya türleri: Satırlar ve Dosya Grupları: PRIMARY
- Edu_log | Dosya türleri: LOG ve Dosya Grupları: 'Geçerli Değil'
İşte:
A) Eğitim | Dosya türleri: Satırlar ve Dosya Grupları: PRIMARY, .mdf dosyasıdır
B) Edu_log | Dosya türleri: LOG ve Dosya Grupları: 'Geçerli Değil' .ldf dosyasıdır
) 3 Adım (Opsiyonel) Daha Karmaşık ayarlar için 'Seçenekler' ve 'Dosya Grupları'na gidebiliriz. Başlangıç seviyesinde, Genel sekmesinden Veritabanı oluşturmak yeterli olacaktır.
) 4 Adım 'Ekle'ye tıklayın.
Sonuç: 'Edu' Veritabanı Oluşturuldu.
Tablolar, Görünüm vb. içerecek şekilde Veritabanı - 'Edu'yu genişletebiliriz. Bunlar, kullanıcı yeni Tablo, görünümler vb. oluşturana kadar başlangıçta boştur.
Kaynak Sorgusunu Görüntüleyin:
Yeni oluşturulan 'Edu' Veritabanının kaynak sorgusunu şu şekilde görüntüleyebilirsiniz: Gezinti: Veritabanı adı>Script Veritabanına sağ tıklayın> CREATE To> Yeni Sorgu Düzenleyici Penceresi.
Sorgu 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
Diğer bir yöntem ise Create a Database’e T-SQL sorgusunu yazıp çalıştırmaktır.
Basit Veritabanı Oluşturma T-SQL sorgularının çoğuna bir göz atalım.
Sözdizimi:
CREATE DATABASE <Database_name>
Sorgu:
CREATE DATABASE [Edu_TSQL_file]
'Yürüt'e tıklayın
Sonuç: Edu_TSQL'in SQL Object Explorer'da oluşturulduğunu görebiliriz.
.mdf ve .ldf dosyası ile Veritabanı Oluşturmak istediğimizde bir göz atalım. Burada sorgumuzun örtülü bir parçası olarak konumu verebiliriz.
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 )
Veritabanı Nasıl Değiştirilir
Veritabanı Sorgusu Oluştur gibi, Veritabanını da Değiştirebiliriz. Veritabanı adını yeniden adlandırabilir, dosya konumunu ve ayarını vb. değiştirebiliriz.
Yeni DB'yi değiştirmenin temel kuralları:
- ALTER DATABASE deyiminin otomatik tamamlama modunda çalışması gerekir.
- ALTER DATABASE'in açık veya örtülü bir işlemde kullanılmasına izin verilmez.
SQL sunucusunda Veritabanını Değiştirmenin 2 yolu vardır.
- SQL Server Management Studio
- Transact-SQL.
SQL Server Management Studio'da Veritabanı Nasıl Değiştirilir
SQL Server Management Studio'da veritabanını değiştirme adımları aşağıda verilmiştir:
Önceden Oluşturduğumuz Veritabanımızın 'Edu' Adını Değiştirmeyi deneyelim.
Adım 1) Veritabanını Yeniden Adlandırın
Veritabanı adına sağ tıklayın. 'Yeniden Adlandır'a tıklayın.
Adım 2) Yeni Veritabanı Adını Girin
Veritabanı adı düzenlenebilir olacaktır. Yeni Adı girin ve Enter tuşuna basın.
Sonuç: Veritabanı artık 'Edu'dan “Edu_Alter” olarak yeniden adlandırıldı.
Transact-SQL ile Veritabanını Değiştirme
Şimdi Veritabanını T-SQL Kullanarak 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ı artık 'Edu_TSQL'den “Edu_TSQL_Alter” olarak yeniden adlandırıldı.
Genel Sözdizimi:
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 } } ;
.mdf/.ldf dosya adını değiştirme
Sorgu:
Alter DATABASE Edu_TSQL_Alter; MODIFY FILE ( NAME = Edu_TSQL, NEWNAME = Edu_TSQL_newName );
.mdf/.ldf dosya 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ı Sil
SQL Server'da Veritabanını Silme'nin 2 yolu vardır.
- SQL Server Management Studio
- Transact-SQL.
SQL Server Management Studio'da Veritabanı Nasıl Bırakılır
SQL Server Management Studio'da bir veritabanını bırakma işlemi şu şekildedir:
Önceden Oluşturduğumuz 'Edu_Alter' Veritabanımızı Silmeyi deneyelim.
) 1 Adım Veritabanı'na sağ tıklayın. 'Sil'i ve ardından 'Tamam'ı tıklayın.
Sonuç: 'Edu_Alter', 'Object Explorer' Veritabanı listesinden silinir.
Transact-SQL kullanarak Veritabanını Silme
Önceden Oluşturduğumuz 'Edu_TSQL_Alter' Veritabanımızı Silmeyi deneyelim.
Sözdizimi:
DROP DATABASE <Databse_name>
Sorgu:
USE master; GO DROP DATABASE Edu_TSQL_Alter; GO
'Yürüt'ü tıklayarak yukarıdaki sorguyu çalıştırın.
Sonuç: 'Edu_TSQL_Alter', 'Object Explorer' Veritabanı listesinden silinir.
SQL Server'da Veritabanını Geri Yükleme
Daha önce yedeklediğiniz bir veritabanını geri yükleyerek bir veritabanı oluşturabilirsiniz. Bu, aşağıdaki sözdizimini alan restore database komutunu çalıştırarak yapılabilir:
restore Database <database name> from disk = '<Backup file location + filename>
Sorgu, önceki komutta olduğu gibi sorgu penceresinde yürütülmelidir. Örneğin:
restore database Edu from disk = 'C:\Backup\Edu_full_backup.bak'
GUI Gezinmesini de kullanabilirsiniz: Veritabanına sağ tıklayın>Veritabanlarını Geri Yükle>Cihaz> Dosyayı içe aktar>Tamam'a tıklayın.
ÖZET
- Üç işlemin tamamını gerçekleştirmek için hem SQL Management GUI'yi hem de T-SQL'i kullanabiliriz; Veritabanını Oluşturun, Değiştirin ve Silin.
- Bir SQL Server örneğinde maksimum 32,767 veritabanı belirtilebilir.
- Sistem Veritabanları silinemez.
- Oluştur, Değiştir ve Bırak: Tüm işlemler büyük/küçük harfe duyarlı değildir. Sözdizimi olarak hem büyük hem de küçük harf kullanabiliriz.