SQL'de Veritabanları ve Tabloları Oluşturma

Veritabanını Yaratmak

Yapılandırılmış Sorgu Dili ile veritabanları ve tablolar oluşturmaya hazır mısınız? Bu makalede, tabloları CREATE DATABASE ve CREATE TABLE komutları ile el ile oluşturma işlemini inceliyoruz . SQL'de yeniyseniz, önce SQL Temel Yazıları makalemizi incelemek isteyebilirsiniz.

İş gereksinimleri

Klavyede oturmadan önce, müşterinin gereksinimlerini sağlam bir şekilde anladığımızdan emin olmalıyız. Bu bilgiyi elde etmenin en iyi yolu nedir? Elbette müşteriyle konuşmak! XYZ İnsan Kaynakları Direktörü ile görüştükten sonra, bir widget satış şirketi olduklarını ve öncelikle satış personeli ile ilgili bilgileri takip etmekle ilgilendiklerini öğrendik.

XYZ Corporation, satış güçlerini her biri bireysel satış temsilcileri tarafından kapsanan birçok bölgeye ayrılmış olan doğu ve batı bölgelerine ayırır. İK departmanı, her çalışanın kapsadığı bölgeyi ve her çalışanın maaş bilgilerini ve denetleyici yapısını izlemek ister. Bu gereksinimleri karşılamak için, bu sayfadaki Varlık-İlişki diyagramında gösterilen üç tablodan oluşan bir veritabanı tasarladık.

Veritabanı Platformu Seçme

Yapısal Sorgu Dili (SQL) üzerine kurulu bir veritabanı yönetim sistemi (veya DBMS) kullanmaya karar verdik. Bu nedenle, tüm veritabanı ve tablo oluşturma komutlarımız, akılda standart ANSI SQL ile yazılmalıdır.

Ek bir avantaj olarak, ANSI uyumlu SQL kullanarak bu komutların Oracle ve Microsoft SQL Server dahil olmak üzere SQL standardını destekleyen herhangi bir DBMS üzerinde çalışmasını sağlayacaktır. Henüz veritabanınız için bir platform seçmediyseniz, Veritabanı Yazılım Seçenekleri makalesi sizi seçim sürecinden geçirir.

Veritabanını Yaratmak

İlk adımımız veritabanının kendisidir. Birçok veritabanı yönetim sistemi, bu adımda veritabanı parametrelerini özelleştirmek için bir dizi seçenek sunar, ancak veritabanımız yalnızca bir veritabanının basit bir şekilde oluşturulmasına izin verir. Tüm komutlarımızda olduğu gibi, özel sisteminiz tarafından desteklenen gelişmiş parametrelerin gereksinimlerinizi karşılayıp karşılamadığını belirlemek için DBMS'nizin belgelerine başvurmak isteyebilirsiniz. Veritabanımızı kurmak için CREATE DATABASE komutunu kullanalım:

VERİTABANI personelini CREATE

Yukarıdaki örnekte kullanılan büyük harf kullanımına dikkat edin. SQL programcıları arasında, "personel" veritabanı adı gibi kullanıcı tanımlı adlar için tüm küçük harfleri kullanırken "CREATE" ve "DATABASE" gibi SQL anahtar sözcükleri için tüm büyük harfleri kullanmaları yaygın bir uygulamadır. Bu sözleşmeler kolay okunabilirlik sağlar.

Veritabanımız için tablo oluştururken bu eğiticiyi okumaya devam edin.

Daha Fazlası

Yapısal Sorgu Dili hakkında daha fazla bilgi edinmek isterseniz, SQL'e Giriş'i okuyun veya ücretsiz Öğrenme SQL e-posta kursumuza kaydolun.

Veritabanımızı tasarlayıp oluşturduğumuza göre, XYZ Corporation'ın personel verilerini saklamak için kullanılan üç tabloyu oluşturmaya hazırız. Bu öğreticinin önceki bölümünde tasarladığımız tabloları uygulayacağız.

İlk Tablomuzu Oluşturmak

İlk masamız şirketimizin her çalışanı için kişisel verilerden oluşmaktadır. Her çalışanın adını, maaşını, kimliğini ve yöneticisini eklememiz gerekir. Gelecekte veri arayışını ve sıralamasını basitleştirmek için son ve ilk isimleri ayrı alanlara ayırmak iyi tasarım pratiğidir. Ayrıca, her çalışanın kaydında yöneticinin çalışan kimliğine bir referans ekleyerek her bir çalışanın yöneticisini takip edeceğiz. Önce istenen çalışan masasına bir göz atalım.

ReportsTo özniteliği, her çalışan için yönetici kimliğini saklar. Gösterilen örnek kayıtlardan Sue Scampi'nin Tom Kendall ve John Smith'in yöneticisi olduğunu söyleyebiliriz. Ancak, veritabanında , NULL girişinde belirtildiği gibi, Sue'nun yöneticisindeki hiçbir bilgi yoktur.

Şimdi personel veritabanımızda tabloyu oluşturmak için SQL kullanabiliriz. Bunu yapmadan önce, bir USE komutu yayınlayarak doğru veritabanında olduğumuzdan emin olalım:

KULLANIM personeli;

Alternatif olarak, "DATABASE personeli;" Komut aynı işlevi yerine getirir. Şimdi çalışanlar masamızı oluşturmak için kullanılan SQL komutuna bir göz atabiliriz:

TABLO çalışanlarını CREATE (staffid INTEGER NOT NULL, soyadı VARCHAR (25) NOT NULL, firstname VARCHAR (25) NOT NULL, INTEGER NULL raporları);

Yukarıdaki örnekte olduğu gibi, programlama kuralı, SQL anahtar sözcükleri ve kullanıcı adı verilen sütunlar ve tablolar için küçük harfler için tüm büyük harfleri kullandığımızı belirtir. Yukarıdaki komut ilk başta kafa karıştırıcı gibi görünebilir, ama aslında arkasında basit bir yapı var. İşte bazı şeyleri temizleyebilecek genelleştirilmiş bir bakış:

TABLO table_name CREATE (attribute_name veri türü seçenekleri ..., attribute_name veri türü seçenekleri);

Öznitelikler ve Veri Tipleri

Önceki örnekte, tablo adı çalışanlardır ve dört özniteliği içerir: workerid, lastname, firstname ve reportsto. Veri türü, her alanda saklamak istediğimiz bilgi türünü belirtir. Çalışan kimliği basit bir tamsayıdır, bu yüzden INTEGER veri türünü hem çalışan alanı hem de rapor alanı için kullanacağız. Çalışan isimleri değişken uzunluktaki karakter dizileri olacak ve herhangi bir çalışanın 25 karakterden daha uzun bir ad veya soyadı olmasını beklemiyoruz. Bu nedenle, bu alanlar için VARCHAR (25) tipini kullanacağız.

NULL Değerler

CREATE ifadesinin seçenekler alanında NULL veya NOT NULL değerini de belirtebiliriz. Bu, veritabanına satır eklerken bu öznitelik için NULL (veya boş) değerlere izin verilip verilmediğini basitçe veritabanına bildirir. Örneğimizde İK departmanı, her çalışan için bir çalışan kimliği ve tam adın saklanmasını gerektirmektedir. Ancak, her çalışanın bir yöneticisi yoktur - CEO hiç kimseye rapor vermez! - Yani bu alanda NULL girişine izin veriyoruz. NULL öğesinin varsayılan değer olduğunu ve bu seçeneğin atlatılmasının bir öznitelik için NULL değerlerine dolaylı olarak izin vereceğini unutmayın.

Kalan Tabloları Oluşturmak

Şimdi bölge tablosuna bir bakalım. Bu verilere hızlıca baktığımızda, bir tamsayı ve iki değişken uzunluklu dizeleri saklamamız gerektiği anlaşılıyor. Önceki örneğimizde olduğu gibi, Bölge Kimliğinin 25 karakterden fazlasını tüketmesini beklemiyoruz. Ancak, bölgelerimizden bazılarının daha uzun adları var. Bu nedenle, söz konusu özelliğin izin verilen uzunluğunu 40 karaktere genişleteceğiz. İlgili SQL'e bakalım:

TABLO bölgeleri OLUŞTURMA (territoryid INTEGER NOT NULL, bölge açıklaması VARCHAR (40) NOT NULL, regionid VARCHAR (25) NOT NULL);

Son olarak, çalışanlar ve bölgeler arasındaki ilişkileri depolamak için EmployeeTerritories tablosunu kullanacağız. Her iki çalışan ve bölge ile ilgili detaylı bilgiler önceki iki tabloda yer almaktadır. Bu nedenle, bu tabloda sadece iki tamsayı kimlik numarasını saklamamız gerekiyor. Bu bilgiyi genişletmemiz gerekirse, çoklu tablolardan bilgi almak için veri seçim komutlarımızda bir JOIN kullanabiliriz. Verilerin depolanması için kullanılan bu yöntem, veritabanımızdaki yedekliliği azaltır ve depolama disklerimizde optimum alan kullanımını sağlar. Gelecek derste JOIN komutunu derinlemesine ele alacağız. Son tablomuzu uygulamak için SQL kodu:

TABLO çalışanları (CREATE NOT NULL, territoryid INTEGER NOT NULL);

Mekanizma SQL Yaratılış Sonrası Veritabanının Yapısını Değiştirmeyi Sağlıyor

Günümüzde özellikle dikkat çekiyorsanız, veritabanı tablolarımızı uygularken tasarım gereksinimlerimizden birini "yanlışlıkla" ihmal ettiğimizi fark etmiş olabilirsiniz. XYZ Corporation'ın İK Direktörü, veritabanının çalışan maaş bilgisini takip etmesini istedi ve biz de bunu oluşturduğumuz veritabanı tablolarında sağlamayı ihmal ettik.

Ancak, hepsi kaybolmaz. Bu özniteliğimizi mevcut veritabanımıza eklemek için ALTER TABLE komutunu kullanabiliriz. Maaşı bir tamsayı değeri olarak saklamak istiyoruz. Sözdizimi CREATE TABLE komutuna oldukça benzer, işte burada:

ALTER TABLE çalışanları ADD maaş INTEGER NULL;

Bu özellik için NULL değerlerine izin verildiğini belirttiğimize dikkat edin. Çoğu durumda, var olan bir tabloya sütun eklerken herhangi bir seçenek yoktur. Bunun nedeni, tablonun zaten bu öznitelik için giriş içermeyen satırlar içermesidir. Bu nedenle, DBMS otomatik olarak boşluğu doldurmak için bir NULL değeri ekler.

Ve bu bizim SQL veritabanı ve tablo oluşturma sürecine bakışımızı tamamlıyor. SQL eğitim dizimizin yeni sürümleri için sık sık kontrol edin. Veritabanları sitesinde yeni makaleler eklendiğinde bir e-posta hatırlatıcısı almak isterseniz, bültenimize mutlaka abone olun!