SQL'de Veritabanları ve Tablolar Oluşturma

ile veritabanları ve tablolar oluşturmaya başlamaya hazır mısınız? Yapılandırılmış sorgu dili? Bu yazımızda CREATE DATABASE ve CREATE TABLE komutları ile manuel olarak tablo oluşturma işlemini inceliyoruz. SQL'de yeniyseniz, bazılarını gözden geçirmek isteyebilirsiniz. SQL temelleri ilk.

İş gereksinimleri

Klavyenin başına oturmadan önce, müşterinin gereksinimlerini sağlam bir şekilde anladığımızdan emin olmamız gerekir. Bu içgörüyü elde etmenin en iyi yolu nedir? Tabii ki müşteriyle konuşmak! XYZ'nin İnsan Kaynakları Direktörü ile görüştükten sonra, onların bir widget satış şirketi olduklarını ve öncelikle satış personeli hakkındaki bilgileri takip etmekle ilgilendiklerini öğrendik.

XYZ Corporation, satış gücünü, her biri bireysel satış temsilcileri tarafından kapsanan birçok bölgeye bölünmüş olan doğu ve batı bölgelerine ayırır. İK departmanı, her çalışanın kapsadığı alanı ve her çalışanın maaş bilgilerini ve denetim yapısını izlemek ister. Bu gereksinimleri karşılamak için aşağıdaki tabloda gösterilen üç tablodan oluşan bir veritabanı tasarladık.

instagram viewer
Varlık ilişki diyagramı bu sayfada.

Veritabanı Platformu Seçme

kullanmaya karar verdik. veritabanı Yönetim sistemi (veya DBMS) Yapılandırılmış Sorgu Dili (SQL) üzerine kuruludur. Bu nedenle, tüm veritabanı ve tablo oluşturma komutlarımız, standart ANSI SQL göz önünde bulundurularak yazılmalıdır.

Ek bir avantaj olarak, ANSI uyumlu SQL kullanmak, 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. Veritabanınız için henüz bir platform seçmediyseniz, Veritabanı Yazılım Seçenekleri seçim sürecinde size yol gösterir.

Veritabanını Oluşturma

İlk adımımız veritabanının kendisini oluşturmaktır. 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 basit bir veritabanı oluşturulmasına izin verir. Tüm komutlarımızda olduğu gibi, özel sisteminiz tarafından desteklenen herhangi bir gelişmiş parametrenin ihtiyaçlarınızı karşılayıp karşılamadığını belirlemek için DBMS'nizin belgelerine bakmak isteyebilirsiniz. Veritabanımızı kurmak için CREATE DATABASE komutunu kullanalım:

CREATE DATABASE personeli

Yukarıdaki örnekte kullanılan büyük harf kullanımına özellikle dikkat edin. SQL programcıları arasında "CREATE" gibi SQL anahtar sözcükleri için tüm harfleri büyük kullanmak yaygın bir uygulamadır. "Personel" veritabanı gibi kullanıcı tanımlı adlar için tüm küçük harfleri kullanırken "VERİTABANI" isim. Bu kurallar kolay okunabilirlik sağlar.

Veritabanımızı tasarlayıp oluşturduğumuza göre, XYZ Corporation'ın personel verilerini depolamak için kullanılan üç tabloyu oluşturmaya başlamaya hazırız.

İlk Tablomuzu Oluşturmak

İlk tablomuz şirketimizin her çalışanına ait kişisel verilerden oluşmaktadır. Her çalışanın adını, maaşını, kimliğini ve yöneticisini eklememiz gerekiyor. Gelecekte veri aramayı ve sıralamayı basitleştirmek için soyadı ve adı ayrı alanlara ayırmak iyi bir tasarım uygulamasıdır. Ayrıca, her çalışan kaydına yöneticinin çalışan kimliğine bir referans ekleyerek her çalışanın yöneticisini takip edeceğiz. Öncelikle istenen çalışan tablosuna bir göz atalım.

ReportsTo özelliği, her çalışan için yönetici kimliğini saklar. Gösterilen örnek kayıtlardan, Sue Scampi'nin hem Tom Kendall'ın hem de John Smith'in menajeri olduğunu belirleyebiliriz. Ancak, Sue'nun satırındaki NULL girişinde belirtildiği gibi, veritabanında Sue'nun yöneticisi hakkında hiçbir bilgi yoktur.

Artık personel veritabanımızda tablo oluşturmak için SQL kullanabiliriz. Bunu yapmadan önce, bir USE komutu vererek doğru veritabanında olduğumuzdan emin olalım:

KULLANIM personeli;

Alternatif olarak "VERİTABANI personeli"; komutu aynı işlevi görecektir. Şimdi çalışanlarımızın tablosunu oluşturmak için kullanılan SQL komutuna bir göz atabiliriz:

CREATE TABLE çalışanları
(employeeid INTEGER NULL DEĞİL,
soyadı VARCHAR(25) NULL DEĞİL,
ad VARCHAR(25) NULL DEĞİL,
INTEGER NULL'a raporlar);

Yukarıdaki örnekte olduğu gibi, programlama kuralının, SQL anahtar sözcükleri için tüm büyük harfleri ve kullanıcı adlı sütunlar ve tablolar için küçük harfleri kullanmamızı gerektirdiğini unutmayın. Yukarıdaki komut ilk bakışta kafa karıştırıcı görünebilir, ancak aslında arkasında basit bir yapı var. İşte bazı şeyleri biraz açıklığa kavuşturabilecek genelleştirilmiş bir görüş:

TABLO OLUŞTUR tablo_adı
(özellik_adı veri türü seçenekleri,
...,
öznitelik_adı veri türü seçenekleri);

Nitelikler ve Veri Tipleri

Önceki örnekte, tablo adı çalışanlardır ve biz dört Öznitellikler: çalışan kimliği, soyadı, adı ve raporları. Veri türü, her alanda saklamak istediğimiz bilgi türünü belirtir. Çalışan kimliği basit bir tam sayıdır, bu nedenle hem çalışan kimliği alanı hem de raporlar alanı için INTEGER veri türünü kullanacağız. Çalışan adları değişken uzunlukta karakter dizileri olacaktır ve hiçbir çalışanın adının veya soyadının 25 karakterden uzun olmasını beklemiyoruz. Bu nedenle, bu alanlar için VARCHAR(25) türünü kullanacağız.

NULL Değerler

Ayrıca belirtebiliriz NULL veya NULL DEĞİL CREATE ifadesinin seçenekler alanında. Bu, veritabanına satır eklerken bu öznitelik için NULL (veya boş) değerlere izin verilip verilmediğini veritabanına söyler. Örneğimizde, İK departmanı her çalışan için bir çalışan kimliğinin ve tam adının saklanmasını gerektirir. Ancak, her çalışanın bir yöneticisi yoktur (CEO kimseye rapor vermemektedir!), bu nedenle bu alanda NULL girişlere izin veriyoruz. NULL'un varsayılan değer olduğunu ve bu seçeneğin atlanmasının bir öznitelik için NULL değerlerine dolaylı olarak izin vereceğini unutmayın.

Kalan Tabloları Oluşturma

Şimdi bölge tablosuna bir göz atalım. Bu verilere hızlı bir bakışla, bir tamsayı ve iki değişken uzunluklu dize 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, bazı bölgelerimizin adları daha uzun olduğundan, bu özelliğin izin verilen uzunluğunu 40 karaktere çıkaracağız.

İlgili SQL'e bakalım:

CREATE TABLO bölgeleri
(territoryid INTEGER NULL DEĞİL,
bölge Açıklama VARCHAR(40) NULL DEĞİL,
bölge kimliği VARCHAR(25) NULL DEĞİL);

Son olarak, çalışanlar ve bölgeler arasındaki ilişkileri depolamak için EmployeeTerritories tablosunu kullanacağız. Her bir çalışan ve bölge hakkında ayrıntılı bilgiler önceki iki tablomuzda saklanmaktadır. Bu nedenle, bu tabloda sadece iki tamsayı tanımlama numarasını saklamamız gerekiyor. Bu bilgiyi genişletmemiz gerekirse, birden çok tablodan bilgi almak için veri seçim komutlarımızda bir JOIN kullanabiliriz.

Bu veri depolama yöntemi, veritabanımızdaki fazlalığı azaltır ve depolama sürücülerimizdeki alanın optimum şekilde kullanılmasını sağlar. Gelecekteki bir eğitimde JOIN komutunu derinlemesine ele alacağız. İşte nihai tablomuzu uygulamak için SQL kodu:

CREATE TABLE çalışanbölgeleri
(employeeid INTEGER NULL DEĞİL,
bölge kimliği INTEGER NULL DEĞİL);

SQL'in Oluşturulduktan Sonra Bir Veritabanının Yapısını Değiştirmeyi Sağladığı Mekanizma

Bugün özellikle akıllıysanız, veritabanı tablolarımızı uygularken tasarım gereksinimlerinden birini "yanlışlıkla" atladığımızı fark etmiş olabilirsiniz. XYZ Corporation'ın İK Direktörü, veritabanının çalışan maaş bilgilerini takip etmesini istedi ve oluşturduğumuz veritabanı tablolarında bunu sağlamayı ihmal ettik.

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

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

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

instagram story viewer