SAP HANA Veri Türleri: Sayısal, Karakter Dizesi, Ondalık

⚡ Akıllı Özet

SAP HANA Veri Tipleri, her sütunun ne depolayabileceğini tanımlar; tarih ve saat, sayısal, mantıksal, karakter dizisi, ikili, büyük nesne ve çok değerli sınıflandırmaları kapsar ve her biri bir eşleme ile ilişkilendirilir.ping belirli bir sütun tabanlı depolama türüne.

  • Tarih ve Saat Türleri: DATE, TIME, SECONDDATE ve TIMESTAMP, korudukları hassasiyet açısından farklılık gösterir.
  • 🔢 Sayısal Aralık: TINYINT'ten BIGINT'e kadar olan veri tipleri tamsayıları kapsarken, DECIMAL, SMALLDECIMAL, REAL ve DOUBLE veri tipleri kesirli sayıları ele alır.
  • 🔤 Karakter Dizileri: VARCHAR baytları, NVARCHAR ise Unicode karakterleri tutar ve her ikisi de 5000 karakterle sınırlıdır.
  • ???? Büyük Nesneler: BLOB, CLOB, NCLOB, TEXT ve BINTEXT, normal bir sütuna sığmayacak kadar büyük verileri depolar.
  • 🔍 Arama Etkin: TEXT, BINTEXT ve SHORTTEXT fonksiyonları tam metin aramayı destekler, ancak yalnızca sütun tabanlı tablolarda.
  • ✍️ tanımlayıcılar: Sınırlandırılmış tanımlayıcılar çift tırnak içinde yer alır ve herhangi bir karakteri kabul eder; sınırlandırılmamış olanlar ise bir harfle başlamalıdır.
  • Alıntı Kuralı: Tek tırnaklar bir dize değerini, çift tırnaklar ise bir tanımlayıcıyı sınırlandırır.

SAP HANA veri tipleri

Bu SAP HANA Veri Türleri eğitiminde şunları öğreneceğiz:

1) SAP HANA Veri Türleri - SAP HANA veri türleri arasında Tarih Saatler, Sayısal veri türü, Boolean, Karakter Dizesi, İkili veri türleri vb. bulunur.

2) SAP HANA Tanımlayıcıları – Sınırlandırılmış Tanımlayıcılar ve Sınırlandırılmamış Tanımlayıcılar

Veri Türleri SAP HANA

In SAP HANA Veritabanı, SQL Veri Türleri aşağıdaki gibidir:

Sınıflandırma Alt Sınıflandırma SQL Veri Türü Sütun Deposu Türü Varsayılan biçim
Tarih Saat Türleri Tarih TARİH CS_DAYDATE 'YYYY-AA-GG'
Zaman ZAMAN CS_SECONDTIME 'HH24:MI:SS'
İkinci Tarih İKİNCİ TARİH CS_LONGDATE 'YYYY-AA-GG SS24:MI:SS'
Zaman Damgası TIMESTAMP CS_SECONDDATE 'YYYY-AA-GG SS24:MI:SS.FFn'
Sayısal Türler Minik Tamsayı KÜÇÜK CS_INT 8 bitlik işaretsiz tamsayı, 0 ile 255 arası değer aralığı
Küçük Tamsayı KÜÇÜK CS_INT 16 bitlik işaretli tamsayı, Aralık -32,768 ile 32,767 arası
Tamsayı INTEGER CS_INT 32 bitlik işaretli tamsayı, Aralık -2,147,483,648 ile 2,147,483,647 arası
Büyük Tamsayı BÜYÜK CS_FIXED(18,0) 64 bitlik işaretli tamsayı, Aralık -9,223,372,036,854,775,808 ile 9,223,372,036,854,775,807 arası
Ondalık DECIMAL(p,s)
p-Hassaslık
s ölçeği
CS_FIXED(ps,s) Hassasiyet p 1 ila 38 arasında değişebilir.
Ölçek 0'dan p'ye kadar değişebilir. SAP HANA ondalık veri türü.
Hassasiyet ve ölçek belirtilmezse, DECIMAL kayan noktalı bir ondalık sayı haline gelir.
Küçük Ondalık KÜÇÜKDECIMAL CS_SDFLOAT Kayan noktalı bir ondalık sayıdır. Hassasiyet ve ölçek, saklanan değere bağlı olarak hassasiyet için 1~16 ve ölçek için -369~368 aralığında olmalıdır. SMALLDECIMAL yalnızca sütun deposu Tablosu için desteklenir.
Gerçek Numara GERÇEK CS_FLOAT tek duyarlıklı 32 bit kayan noktalı sayı
Double Numara ÇİFT CS_ÇİFT çift ​​hassasiyetli 64 bitlik kayan nokta sayısı
Şamandıra FLOAT(n) CS_ÇİFT Bu, 32 bit veya 64 bitlik bir gerçek sayıdır. Burada n, bit sayısını belirtir ve 1 ile 53 arasında olmalıdır.
Boole Boole BOOLE CS_INT DOĞRU, YANLIŞ ve BİLİNMEYEN (BOŞ).
Karakter dizesi Değişken Uzunlukta Karakter Dizesi VARCHAR (n) CS_STRING Bu HANA dize uzunluğu veri türü, 'n'nin bayt cinsinden maksimum uzunluğu belirttiği ve 1 ile 5000 arasında bir tamsayı olduğu değişken uzunluklu bir karakter dizisidir.
Değişken Uzunluklu Unicode karakter NVARCHAR(n) CS_STRING Değişken uzunluklu Unicode karakter kümesi dizesi; Karakter cinsinden maksimum uzunluğu belirtir ve 1 ile 5000 arasında bir tam sayıdır
Alfanumerik karakter ALFA(n) CS_ALPHANUM Değişken uzunluklu alfasayısal karakterler; burada n maksimum uzunluğu belirtir ve 1 ile 127 arasında bir tam sayıdır
kısa metin KISAMETİN(n) CS_STRING Değişken uzunluklu karakter dizisi olup metin arama ve dize arama özellikleri sunar. Bu veri türü sütun tabanlı tablolar için tanımlanabilir, ancak satır tabanlı tablolar için tanımlanamaz.
İkili Tipler İkili Metin VARBİNER(n) CS_RAW Belirtilen maksimum uzunluğa sahip ikili verileri bayt cinsinden depolayın; burada n, maksimum uzunluğu belirtir ve 1 ile 5000 arasında bir tam sayıdır.
LOB Türleri(Büyük Nesne Türleri) İkili LOB BLOB CS_RAW Büyük miktarda ikili veri
Karakter LOB'u CLOB CS_STRING ASCII karakter verileri
Unicode Karakter LOB'u NCLOB CS_STRING Büyük Unicode karakter nesnesi
METİN METİN CS_STRING TEXT veri türü metin arama özellikleri sağlar. Bu veri türü sütun Mağaza tabloları için tanımlanabilir, ancak satır mağaza tabloları için tanımlanamaz.
İKİLİ Metin Verileri BINTEXT CS_STRING BINTEXT veri türü, TEXT veri türüne benzer ve bu nedenle metin arama özelliklerini destekler, ancak ikili veri eklemek mümkündür. Bu veri türü sütun tabloları için tanımlanabilir ancak satır tabloları için tanımlanamaz.
Çok Değerli Türler Dizi DİZİ Her öğenin tam olarak bir konumla ilişkili olduğu aynı veri türündeki değer koleksiyonlarını saklar. Diziler, bir değerin yokluğunda olduğu gibi NULL değerler içerebilir.

Doğru Olanı Seçmek SAP HANA Veri Türü

Yukarıdaki tabloda mevcut seçenekler listelenmiştir. Doğru seçim yapmak çok daha önemlidir. SAP HANA, disk tabanlı veritabanlarına kıyasla daha verimli çalışır çünkü her sütun bellekte bulunur ve aşırı büyük bir veri tipi, her satırda kıt bir kaynağı tüketir.

Çoğu karar için geçerli dört kural vardır:

  • Uygun olan en küçük sayısal türü seçin. Beş olası değere sahip bir durum bayrağı için INTEGER değil, TINYINT gerekir. Bir milyar satırlık bir tabloda bu fark, gigabayt cinsinden bellek kullanımıyla ölçülür.
  • Paranızı asla REAL veya DOUBLE'da saklamayın. Kayan noktalı sayılar ondalık kesirleri tam olarak temsil edemez, bu nedenle toplamlar para biriminin kesirleri kadar sapma gösterir. Hassasiyet ve ölçek belirterek DECIMAL ifadesini kullanın.
  • VARCHAR yerine NVARCHAR'ı tercih edin. VARCHAR baytları, NVARCHAR ise karakterleri sayar; bu nedenle ASCII olmayan herhangi bir metin VARCHAR'da beklenmedik şekilde kesilir. Modern SAP HANA sürümleri, tam da bu nedenle VARCHAR'ı NVARCHAR olarak ele alır.
  • Tarih hassasiyetini gereksinime uygun hale getirin. Takvim günleri için DATE, günün saatinin önemli olduğu durumlarda SECONDDATE ve yalnızca saniye altı hassasiyetin gerçekten kullanıldığı durumlarda TIMESTAMP kullanılır. Her bir üst seviye, her satırda depolama alanını artırır.

Büyük nesne türleri özellikle dikkat gerektirir. BLOB veya NCLOB sütunu kullanışlıdır ancak ağırdır ve TEXT veya SHORTTEXT üzerinde metin araması yalnızca sütun tabanlı tablolarda çalışır, bu nedenle depolama seçimi ve veri türü seçimi birbirine bağlıdır. Depolama seçenekleri aşağıdaki bölümde ele alınmıştır. SAP HANA SQL'i öğretici.

SAP HANA Tanımlayıcıları

Tanımlayıcılar adı temsil etmek için kullanılır SQL ifade (örneğin tablo adı, görünüm adı, sütun adı, dizin adı, eşanlamlı ad, prosedür adı, işlev adı vb.)

İki tür tanımlayıcı vardır SAP HANA: Sınırlandırılmış tanımlayıcılar ve Sınırlanmamış tanımlayıcılar.

  • Sınırlandırılmış Tanımlayıcılar – Sınırlayıcının içine alınır, Double Alıntılar “”. Tanımlayıcı, özel karakter de dahil olmak üzere herhangi bir karakteri içerebilir.
  • Sınırsız Tanımlayıcılar – Sınırlandırılmamış tanımlayıcılar (tablo adı, sütun adı) bir harfle başlamalı ve rakam veya alt çizgi '_' dışında herhangi bir simge içeremez.

Aşağıdaki gibi sınırlama için iki tür tırnak işareti vardır:

  • Tek Tırnak İşareti (' ') – Diziyi sınırlamak için kullanılır.
  • Double Tırnak işareti (" ")– Tanımlayıcıları sınırlamak için kullanılır.

⚠️Uyarı: Sınırlandırılmamış bir tanımlayıcı, nesne oluşturulduğunda büyük harfe dönüştürülür. Çalışan olarak bir tablo oluşturup daha sonra küçük harflerle "çalışan" verilerinden seçim yapmak başarısız olur, çünkü saklanan ad EMPLOYEE'dir. Ya çift tırnak işaretlerinden tamamen kaçının ya da bunları tutarlı bir şekilde kullanın.

Veri Türü Dönüştürme ve Sık Yapılan Hatalar

SAP HANA, uyumlu türler arasında otomatik olarak dönüştürme yapar, ancak örtük dönüştürme, yanlış sonuçların ve yavaş sorguların sessiz kaynağıdır. Açık dönüştürme ise amacı görünür kılar.

İki fonksiyon bu işi yapar. CAST, bir değeri adlandırılmış bir türe dönüştürür; TO_DATE, TO_VARCHAR, TO_DECIMAL ve bunların türevleri ise isteğe bağlı bir format dizesiyle dönüştürme işlemi gerçekleştirir.

-- Explicit conversion with CAST
SELECT CAST('1234' AS INTEGER) FROM DUMMY;

-- Conversion with an explicit format
SELECT TO_DATE('2026-07-21', 'YYYY-MM-DD') FROM DUMMY;

-- Number to string with fixed decimals
SELECT TO_DECIMAL(1234.5678, 10, 2) FROM DUMMY;

Dönüştürme sorunlarının çoğuna dört hata neden olur:

  1. Sayısal taşma. 40000 değerini SMALLINT türündeki bir sayıya eklemek başarısız olur çünkü işaretli aralık 32,767'de durur. Mesajda değer yerine sütun adı belirtiliyor, bu nedenle önce tanımı kontrol edin.
  2. Dize kısaltma. Belirtilen uzunluktan daha uzun metin yüklemek, metni sessizce kesmek yerine hata verir. Karakter sayısını NVARCHAR, bayt sayısını ise VARCHAR olarak hesaplayın.
  3. Geçersiz tarih biçimi. TO_DATE fonksiyonuna yanlış kalıpta bir dize göndermek başarısız olur. Oturum varsayılanına güvenmek yerine her zaman biçim maskesini belirtin.
  4. WHERE koşulunda örtük dönüşüm. Bir karakter sütununu bir sayıyla karşılaştırmak, her satırda dönüştürme işlemi gerektirir ve bu da verimli filtrelemeyi engeller. Sütunu dönüştürmek yerine sabiti dönüştürün.

Bu filtrelerde kullanılan karşılaştırma sembolleri aşağıdakilerle sınırlıdır. SAP HANA operatörlerive daha geniş platformda SAP HANA eğitim kılavuzu serisi.

SSS

VARCHAR veri tipi sınırını bayt cinsinden, NVARCHAR ise Unicode karakter cinsinden ölçer. ASCII olmayan karakterler içerebilecek herhangi bir metin için NVARCHAR daha güvenli bir seçimdir çünkü beklenmedik şekilde kırpılmaz.

Çoğu iş olayı için geçerli olan saniye düzeyinde hassasiyet yeterli olduğunda SECONDDATE kullanın. TIMESTAMP kesirli saniyeler ekler ve büyük bir tablonun her satırında daha fazla depolama alanı kaplar.

Evet. Kaynak dosyanın profilini çıkarmak, yapay zekanın her sütun için varsayılan olarak aşırı büyük bir değer yerine en küçük güvenli türü önerdiği gerçek değer aralıklarını, uzunluklarını ve biçimlerini ortaya çıkarır.

Evet. Beyan edilen uzunlukları gerçekte depolanan değerlerle karşılaştırmak, küçülebilecek sütunları vurgular; bu da önemlidir çünkü bir HANA tablosunun her sütunu bellekte tutulur.

TEXT, BINTEXT ve SHORTTEXT, metin arama özellikleri sağlar. Her üçü de sütun tabanlı tablolara özgüdür ve satır tabanlı tablolarda tanımlanamaz.

Bu yazıyı şu şekilde özetleyin: