Tabloların anlamlı oluşturulması

Önceki derslerde, tablo oluşturmak için sorgularla zaten biraz tanışmıştık, şimdi bunu daha derine inmenin zamanı geldi.

Bir tablo oluşturmak, Java'da bir sınıf bildirmeye çok benzer ve şu kalıba sahiptir:

CREATE TABLE table_name (
	column1 datatype,
	column2 datatype,
	column3 datatype,
   ....
);

Örneğin, kullanıcıları içeren bir tablo oluşturan bir sorgu yazalım:

CREATE TABLE user (
	id INT,
	name VARCHAR(100),
	level INT,
	created_date DATE,
);

Çok basit görünüyor çünkü burada pek çok nüans belirtilmemiş.

İlk olarak, tablonun ek ayarları olabilir.

İkincisi, her sütunun ek ayarları olabilir.

Ve sütun oluşturma ayarlarıyla başlayacağız.

Tablodaki anahtarlar

Ad ve veri türüne ek olarak, bir tablo sütunu aşağıdaki ayarlara sahip olabilir:

BİRİNCİL ANAHTAR Sütun tablonun anahtarıdır
BENZERSİZ ANAHTARI Tüm sütun değerleri benzersiz olmalıdır.
Varsayılan değer Varsayılan değer
GEÇERSİZ DEĞİL NULL değerini kabul etme yasağı
OTOMATİK ARTIŞ SQL Server, tabloya yeni bir kayıt eklendiğinde değeri otomatik olarak artıracaktır.
OLUŞTURULDU Hesaplanan alan
DEPOLAMAK Verilerin nerede saklanacağı: diskte veya bellekte
YORUM Sütun yorumu, örneğin yerel dilde başlık

Aşağıda bunlardan bazılarına bakacağız.

Birincisi, PRIMARY KEY .

Çoğu zaman, bu, id adı ve INT türü ile ayrı bir sütundur. Bu, tablonun "ana anahtarı" olarak adlandırılır ve tüm satırlarının bu anahtar için benzersiz değerleri vardır. Öncelikle, diğer tabloların bizim tablomuzdaki kayıtlara atıfta bulunabilmesi ve onun özel kaydını gösterebilmesi için kullanılır.

İkincisi BENZERSİZ ANAHTAR .

Anlamsal yükü tamamen farklı olsa da bazı açılardan PRIMARY KEY'e benzer. Bir sütun UNIQUE özelliğine sahipse, o sütundaki tüm değerler benzersiz olmalıdır. BENZERSİZ ANAHTAR ile BİRİNCİL ANAHTAR arasındaki farka iyi bir örnek, pasaport ofisindeki kişilerin listesidir.

Vergi numarası BİRİNCİL ANAHTAR'dır, diğer tablolardan doğru kişiye başvurmayı kolaylaştırmak için kullanılır.

Pasaport numarası BENZERSİZ ANAHTAR'dır. İki kişi aynı pasaport numarasına sahip olamaz. Ancak pasaport numarası değiştirilebilir. Örneğin, soyadını değiştirirken. Ve vergi numarası sonsuza kadar sizinle kalacak. Bu, BİRİNCİL ANAHTAR'ın ana görevidir. BİRİNCİL ANAHTAR'ı belirten bir sorgu örneği:

CREATE TABLE user (
	id INT PRIMARY KEY,
	name VARCHAR(100),
	level INT,
	created_date DATE,
);

Veri türü ayarları

Daha az önemli ama yararlı nitelikler vardır.

VARSAYILAN değer

Bir tabloya veri eklerken (yeni bir satır eklerken), varsayılan bir değere sahiplerse bazı sütunların değerlerini dışarıda bırakabilirsiniz. Bu durumda, SQL sunucusu sütunun değerini kendisi ayarlayacaktır.

MySQL'in 8. sürümünden başlayarak, bir ifadeyi değer olarak belirleyebilirsiniz.

GEÇERSİZ DEĞİL

Bir tablo oluştururken bir sütun için NOT NULL özniteliğini belirtirseniz, SQL Server bu sütunda bir NULL değeri depolamanın imkansız olmasını sağlayacaktır. Varsayılan olarak, herhangi bir sütunun bir NULL değeri, hatta bir INT sütunu olabilir. Bu, bir Java programcısı için biraz belirsizdir.

OTOMATİK ARTIŞ

Genellikle sütun kimlikleri için kullanılır. Bir tabloya yeni bir satır eklediğinizde, SQL sunucusunun bu giriş için gerçekten bir kimlik atamasını istersiniz. Masada kaç satır olduğunu sunucudan daha iyi kim bilebilir? Özellikle farklı istemcilerden gelen istekler aynı SQL sunucusuna gidiyorsa.

AUTO_INCREMENT özniteliğinin yaptığı tam olarak budur. Yeni bir satır eklerken, kimlik olarak herhangi bir şey iletmiyoruz ve SQL sunucusu bu kayıt için doğru kimliği belirtecek: sadece mevcut son kaydın kimliğini alacak ve onu 1 artıracak. tamsayı ve gerçek sayı türleri ile kullanılır. Ve tabii ki böyle bir tablo oluşturmaya bir örnek yapalım:

CREATE TABLE user (
	id INT PRIMARY KEY AUTO_INCREMENT,
	name VARCHAR(100) NOT NULL,
	level INT DEFAULT 1,
	created_date DATE NOT NULL,
);