MS Visual Studio'da yerel bir Microsoft SQL Server veritabanı oluşturma örneği. T-SQL Temelleri

  • 18.06.2019

Tanıtım

Bu makale, iletişim kurmanın temelleri hakkında küçük bir dizi açar. Java'da veritabanları (DB) ve SQL'e giriş ... Pek çok program bilgiyi işlemek ve değiştirmekle meşguldür ve bu bilgileri güncel tutar. Veriler, program mantığının çok önemli bir parçası olduğundan, genellikle bunun için ayrı bir depolama alanı tahsis edilir. İçindeki bilgiler yapılandırılmıştır ve doğru işleme ve depolamayı sağlamak için özel kurallara tabidir. Veri erişimi ve modifikasyonu özel bir sorgulama dili olan SQL (Structured Query Language) kullanılarak gerçekleştirilir. Veritabanı Yönetim sistemi SQL dahil olmak üzere çeşitli harici programların veriler ve ek hizmetler (günlük, kurtarma, yedekleme vb.) ile etkileşimini sağlayan bir yazılımdır. Yani, veriler ve bunlarla çalışan harici programlar arasında bir yazılım katmanı. Bu bölümde SQL nedir, SQL server nedir sorularına cevap vereceğiz ve DBMS ile etkileşime girecek ilk programı oluşturacağız.

DBMS Türleri

Veri depolamayı düzenleme şekline göre çeşitli DBMS türleri vardır:
  • Hiyerarşik. Veriler bir ağaç yapısında düzenlenir. Bir örnek, diskin kökünden başlayan ve daha sonra farklı türlerdeki dosya dalları ve değişen derecelerde iç içe geçmiş klasörlerle büyüyen bir dosya sistemidir.
  • Ağ. Hiyerarşiyi değiştirerek, her düğümün birden fazla ebeveyni olabilir.
  • Nesne odaklı. Veriler, OOP'ye göre nitelikleri ve etkileşim ilkeleri ile sınıflar / nesneler şeklinde düzenlenir.
  • İlişkisel. Bu tür DBMS'nin verileri tablolarda düzenlenir. Tablolar birbirleriyle ilişkilendirilebilir, içlerindeki bilgiler yapılandırılmıştır.
Bu makale dizisinde, örnek olarak H2'yi kullanarak ilişkisel DBMS'yi (en yaygın olarak) ele alacağız ve bir değiş tokuşun çalışmasını taklit eden sıfırdan bir uygulama oluşturacağız. Soru: Neden PostgreSQL, MySQL, MSSQL veya Oracle olmasın? Cevap: Ayrı bir program setinin yüklenmesiyle dikkatinizin dağılmaması için. Daha fazla özelleştirme, veritabanı oluşturma, farklı işletim sistemlerinde çalışmanın incelikleri, sürümler. H2 ile çalışmak için minimum eylem gerçekleştirmeniz gerekir. Ancak hiçbir şey mevcut H2 JDBC'yi başka bir üreticinin ilişkisel DBMS'sine değiştirmenizi engellemez (yalnızca sunucu adres dizesi ve sürücü sınıfı adı değiştirilir).

SQL

Harici programlar, Structured Query Language veri yönetimi dilinde DBMS'ye sorgular oluşturur. SQL nedir ve normal programlama dillerinden farkı nedir? SQL'in özelliklerinden biri bildirimselliktir. Yani, SQL bildirimsel bir dildir... Bu, komutları sürerek, yani SQL sunucusuna sorgular oluşturarak, tam olarak ne almak istediğimizi ve ne şekilde almak istediğimizi açıkladığımız anlamına gelir. Sunucuya bir SELECT * FROM CUSTOMER sorgusu göndererek (SQL'den Rusça'ya yaklaşık çeviri: "CUSTUMER tablosundan seçim yapın, seçim tablodaki tüm satırlardan oluşur"), tüm kullanıcılar için veri alacağız. Sunucunun bizi ilgilendiren verileri nasıl ve nereden indireceği ve oluşturacağı hiç önemli değil. Ana şey, talebi doğru bir şekilde formüle etmektir.
  • SQL Server nedir ve nasıl çalışır? DBMS ile etkileşim, istemci-sunucu bazında gerçekleşir. Bazı harici programlar SQL dilinde ifadeler ve komutlar şeklinde bir istek gönderir, DBMS bunu işler ve bir yanıt gönderir. Basit olması için SQL Server = DBMS olduğunu varsayalım.
Bir markanın binek otomobilini nasıl kullanacağınızı biliyorsanız, büyük olasılıkla diğerlerini sorunsuz bir şekilde sürebileceksiniz. Sürüşün temelleri, küçük ayrıntılar dışında her yerde aynıdır. Aynı şekilde, farklı üreticilerin SQL sunucuları için - her birinin kendi SQL sürümü vardır, ancak belirtilen standartları karşılar (SQL92, SQL2003 ...). SQL92 içerisinde deyimler ve komutlar kullanacağız. Temel SQL ifadeleri aşağıdaki gruplara ayrılır:
  • Veri Tanımlama Dili ( DDL) - veri tanımları. Veritabanı yapısının ve nesnelerinin oluşturulması;
  • Veri işleme dili ( DML) - verilerle gerçek etkileşim: ekleme, silme, değiştirme ve okuma;
  • İşlem Kontrol Dili ( TCL) - işlem yönetimi;
  • Veri Kontrol Dili ( DCL) - verilere ve veritabanı yapılarına erişim haklarının yönetimi.
Bu makale dizisinde, özellikle DML'ye odaklanarak ilk üç gruba bakacağız.

JDBC

1980'lerde PC XT / AT gibi kişisel bilgisayarlar pazarı fethetti. Bu, büyük ölçüde tasarımlarının modülerliğinden kaynaklanmaktadır. Bu, kullanıcının bilgisayarının bir veya başka bir bileşenini (işlemci, video kartı, diskler vb.) oldukça basit bir şekilde değiştirebileceği anlamına gelir. Bu harika özellik bugüne kadar korunmuştur: ekran kartını değiştiriyoruz ve sürücüyü güncelliyoruz (bazen otomatik modda kendini güncelliyor). Çoğu zaman, bu tür manipülasyonlarla kötü bir şey olmaz ve mevcut programlar, yeniden yüklemeden güncellenmiş sistemle çalışmaya devam eder. Aynısı, Java'da bir DBMS ile çalışmak için de geçerlidir. SQL sunucularıyla çalışmayı standartlaştırmak için, onunla etkileşim tek bir noktadan gerçekleştirilebilir - JDBC (Java Veritabanı Bağlantısı). Paketin uygulanmasını temsil eder java.sql bir DBMS ile çalışmak için. Tüm popüler SQL sunucu satıcıları onlar için JDBC sürücülerini yayınlar. Aşağıdaki diyagramı düşünün. Uygulama, aşağıdakilerden sınıf örneklerini kullanır: java.sql... Ardından verileri almak/değiştirmek için gerekli komutları geçiyoruz. Daha öte java.sql karşısında jdbc sürücüsü DBMS ile etkileşime girer ve bitmiş sonucu bize döndürür. Başka bir üreticiden bir DBMS'ye geçmek için genellikle JDBC'yi değiştirmek ve temel ayarları yapmak yeterlidir. Programın geri kalanı değişmez.

İlk program

Gelelim pratik kısma. kullanarak bir Java projesi oluşturalım. IDE JetBrains IntelliJ FİKİR... Ultimate Edition'ın SQL ve veritabanlarıyla çalışmak için harika bir araç içerdiğini unutmayın - Veri kavrama... Ancak, çoğu kullanıcı için ödenir. Dolayısıyla bize kamu alanını eğitim amaçlı kullanmak kalıyor. IntelliJ IDEA Topluluk Sürümü... Yani: Artık DBMS'ye bağlanabiliyor ve bağlantısını kesebiliyoruz. Her adım konsola yansıtılır. Bir DBMS'ye ilk kez bağlanırken, bir veritabanı dosyası oluşturulur stockExchange.mv.db .

Kodu ayrıştırma

Gerçek kod: paket sql. demo; java'yı içe aktarın. sql. *; genel sınıf StockExchangeDB ( // Sabit bildirim bloğu genel statik son Dize DB_URL = "jdbc: h2: / c: / JavaPrj / SQLDemo / db / stockExchange"; genel statik final String DB_Driver = "org.h2.Driver"; public static void main (String args) (deneyin (Class. forName (DB_Driver); // Veritabanıyla çalışmak için bir JDBC sürücüsünün varlığını kontrol edin Bağlantı bağlantısı = DriverManager. getConnection (DB_URL); // db bağlantı Sistemi. dışarı. println ( "DBMS'ye bağlantı tamamlandı."); bağlantı. kapat (); // veritabanından bağlantıyı kes Sistem. dışarı. println ( "DBMS ile bağlantının kesilmesi tamamlandı."); ) yakalama (ClassNotFoundException e) (e. printStackTrace()); // Class.forName hatasını işle Sistem. dışarı. println ( "DBMS için JDBC sürücüsü bulunamadı!"); ) yakalama (SQLException e) (e. printStackTrace (); // DriverManager.getConnection işlenirken hata oluştu Sistem. dışarı. println ("SQL hatası!"); )))

Sabit blok:

  1. DB_Sürücüsü: Burada tanımladık isimörneğin bağlı kitaplığa tıklayarak ve yapısını mevcut projenin lib dizininde genişleterek bulunabilen sürücü.
  2. DB_URL: Veritabanımızın adresi. İki nokta üst üste ile ayrılmış verilerden oluşur:
  3. Protokol = jdbc
  4. Satıcı (üretici / isim) DBMS = h2
  5. DBMS'nin konumu, bizim durumumuzda dosyanın yolu (c: / JavaPrj / SQLDemo / db / stockExchange). Ağ DBMS'leri için, uzak sunucuların adları veya IP adresleri, TCP / UDP bağlantı noktası numaraları vb. burada ayrıca belirtilir.

Hata işleme:

Kodumuzdaki çağırma yöntemleri, not edilmesi gereken hataları döndürebilir. Bu aşamada sadece konsolda onlar hakkında bilgi veriyoruz. Bir DBMS ile çalışırken hataların çoğunlukla SQLİstisnası.

Çalışma mantığı:

  1. Class.forName(DB_Driver) - uygun bir JDBC sürücüsünün (daha önce indirip kurduğumuz) olduğundan emin olun.
  2. DriverManager.getConnection(DB_URL) - bir DBMS bağlantısı kurun. Verilen adreste JDBC, DBMS'mizin türünü ve konumunu belirleyecek ve DB ile iletişim kurmak için kullanabileceğimiz bir Bağlantı döndürecektir.
  3. bağlantı.kapat ()- DBMS ile bağlantıyı kapatın ve programdan çıkın.
Serinin bir sonraki bölümünde DDL operatörleri ve SQL veri tipleri ile tanışacağız, ayrıca veritabanımızın ilk yapısını oluşturup tablolarla dolduracağız.

Belirli bir DBMS'de kullanılan dil türüne denir. lehçeSQL. Örneğin, Oracle lehçesi denir PL/ SQL; MSSQLServer ve DB2'de lehçe uygulanır işlem yap- SQL; Interbase ve Firebird'de– isql... Her SQL lehçesi, SQL standardı ile bir dereceye kadar uyumludur, ancak farklılıkları ve belirli dil uzantıları olabilir, bu nedenle belirli bir SQL operatörünün sözdizimini bulmak için önce şuna bakmalısınız: Yardım belirli DBMS'ler.

Veritabanları ve tablolar üzerindeki işlemler için sql standardı operatörler sağlar:

Bu operatörler için SQL92 sözdizimi aşağıdadır. DBMS'deki sözdizimleri standarttan farklı olabileceğinden, laboratuvar çalışması sırasında DBMS yardım sistemine başvurmanız önerilir.

Veritabanı nesnelerinin adları (tablolar, sütunlar, vb.) alfasayısal karakterlerden ve alt çizgi karakterinden oluşabilir. Özel karakterler (@ $ #, vb.) genellikle özel bir tablo türünü (sistem, geçici vb.) belirtir. İsimlerde ulusal (Rusça) karakterler, boşluklar ve ayrılmış kelimeler kullanılması tavsiye edilmez, ancak hala kullanılıyorsa, bu tür isimler tırnak içinde ".." veya köşeli parantez [..] içinde yazılmalıdır.

Bundan sonra, SQL deyimlerinin yapılarını tanımlarken aşağıdaki tanımlamalar kullanılacaktır: yapının isteğe bağlı bölümleri köşeli parantez içinde yazılır; alternatif tasarımlar dikey bir çubukla ayrılır | ; küme parantezleri () yapının mantıksal bloklarını işaretler; üç nokta yapının önceki bölümünün birçok kez tekrarlanabileceğini gösterir. Genişletilebilir yapılar köşeli parantez içinde yazılır< >.

Veritabanı oluşturma

VERİTABANI YARAT Veri tabanı ismi

Bir veya daha fazla veritabanını kaldırma

VERİTABANI BIRAK Veri tabanı ismi[,Veri tabanı ismi…]

Mevcut veritabanını bildirme

KULLANMAK Veri tabanı ismi -- SQL Server ve MySQL'de

VERİTABANI AYARLA İsim_ temel_ veri - Firebird'de

Tablo oluşturma

TABLO OLUŞTUR Tablo ismi (

<описание_столбца> [, <sütun_açıklaması> |

<tablo_integrity_constraint>…]

< kolon AÇIKLAMASI>

Sütun adı BİR ÇEŞİT

(EYLEM YOK | CASCADE | VARSAYILAN AYARLA | NULL AYARLA)]

BİR ÇEŞİT bir sütun, standart bir veri türü (bkz. Tablo 1) veya bir alan adı (bkz. bölüm 6.2) olabilir.

Bazı DBMS'ler oluşturmanıza izin verir. hesaplanmış sütunlar (hesaplanmış sütunlar). Bunlar, değeri fiziksel bellekte saklanmayan, ancak bu sütun bildirildiğinde belirtilen formül kullanılarak sütuna her erişildiğinde DBMS sunucusu tarafından hesaplanan sanal sütunlardır. Formül, bu satırdaki diğer sütunların değerlerini, sabitleri, yerleşik işlevleri ve global değişkenleri içerebilir.

SQL Server'da hesaplanan bir sütunun açıklaması:

<описание_столбца> Sütun adı OLARAK ifade

Hesaplanan sütun açıklaması ateş kuşuşuna benziyor:

<описание_столбца> Sütun adı BİLGİLENDİRME TARAFINDAN<ifade>

MySQL 3.23, hesaplanmış sütunları desteklemez.

< >

KISITLAMA Bütünlük_kısıtlama_adı

(EŞSİZ | BİRİNCİL ANAHTAR) ( key_list_column_list)

| YABANCI ANAHTAR ( liste_ sütunlar_FK)

REFERANSLAR Tablo ismi(sütun_listesiPKK)

(EYLEM YOK | CASCADE | VARSAYILAN AYARLA | NULL AYARLA)]

(EYLEM YOK | CASCADE | VARSAYILAN AYARLA | NULL AYARLA)]

| KONTROL ET ( validation_condition)

Bazı DBMS'ler, geçici tabloların (yalnızca oturum sırasında var olan) bildirilmesine izin verir. SQL Server'da, geçici tablo adları # (yalnızca onları oluşturan kullanıcı tarafından görülebilen yerel geçici tablolar) veya ## (tüm kullanıcılar tarafından görülebilen genel tablolar) ile başlamalıdır; MySQL, geçici tablolar oluşturmak için TEMPORARY anahtar sözcüğünü kullanır, örneğin:

OLUŞTURMAKGEÇİCİTABLO… (Daha fazla sözdizimi için CREATE TABLE'a bakın).

Bir tablonun yapısını değiştirme

Mevcut tablolardaki sütunların türünü değiştirmek, sütun eklemek ve kaldırmak ve bütünlük kısıtlamaları için kullanılır.

TABLOYU DEĞİŞTİR Tablo ismi

Sütun türünü değiştirme (SQLServer ve Firebird'de)

KOLON DEĞİŞTİR Sütun adı yeni tip

Sütun türünü, adını ve kısıtlamalarını değiştirme (MySQL'de)

SÜTUNU DEĞİŞTİR Sütun adı <sütun_açıklaması>

Normal veya hesaplanmış bir sütun ekleme

| EKLE<kolon AÇIKLAMASI>

Bütünlük kısıtlaması ekleme

| EKLE

<tablo_integrity_constraint>

Sütun Silme

| DROP SÜTUN Sütun adı

Bütünlük kısıtlamasını kaldırma

| DROP KISITLAMASI Bütünlük_kısıtlama_adı

Bütünlük Kısıtlamalarını Kontrol Etmeyi Etkinleştirme veya Devre Dışı Bırakma

InMSSQLSunucusu

| (KONTROL | KONTROL YOK) KISITLAMA

{Integrity_constraint_name_list| TÜMÜ)

masa bırakmak

BIRAKMA TABLOSU Tablo ismi



Daha sonra, CREATETABLE komutuyla yeni tablolar oluştururken veya ALTERTABLE komutuyla mevcut tabloların yapısını değiştirirken bildirimsel bütünlük kısıtlamalarının nasıl bildirileceğini ele alacağız (bunlar bölüm 4.2'de daha ayrıntılı olarak açıklanmıştır).

1. Zorunlu veri kullanılabilirliği (BOŞ değerler)

NULL (sütun boş hücrelere sahip olabilir) veya NOT NULL (sütun gereklidir) kelimesiyle bildirilir. Varsayılan NULL'dur.

Tablo 7 oluşturma örneği:

OLUŞTURMAKTABLO müşteriler (

Müşteri Adı NVARCHAR(60) GEÇERSİZ DEĞİL,

Doğum tarihi TARİH BOŞ,

Telefon CHAR(12)); - ayrıca varsayılan olarak NULL

2. Varsayılan değer (VARSAYILAN)

Tablodaki her sütun için bir varsayılan değer ayarlanabilir. Bir hücre değiştirilirken yeni değeri belirtilmemişse, sunucu varsayılan değeri ekler. Varsayılan, NULL, bir sabit, hesaplanmış bir ifade veya bir sistem işlevi olabilir.

Tablo oluşturma örneğini ele alalım Emirler(Emirler). Kolon Sipariş tarihi varsayılan olarak geçerli tarihi alır ve sütun Miktar(sayı) varsayılan olarak 0'dır.

TABLO OLUŞTUR Emirler (

SiparişNum INT OLUMSUZ BOŞ, -- Sipariş numarası

Sipariş tarihi DATETIME OLUMSUZ BOŞ-- sipariş tarihi

VARSAYILAN GetDate(),

GetDate () işlevi geçerli tarihi döndürür 8

Miktar KÜÇÜK OLUMSUZ BOŞ- mal miktarı, VARSAYILAN 0);

3. Birincil anahtarları bildirme (BİRİNCİL ANAHTAR)

Tablo oluşturulduğunda, PRIMARYKEY sözcükleri ile basit bir birincil anahtar bildirilir. Örneğin,

OLUŞTURMAKTABLO Kadro ( - tablo "Çalışanlar"

TabNum INTÖNCELİKANAHTAR, - birincil anahtar

WName NVARCHAR(40) OLUMSUZBOŞ, -- AD SOYAD

... -- diğer sütunların açıklaması);

Bileşik birincil anahtar farklı şekilde bildirilir:

-- yöntem 1 (bildirimPKKtablo oluştururken)

TABLO OLUŞTUR müşteriler (

PasSeria SAYISAL(4,0)OLUMSUZ BOŞ,-- dizi pasaportlar

PasNumarası SAYISAL(6,0)OLUMSUZ BOŞ,-- oda pasaportlar

İsim NVARCHAR(40)OLUMSUZ BOŞ,

Telefon CHAR(12),

-- bileşik birincil anahtar bildirimi

KISITLAMA Clients_PK

ÖNCELİK ANAHTAR(PasSeria, PasNumber));

-- yöntem 2 (PKKtablo oluşturulduktan sonra ilan edildi)

- önce bir tablo oluşturuyoruzPKK

OLUŞTURMAK TABLO müşteriler (

PasSeria SAYISAL(4,0)OLUMSUZ BOŞ,--dizi pasaportlar

PasNumarası SAYISAL(6,0)OLUMSUZ BOŞ,--oda pasaportlar

Müşteri Adı NVARCHAR(40)OLUMSUZ BOŞ,

Telefon CHAR(12));

-- değişiklik tablolarEkle RK

DEĞİŞTİR TABLO Müşteriler

EKLE KISITLAMA Clients_PK

ÖNCELİK ANAHTAR(PasSeria, PasNumber);

4. Sütunların benzersizliği (BENZERSİZ)

Beğenmek Öncelik Anahtar bir sütunun veya sütun grubunun yinelenen değerler içeremeyeceğini, ancak PKK... UNIQUE olarak bildirilen tüm sütunlar NOTNULL olmalıdır. Basit bir benzersiz sütun bildirmeye bir örnek:

TABLO OLUŞTURöğrenciler (

SC Kodu INT ÖNCELİK ANAHTAR, - vekil RK

bilgi NVARCHAR(40) OLUMSUZ BOŞ, -- AD SOYAD

Kayıt kitabı CHAR(6) OLUMSUZ BOŞ BENZERSİZ); - öğrencinin numarası

Bileşik benzersiz alan bildirmeye bir örnek:

OLUŞTURMAK TABLO Kadro (- tablo " işçiler"

TabNum İÇ BİRİNCİ ANAHTAR, -- resmi oda

WName NVARCHAR(40) GEÇERSİZ DEĞİL, -- Ad Soyad

PasSeria SAYISAL(4,0) GEÇERSİZ DEĞİL, -- dizi pasaportlar

PasNumarası SAYISAL(6,0) GEÇERSİZ DEĞİL, -- oda pasaportlar

-- duyuru bileşik benzersiz alanlar

KISITLAMA Staff_UNQ BENZERSİZ(PasSeria, PasNumber));

5. Kısıtlamalar üzerinde anlam kolon (KONTROL)

Bu kısıtlama, sütunun mantıksal değerlerinin bir aralığını, listesini veya "maskesini" belirtmenize olanak tanır.

Tablo oluşturma örneği işçiler(İşçiler):

OLUŞTURMAKTABLO işçiler (

- personel numaraları 4 haneli

TabNum İÇ BİRİNCİ ANAHTAR

KONTROL(TabNum ARASINDA 1000 VE 9999),

İsim VARCHAR(60) GEÇERSİZ DEĞİL, -- Ad Soyad çalışan

-- zeminmektup " m" veya " F"

Köleler CHAR(1) GEÇERSİZ DEĞİL

KONTROL(Köleler İÇİNDE("m", "f")),

14 yaşından küçük olmamak

Yaş KÜÇÜK OLUMSUZ BOŞ KONTROL(Yaş> = 14),

- emeklilik sigortası belgesi sayısı (maske ile)

Emeklilik Sertifikası CHAR(14)

KONTROL(EmeklilikSert SEVMEK ""));

Bu örnek, farklı kontrol türlerini gösterir. Geçerli değerlerin aralığı, ARASINDA… VE; olağan koşullar (sütun için olduğu gibi Yaş) karşılaştırma işaretlerini kullanın =,<>, >, >=, <, <=, связанные при необходимости логическими операциямиAND,OR,NOT(например,Yaş> = 14VE Yaş<=70); для указания списка допустимых значений используется предикатINи его отрицаниеNOTIN; конструкция

SEVMEK allow_value_mask HARİÇ istisna_listesi

dize sütunları için geçerli değerlerin maskesini ayarlamak için kullanılır. Maske iki özel karakter kullanır: "%" - isteğe bağlı bir alt dize ve "_" - herhangi bir tek karakter. HARİÇ isteğe bağlıdır.

KONTROL seçim koşulunda, aynı tablonun iki sütununun ve farklı tabloların sütunlarının değerleri karşılaştırılabilir.

Bir veritabanının düzenlenmesinde çok sayıda farklı nesne yer alır. Tüm veritabanı nesneleri fiziksel veya mantıksaldır. Fiziksel nesneler, fiziksel aygıtlar (diskler) üzerindeki verilerin düzenlenmesi ile ilgilidir. Veritabanı Altyapısının fiziksel nesneleri dosyalar ve dosya gruplarıdır. Mantıksal nesneler, veritabanının özel görünümleridir. Varlık örnekleri arasında tablolar, sütunlar ve görünümler (sanal tablolar) bulunur.

İlk önce oluşturmak istediğiniz veritabanı nesnesi, veritabanının kendisidir. Veritabanı Motoru hem sistem hem de kullanıcı veritabanlarını yönetir. Kullanıcı veritabanları yetkili kullanıcılar tarafından oluşturulabilirken, sistem veritabanları VTYS kurulduğunda oluşturulur.

Veritabanı oluşturmak için kullanılan iki ana yöntem vardır. İlk yöntem, daha önce gösterildiği gibi SQL Server Management Studio Nesne Gezgini'ni kullanır ve ikincisi bir Transact-SQL ifadesi kullanır. VERİTABANI YARAT... Aşağıda, bu talimatın genel şekli ve ardından bileşenlerinin ayrıntılı bir tartışması yer almaktadır:

CREATE DATABASE db_name (file_spec1), ...] Sözdizimi Kuralları

db_name parametresi, veritabanının adıdır. Veritabanı adı maksimum 128 karakter içerebilir. Bir sistem 32.767 adede kadar veritabanını yönetebilir. Tüm veritabanları, yönetici tarafından açıkça belirtilebilen veya dolaylı olarak sistem tarafından sağlanan dosyalarda saklanır. CREATE DATABASE ifadesi şunları içeriyorsa: parametre AÇIK, tüm veritabanı dosyaları açıkça belirtilir.

Veritabanı Motoru, veri dosyalarını diskte saklar. Her dosya bir veritabanından veri içerir. Bu dosyalar dosya grupları halinde düzenlenebilir. Dosya grupları, verileri farklı disk sürücüleri arasında dağıtma ve bir veritabanının bölümlerini yedekleme ve geri yükleme yeteneği sağlar. Bu, çok büyük veritabanları için kullanışlı bir işlevdir.

file_spec1 parametresi, dosyanın belirtimini temsil eder ve mantıksal dosya adı, fiziksel ad ve boyut gibi ek seçenekleri kendisi içerebilir. BİRİNCİL parametre sistem tablolarını ve veritabanıyla ilgili diğer önemli dahili bilgileri içeren ilk (ve en önemli) dosyayı gösterir. PRIMARY parametresi yoksa, belirtimde belirtilen ilk dosya birincil dosya olarak kullanılır.

Veritabanını oluşturmak için kullanılan Veritabanı Motoru hesabına denir. veritabanı sahibi... Bir veritabanının, her zaman hesapla eşleşen yalnızca bir sahibi olabilir. Veritabanı sahibine ait hesabın özel bir dbo adı... Bu ad her zaman kullanıcının sahip olduğu veritabanı için kullanılır.

Seçenek OTURUM AÇ dbo parametresi, veritabanı işlem günlüğü için fiziksel depolama olarak bir veya daha fazla dosyayı belirtir. OTURUM AÇ seçeneği yoksa, her veritabanında en az bir işlem günlüğü olması gerektiğinden, veritabanı işlem günlüğü yine de oluşturulur. (Veritabanı Motoru, veritabanında yaptığı tüm değişikliklerin kaydını tutar. Sistem tüm bu kayıtları, özellikle bir işlem öncesi ve sonrasındaki değerleri, işlem günlükleri adı verilen bir veya daha fazla dosyada saklar. Sistemdeki her bir veritabanının bakımını yapar. kendi log. işlemleri.)

Seçenek HARMANLA veritabanı için varsayılan sıralama düzenini belirtir. COLLATE seçeneği belirtilmezse, veritabanına, veritabanı sisteminin varsayılan sıralama düzeniyle tamamen aynı olan bir varsayılan sıralama düzeni atanır.

Seçenek EK İÇİN veritabanının var olan bir dosya kümesini bağlayarak oluşturulduğunu belirtir. Bu seçeneği kullanırken, ilk birincil dosyayı açıkça belirtmelisiniz. Seçenek ATTACH_REBUILD_LOG İÇİN veritabanının var olan bir işletim sistemi dosya kümesi eklenerek oluşturulduğunu belirtir.

Veritabanı Motoru, model veritabanı şablonunu kullanarak yeni bir veritabanı oluşturur. Model veritabanının özellikleri, sistem yöneticisinin kişisel kavramlarına uyacak şekilde özelleştirilebilir. Her kullanıcı veritabanında belirli bir veritabanı nesnesi bulunacaksa, bu nesne önce model veritabanında oluşturulmalıdır.

Aşağıdaki örnek, daha fazla ayrıntı olmadan basit bir veritabanı oluşturma kodunu gösterir. Bu kodu yürütmek için, onu Management Studio Sorgu Düzenleyicisine girin ve .

KULLANIM ustası; VERİTABANI OLUŞTUR SampleDb;

Örnekteki kod, SampleDb adlı bir veritabanı oluşturur. CREATE DATABASE ifadesinin bu kısa biçimi mümkündür çünkü hemen hemen tüm parametreleri varsayılan değerlere sahiptir. Varsayılan olarak, sistem iki dosya oluşturur. Veri dosyası SampleDb mantıksal adına sahiptir ve orijinal olarak 2 MB boyutundadır. Ve işlem günlüğü dosyası SampleDb_log mantıksal adına sahiptir ve orijinal olarak 1 MB boyutundadır. (Her iki dosyanın boyutları ve yeni veritabanının diğer özellikleri, ilgili model veritabanı özelliklerine bağlıdır.)

Aşağıdaki örnek, açık veritabanı ve işlem günlüğü dosyaları ile bir veritabanının nasıl oluşturulacağını gösterir:

KULLANIM ustası; VERİTABANI PROJELERİNİ OLUŞTUR AÇIK (NAME = projeler_dat, DOSYAADI = "D: \ projeler.mdf", SIZE = 10, MAXSIZE = 100, FILEGROWTH = 5) OTURUM AÇ (NAME = projeler_log, DOSYAADI = "D: \ projeler.ldf", BOYUT = 40, MAXSIZE = 100, DOSYA = 10);

Örnekte oluşturulan veritabanı Projeler olarak adlandırılmıştır. PRIMARY seçeneği belirtilmediği için ilk dosyanın birincil dosya olduğu varsayılır. Bu dosya, project_dat mantıksal adına sahiptir ve project.mdf disk dosyasına kaydedilir. Bu dosyanın orijinal boyutu 10 MB'dir. Gerekirse, sistem bu dosyaya 5 MB'lik artışlarla ek disk alanı ayırır. belirtmezseniz seçenek MAXSIZE veya bu seçenek SINIRSIZ olarak ayarlanırsa, maksimum dosya boyutu artırılabilir ve yalnızca tüm disk alanının boyutuyla sınırlandırılır. (Dosya boyutunun birimi, sırasıyla kilobayt, terabayt ve megabayt anlamına gelen KB, TB ve MB son eki kullanılarak belirtilebilir. Varsayılan boyut birimi MB'dir, yani megabayttır.)

Veri dosyasına ek olarak, project_log mantıksal adı ve project.ldf fiziksel adı olan bir işlem günlüğü dosyası oluşturulur. İşlem günlüğü dosyası belirtimi için tüm seçenekler, veri dosyası belirtimi için karşılık gelen seçeneklerle aynı adlara ve değerlere sahiptir.

Transact-SQL'de, kullanarak belirli bir veritabanı bağlamını (yani, geçerli veritabanı olarak hangi veritabanının kullanılacağını) belirtebilirsiniz. KULLANIM talimatları... (Alternatif olarak, SQL Server Management Studio araç çubuğundaki Veritabanı açılır listesinden istediğiniz veritabanının adını seçin.)

Sistem yöneticisi, CREATE LOGIN deyimini veya ALTER LOGIN deyimini kullanarak mevcut varsayılan veritabanını bir kullanıcıya atayabilir. Bu durumda, kullanıcıların farklı bir veritabanı kullanmak istemedikleri sürece USE deyimini çalıştırmaları gerekmez.

Veritabanının anlık görüntüsünü almak

Yeni bir veritabanı oluşturmaya ek olarak, CREATE DATABASE ifadesi mevcut bir veritabanının (kaynak veritabanı) anlık görüntüsünü almak için kullanılabilir. Bir veritabanı anlık görüntüsü, anlık görüntünün alındığı zamandaki orijinal veritabanının işlemsel olarak tutarlı bir kopyasıdır. Veritabanının anlık görüntüsünü almak için deyimin sözdizimi aşağıdadır:

Bu nedenle, veritabanının anlık görüntüsünü oluşturmak için CREATE DATABASE ifadesine yan tümceyi eklemeniz gerekir. ANLIK GÖRÜNTÜ OLARAK... Aşağıdaki örnek, SampleDb veritabanının anlık görüntüsünün nasıl alınacağını ve bunun D: \ temp klasöründe nasıl saklanacağını gösterir. (Bu örneği çalıştırmadan önce bu dizinin oluşturulması gerekir.)

KULLANIM ustası; CREATE DATABASE SampleDb ON (NAME = "SampleDb_Data", FILENAME = "D: \ temp \ snapshot_DB.mdf") SampleDb'NİN ANLIK GÖRÜNTÜ OLARAK;

Mevcut bir veritabanının anlık görüntüsü, kaynak veritabanının salt okunur bir kopyasıdır ve bu veritabanının kopya zamanındaki durumunu yansıtır. (Bu şekilde, mevcut bir veritabanının birden çok anlık görüntüsünü oluşturabilirsiniz.) Anlık görüntü dosyası (yukarıdaki örnekte, D: \ temp \ snapshot_DB.mdf'dir) yalnızca kaynak veritabanının değiştirilen verilerini içerir. Bu nedenle, bir anlık görüntü oluşturmak için kodunuzda, kaynak veritabanındaki her bir veri dosyasının mantıksal adının yanı sıra karşılık gelen fiziksel adları belirtmeniz gerekir.

Anlık görüntü yalnızca değiştirilmiş verileri içerdiğinden, her anlık görüntü, karşılık gelen kaynak veritabanının gerektirdiği disk alanının yalnızca küçük bir bölümünü gerektirir.

Veritabanı anlık görüntüleri yalnızca NTFS (Yeni Teknoloji Dosya Sistemi) dosya sistemine sahip disklerde oluşturulabilir. yalnızca bu dosya sistemi, anlık görüntüleri depolamak için kullanılan seyrek dosya teknolojisini destekler.

Veritabanı anlık görüntüleri, verileri bozulmadan korumak için yaygın olarak bir mekanizma olarak kullanılır.

Veritabanlarını ekleme ve ayırma

Tüm veritabanı verileri ayrılabilir ve daha sonra aynı veya farklı bir veritabanı sunucusuna yeniden eklenebilir. Bu işlevsellik, bir veritabanını taşırken kullanılır.

Bir veritabanını bir veritabanı sunucusundan ayırmak için şunu kullanın: sp_detach_db sistem prosedürü... (Ayrılacak veritabanı tek kullanıcı modunda olmalıdır.)

Bir veritabanı eklemek için FOR ATTACH yan tümcesi ile CREATE DATABASE deyimini kullanın. Veritabanının eklenmesi için gerekli tüm dosyalar mevcut olmalıdır. Herhangi bir veri dosyasının orijinal yoldan farklı bir yolu varsa, bu dosya için geçerli yol belirtilmelidir.

Böylece, MySQL'i kurdunuz ve SQL dilinde ustalaşmaya başlıyoruz. Veritabanının Temelleri üzerine Ders 3'te, bir forum için küçük bir veritabanının kavramsal bir modelini oluşturduk. MySQL DBMS'de uygulamanın zamanı geldi.

Bunu yapmak için önce MySQL sunucusunu başlatmanız gerekir. Sistem menüsüne gidin Başlat - Programlar - MySQL - MySQL Sunucusu 5.1 - MySQL Komut Satırı İstemcisi. Şifrenizi girmenizi isteyen bir pencere açılacaktır.

Sunucuyu kurarken bir şifre belirlemediyseniz klavyede Enter tuşuna basın veya yaptıysanız bir şifre belirleyin. mysql> istemini bekliyoruz.

Forum diyeceğimiz bir veritabanı oluşturmamız gerekiyor. Bunu yapmak için SQL'in bir operatörü vardır. veritabanı yarat

Veritabanı veritabanı_adı oluştur;


Bir veritabanı adının maksimum uzunluğu 64 karakterdir ve harfleri, sayıları, "_" sembolünü ve "$" sembolünü içerebilir. Ad bir sayı ile başlayabilir, ancak tamamen sayı olmamalıdır. Veritabanına yapılan herhangi bir sorgu noktalı virgülle biter (bu karaktere sınırlayıcı denir). İsteği aldıktan sonra sunucu bunu yürütür ve başarılı olursa "Sorgu Tamam ..." mesajını verir.

Öyleyse, forum veritabanını oluşturalım:

Enter tuşuna basın ve "Sorgu Tamam ..." yanıtına bakın, bu, veritabanının oluşturulduğu anlamına gelir:

Bu kadar basit. Şimdi bu veritabanında 3 tablo oluşturmamız gerekiyor: konular, kullanıcılar ve gönderiler. Ancak bunu yapmadan önce sunucuya hangi veritabanında tablolar oluşturduğumuzu söylememiz gerekiyor, yani. çalışmak için bir veritabanı seçmeniz gerekir. Bunu yapmak için operatörü kullanın. kullanmak... İş için bir veritabanı seçme sözdizimi aşağıdaki gibidir:

dbname'yi kullanın;


Öyleyse, iş için forum veritabanımızı seçelim:

Enter tuşuna basın ve "Veritabanı değişti" yanıtına bakın - veritabanı seçilir.

Her MySQL oturumunda bir veritabanı seçmek gereklidir.

SQL'de tablolar oluşturmak için bir operatör vardır. tablo oluştur... Veritabanı oluşturma aşağıdaki sözdizimine sahiptir:

tablo_adı tablosu oluşturun (ilk_sütun_adı türü, ikinci_sütun_adı türü, ..., son_sütun_adı türü);


Tablo ve sütun adları için gereksinimler, veritabanı adlarıyla aynıdır. Her sütunun kendisiyle ilişkilendirilmiş belirli bir veri türü vardır ve bu, sütunda depolanabilecek bilgilerin doğasını sınırlar (örneğin, sayısal bir alana harflerin girilmesini engeller). MySQL birkaç veri türünü destekler: sayısal, dize, takvim ve hiçbir bilgiyi ifade etmeyen özel NULL türü. Bir sonraki derste veri türleri hakkında detaylı olarak konuşacağız ama şimdilik tablolarımıza dönelim. İçlerinde yalnızca iki veri türümüz var - tamsayı değerleri (int) ve dizeler (metin). O halde ilk tabloyu oluşturalım - Konular:

Enter tuşuna basın - tablo oluşturulur:

Bu nedenle, üç sütunlu bir konu tablosu oluşturduk:
id_topic int - konu kimliği (tamsayı değeri),
konu_adı metni - konu adı (dize),
id_author int - yazar kimliği (tam sayı değeri).

Benzer şekilde, kalan iki tabloyu oluşturalım - kullanıcılar ve gönderiler:

Böylece forum veritabanını oluşturduk ve içinde üç tablo var. Şimdi bunu hatırlıyoruz, ancak veritabanımız çok büyükse, tüm tabloların ve sütunların adlarını akılda tutmak imkansızdır. Bu nedenle, hangi veritabanlarına sahip olduğumuzu, içinde hangi tabloların bulunduğunu ve bu tabloların hangi sütunları içerdiğini görebilmemiz gerekir. SQL'de bunun için birkaç operatör vardır:

veritabanlarını göster- mevcut tüm veritabanlarını göster,

tabloları göster- mevcut veritabanının tablolarının bir listesini göster (önce operatörü kullanarak seçmelisiniz kullanmak),

tablo_adı tanımla- belirtilen tablonun sütunlarının açıklamasını göster.

Hadi deneyelim. Mevcut tüm veritabanlarına bakıyoruz (hala bir tane var - forumum var, 30 tane var ve hepsi bir sütunda listeleniyor):

Şimdi forum veritabanı tablolarının listesine bakalım (bunun için önce onu seçmelisiniz), her sorgudan sonra Enter tuşuna basmayı unutmayın:

Cevapta üç tablomuzun isimlerini görüyoruz. Şimdi sütunların açıklamasını görelim, örneğin konular tablosu:

İlk iki sütun bize tanıdık geliyor - bunlar isim ve veri türü, geri kalanının değerleri henüz bulunamadı. Ama önce, hala hangi veri türlerinin olduğunu, nelerin ve ne zaman kullanılması gerektiğini öğreniyoruz.

Ve bugün son operatörü ele alacağız - düşürmek, tabloları ve veritabanlarını bırakmanıza izin verir. Örneğin, konu tablosunu kaldıralım. İki adım önce iş için forum veritabanını seçtiğimizden, şimdi onu seçmenize gerek yok, sadece şunu yazabilirsiniz:

Tabloyu bırak tablo_adı;


ve Enter'a basın.

Şimdi veritabanımızdaki tabloların listesine tekrar bakalım:

Tablomuz gerçekten silindi. Şimdi forum veritabanının kendisini silelim (silin, pişman olmayın, yine de yeniden yapılması gerekecek). Bunu yapmak için şunu yazın:

Veritabanı veritabanı_adı bırakın;


ve Enter'a basın.

Ve mevcut tüm veritabanları için bir istekte bulunarak bundan emin olun:

Muhtemelen tek bir veritabanınız yok, 30 yerine 29'um var.

Hepsi bugün için. Veritabanlarının ve tabloların nasıl oluşturulacağını, silineceğini ve mevcut veri tabanları, tablolar ve açıklamaları hakkında bilgi almayı öğrendik.

Yerel bir Microsoft SQL Server veritabanı oluşturma örneğiMS Visual Studio

Bu konu, MS Visual Studio kullanarak SQL Server gibi bir veritabanı oluşturma sorununun çözümünü gösterir. Aşağıdaki konular ele alınmaktadır:

  • MS Visual Studio'da Sunucu Gezgini penceresiyle çalışın;
  • SQL Server Veritabanı gibi yerel bir veritabanı oluşturmak;
  • veritabanında tablolar oluşturma;
  • tablo yapılarını düzenleme;
  • veritabanı tablolarını birbirine bağlamak;
  • MS Visual Studio kullanarak tablolara veri girme.

Görev

MS Visual Studio araçlarını kullanarak Education adlı bir MS SQL Server veritabanı oluşturun. Veritabanı, Öğrenci ve Oturum olmak üzere iki tablo içerir. Tablolar bazı alanlarla birbirleriyle ilişkilidir.

İlk tablonun yapısı "Öğrenci".

İkinci tablonun yapısı “Oturum”.

Verim

1. MS Visual Studio'yu indirin.

2. EtkinleştirpencereSunucu Gezgini.

Veritabanlarıyla çalışmak için Microsoft, hafif bir veritabanı sunucusu olan Microsoft SQL Server'ı sunar. Microsoft SQL Server'ın farklı sürümleri vardır, örneğin: Microsoft SQL Server 2005, Microsoft SQL Server 2008, Microsoft SQL Server 2014 ve diğerleri.

Bu sürümleri www.msdn.com adresindeki Microsoft web sitesinden indirebilirsiniz.

Bu sunucu, veritabanlarıyla çalışmak için mükemmeldir. Ücretsizdir ve SQL Server Yönetim Aracını kullanarak veritabanları oluşturmak ve yönetmek için grafiksel bir arayüze sahiptir.

Her şeyden önce, veritabanını oluşturmadan önce Server Explorer yardımcı programını etkinleştirmeniz gerekir. Bunu yapmak için MS Visual Studio'da aramanız gerekir (Şekil 1)

Görünüm -> Sunucu Gezgini

Pirinç. 1. Sunucu Gezgini'ni Aramak

Çağrıldığında, Sunucu Gezgini penceresi, Şekil 2'de gösterildiği gibi yaklaşık bir görünüme sahip olacaktır.

Pirinç. 2. Sunucu Gezgini penceresi

3. "Eğitim" veri tabanının oluşturulması.

Microsoft SQL Server Veri Sağlayıcısına dayalı yeni bir veritabanı oluşturmak için Veri Bağlantıları düğümüne tıklayın ve ardından “ Yeni SQL Server Veritabanı Oluştur..."(Şekil 3).

Pirinç. 3. SQL Server veritabanı oluşturmak için komutu çağırma

Sonuç olarak, pencere " Yeni SQL Sunucu Veritabanı Oluştur"(Şek. 4).

Pencere ("Sunucu Adı" alanında) bilgisayarınızda kurulu olan yerel sunucunun adını gösterir. Bizim durumumuzda bu isim “SQLEXPRESS”.

"Yeni veritabanı adı:" alanı, oluşturulacak veritabanının adını içerir. Bizim durumumuzda, bu Eğitim adıdır.

Windows Yetkilendirmesini Kullan seçeneğini değiştirmeden bırakın ve Tamam'ı tıklayın.

Pirinç. 4. MS Visual Studio 2010 kullanarak yeni bir SQL Server 2008 Express veritabanı oluşturma

Gerçekleştirilen işlemlerden sonra Server Explorer penceresi Şekil 5'teki gibi bir form alacaktır.

sasha-pc \ sqlexpress.Education.dbo

Pirinç. 5. Eğitim veritabanını ekledikten sonra Sunucu Gezgini penceresi

4. Eğitim veri tabanının nesneleri.

Eğitim veritabanını genişletirseniz ("+" işareti), aşağıdaki ana nesnelerin bir listesini görebilirsiniz:

  • Veritabanı Diyagramları - veritabanı diyagramları. Diyagramlar, veritabanı tabloları arasındaki ilişkileri, farklı tabloların alanları arasındaki ilişkileri vb. gösterir;
  • Tablolar - veritabanı verilerini tutan tablolar;
  • Görünümler - görünümler. Görünümler ve tablolar arasındaki fark, veritabanı tablolarının veri içermesi, veri görünümlerinin içermemesi ve içeriğin diğer tablolardan veya görünümlerden alınmasıdır;
  • Saklı yordamlar saklı yordamlardır. Bir veritabanıyla çalışırken ek esneklik sağlayan bir grup ilgili SQL ifadesidir.

5. Öğrenci tablosunun oluşturulması.

Şu anda Eğitim veritabanı tamamen boştur ve herhangi bir nesne (tablolar, saklı prosedürler, görünümler vb.) içermez.

Tablo oluşturmak için içerik menüsünü çağırmanız (sağ tıklama) ve “Yeni Tablo Ekle” komutunu seçmeniz gerekir (Şekil 6).

Pirinç. 6. Yeni tablo ekleme komutu

Veri menüsü komutlarını kullanarak bir veritabanı tablosu eklemek için başka bir seçenek daha vardır:

Veri -> Yeni Ekle -> Tablo

Pirinç. 7. Yeni bir tablo eklemek için alternatif seçenek

Sonuç olarak, üç sütun içeren bir tablo eklemek için bir pencere açılacaktır (Şekil 8). İlk “Sütun Adı” sütununda, veritabanı tablosunun ilgili alanının adını girmeniz gerekir. İkinci “Veri Türü” sütununda bu alanın veri türünü girmeniz gerekir. Üçüncü sütun "Boşlara İzin Ver", alanda veri olmaması olasılığı hakkındaki seçeneği belirtir.

Pirinç. 8. Yeni bir tablo oluşturmak için pencere

Tablo düzenleyiciyi kullanarak Öğrenci tablosunu Şekil 9'daki gibi oluşturmanız gerekir. Tablonun adı kapatıldığında belirtilmelidir.

Tablo düzenleyicide, Sütun Özellikleri penceresinde alan özelliklerini ayarlayabilirsiniz. Bir dizenin (nvchar) uzunluğunu karakter olarak ayarlamak için, Sütun Özellikleri penceresinde bir Uzunluk özelliği bulunur. Bu özellik için varsayılan değer 10'dur.

Pirinç. 9. Öğrenci masası

Bir sonraki adım, anahtar alanını ayarlamaktır. Bu, Num_book alanının içerik menüsünden “Birincil Anahtarı Ayarla” komutu çağrılarak yapılır. Anahtar alanı kullanılarak tablolar arası ilişkiler kurulacaktır. Bizim durumumuzda, anahtar alan not defteri numarasıdır.

Pirinç. 10. Anahtar alanını ayarlama

Birincil anahtarı ayarladıktan sonra tablo penceresi Şekil 11'de gösterildiği gibi görünecektir.

Pirinç. 11. Final oluşumundan sonra öğrenci tablosu

Şimdi masayı kapatabilirsiniz. Tabloyu kaydetme penceresinde adını ayarlamanız gerekir - Öğrenci (Şek. 12).

Pirinç. 12. Öğrenci tablosunun adının girilmesi

6. Oturum tablosunun oluşturulması.

Öğrenci tablosu oluşturma örneğini takiben, Oturum tablosu oluşturulur.

Şekil 13, son formasyondan sonraki Oturum tablosunun görünümünü göstermektedir. Birincil Anahtar, Num_book alanında ayarlanır. Tablo adı Oturum tarafından verilir.

Pirinç. 13. Oturum tablosu

Tamamlanan adımlardan sonra, Sunucu Gezgini penceresi Öğrenci ve Oturum olmak üzere iki tablo görüntüleyecektir.

Böylece veritabanına istenilen sayıda tablo eklenebilir.

7. Tabloların yapısını düzenleme.

Bir veritabanı tablosunun yapısını değiştirmeniz gereken zamanlar vardır.

MS Visual Studio'da veritabanı tablolarında değişiklik yapmak için öncelikle "Değişiklikleri Kaydetmeyi Önle" seçeneğinin işaretini kaldırmanız gerekir. tablonun yeniden oluşturulmasını gerektiren”Şekil 14'te gösterildiği gibi. Aksi takdirde, MS Visual Studio önceden oluşturulmuş tablodaki değişiklikleri engeller. Şekil 14'te gösterilen Seçenekler penceresi, Araçlar menüsünden aşağıdaki sırayla çağrılır:

Araçlar -> Seçenekler -> Veritabanı Araçları -> Tablo ve Veritabanı Tasarımcıları

Pirinç. 14. Seçenek “ Tablonun yeniden oluşturulmasını gerektiren değişiklikleri kaydetmeyi engelle

Konfigürasyondan sonra tablonun yapısını değiştirebilirsiniz. Bunun için seçilen tablo için çağrılan içerik menüsünden “Tablo Tanımını Aç” komutunu (Şekil 15) kullanın (sağ tıklayın).

Pirinç. 15. “Tablo Tanımını Aç” komutunu çağırma

Bu komut ayrıca Veri menüsünde bulunur:

Veri -> Tablo Tanımını Aç

Öncelikle tablo seçilmelidir.

8. Tablolar arasında ilişki kurma.

Problemin durumuna göre tablolar birbirine Num_book alanı ile bağlanır.

Tablolar arasında bir ilişki oluşturmak için öncelikle şunlara ihtiyacınız vardır (Şekil 16):

  • Veritabanı Şeması nesnesini seçin;
  • bağlam menüsünden (veya Veri menüsünden) Yeni Diyagram Ekle komutunu seçin.

Pirinç. 16. Yeni bir diyagram eklemek için komutu çağırma

Sonuç olarak, yeni bir diyagram eklemek için Tablo Ekle penceresi açılacaktır (Şekil 17). Bu pencerede sırasıyla Session ve Student olmak üzere iki tablo seçip Add butonuna tıklamanız gerekmektedir.

Pirinç. 17. Diyagrama tablo ekleme penceresi

Pirinç. 18. Öğrenci ve Oturum Tablolarını şemaya ekledikten sonra

Tablolar arasında ilişki kurmaya başlamak için Student tablosunun Num_book alanına tıklamanız ve ardından (fare düğmesini bırakmadan) onu Session tablosunun Num_book alanına sürüklemeniz gerekir.

Sonuç olarak, iki pencere sırayla açılacaktır: Tablolar ve Sütunlar (Şek. 19) ve Yabancı Anahtar İlişkisi (Şek. 20), burada her şeyi olduğu gibi bırakmanız ve seçiminizi OK ile onaylamanız gerekir.

Tablolar ve Sütunlar penceresinde ilişkinin adını (FK_Session_Student) ve ebeveyn (Öğrenci) ve alt tabloların adlarını belirtirsiniz.

Pirinç. 19. Tablolar ve Sütunlar penceresi

Pirinç. 20. İlişki özelliklerini ayarlama penceresi

Yapılan işlemlerden sonra tablolar arasındaki ilişki kurulacaktır (Şekil 21).

Pirinç. 21. Öğrenci ve Oturum tabloları arasındaki ilişki

Bir grafiğin kaydedilmesi, bir tablonun kaydedilmesiyle aynı şekilde yapılır. Diyagramın adı sizin takdirinize bağlı olarak seçilmelidir (örneğin, Diyagram1).

Diyagramın adını belirledikten sonra, seçiminizi onaylamanız gereken Kaydet penceresi açılacaktır (Şekil 22).

Pirinç. 22. Tablolardaki değişiklikleri kaydetme onayı

9. Tablolara veri girme.

Microsoft Visual Studio, verileri doğrudan veritabanı tablolarına girmenize olanak tanır.

Bizim durumumuzda bağlantı kurulurken (Şekil 19), Student tablosu birincil (Primary Key Table) olarak seçilir. Bu nedenle, önce bu belirli tablonun hücrelerine veri girmeniz gerekir. Önce Session tablosuna veri girmeye çalışırsanız, sistem bu girişi ilgili mesajın çıkışıyla engeller.

Öğrenci tablosuna veri girme modunu çağırmak için, bağlam menüsünden (sağ tıklama) veya Veri menüsünden (Şekil 23) Tablo Verilerini Göster komutunu çağırmanız gerekir.

Pirinç. 23. Tablo Veri Komutunu Göster

Giriş verilerini girmeniz gereken bir pencere açılacaktır (Şek. 24).

Pirinç. 24. Öğrenci tablosuna veri girme

Öğrenci tablosuna verileri girdikten sonra, oturum tablosuna verileri girmeniz gerekir.

Session tablosunun Num_book alanına veri girerken Student tablosunun Num_book alanına girilen değerlerin birebir aynısını girmelisiniz (çünkü bu alanlar birbiriyle ilişkilidir).

Örneğin, Öğrenci tablosunun Sayı_book alanı değerleri içeriyorsa “101”, “102”, “103” (bkz. Şekil 24), ardından bu değerler Session tablosunun Num_book alanına girilmelidir. Farklı bir değer girmeye çalışırsanız, sistem yaklaşık olarak aşağıdaki pencereyi görüntüleyecektir (Şek. 25).

Pirinç. 25. Öğrenci ve Oturum ilgili tabloların veri girişi ile ilgili hata mesajı

Girilen verileri içeren Oturum tablosu Şekil 26'da gösterilmektedir.

Microsoft SQL Sunucusu 005 - Microsoft Visual Studio'da yerel bir Microsoft SQL Server veritabanı için bir "* .mdf" dosyası oluşturma örneği