SQLite Dize İşlevleri: DEĞİŞTİR, SUBSTR, TRIM, ROUND

SQLite varsayılan olarak yerleşik işlevlerin bir listesiyle donatılmıştır. SQLite kütüphane. Temel işlevleri genişletmek için C dilini kullanarak başka bazı özel işlevler de ekleyebilirsiniz.

Aşağıdaki tüm örnekler için sqlite3.exe'yi çalıştırmanız ve örnek veritabanına aşağıdaki gibi bir bağlantı açmanız gerektiğini unutmayın:

) 1 Adım Bu adımda,

  1. Bilgisayarım'ı açın ve şu dizine gidin:C:\sqlite" ve sonra
  2. açık "sqlite3.exe":

SQLite Dize İşlevleri

) 2 Adım Veritabanını aç “ÖğreticilerSampleDB.db” aşağıdaki komutla:

SQLite Dize İşlevleri

Artık herhangi birini çalıştırmaya hazırsınız sorgu ve aşağıdaki bölümlerde kullanılan sorguları deneyin.

Bir Dizenin UZUNLUĞUNU Bulma SQLite

Bir dizenin uzunluğunu bulmak için X'in bir dize değeri olduğu UZUNLUK(X)'u kullanın. X boş bir değerse uzunluk işlevi boş bir değer döndürür.

Sayısal değerin uzunluğunu elde etmek için uzunluk işlevini sayısal değerlerle de kullanabilirsiniz.

Örnek:

Aşağıdaki örnekte LENGTH fonksiyonunun sözdizimini aşağıdaki değerlerle deneyeceğiz:

SELECT LENGTH('A string'), LENGTH(NULL), LENGTH(20), LENGTH(20.5);

Bu size şunları sağlayacaktır:

Bir Dizenin UZUNLUĞUNU Bulma SQLite

Sonuç şu şekilde:

  • LENGTH('A string'), “A string” stringinin uzunluğu olan 8 değerini döndürür.
  • LENGTH(NULL) null değerini döndürür.
  • LENGTH(20), 2 değerini döndürür çünkü 20, 2 uzunluk uzunluğundadır.
  • LENGTH(20.5) 4 değerini döndürür; Kayan nokta “.” bir karakter olarak sayılır, dolayısıyla dört karakteriniz olur; 3 karakter sayıların uzunluğudur. Ayrıca kayan nokta “.” için bir karakter daha.

UPPER Fonksiyonu ve LOWER Fonksiyonu ile harf değişimi

UPPER(X) aynı x dizesini döndürecektir, ancak tüm dize karakterlerini büyük karakterlerle temsil edecektir.

LOWER(X) aynı x dizesini döndürür, ancak tüm dize karakterlerini küçük karakterlerle temsil eder.

UPPER ve LOWER, onlara boş bir değer iletirseniz boş değerler döndürür.

Sayısal değerleri UPPER veya LOWER'a iletirseniz her ikisi de tam sayısal değeri döndürür.

Örnek:

SELECT UPPER('a string'), LOWER('A STRING'), UPPER(20), LOWER(20), UPPER(NULL), LOWER(NULL);

Bu size şunları sağlayacaktır:

UPPER ve LOWER fonksiyonlarına örnek SQLite

Sonuç şu şekilde:

  • UPPER('bir dize') " dizesini döndürürdizi“büyük harfle temsil”DİZİ".
  • LOWER('A STRING') " dizesini döndürürDİZİ“Küçük harfle temsil”dizi".
  • UPPER(20), LOWER(20), sayılar üzerinde herhangi bir etkisi olmadığından aynı sayıyı döndürür.
  • UPPER(NULL), LOWER(NULL), onlara null değeri ilettiğimiz için null değerini döndürür.

SQLite SUBSTR İşlevi

SUBSTR işlevi, belirli bir konumdan başlayarak belirli sayıda dize döndürür. Fonksiyona şu şekilde üç işlenen aktarabilirsiniz:ALTTR(X,Y,Z)” aşağıdaki gibi:

  • X, dize değişmezi veya ayrıştırılacak dize sütunudur. Bir değişmez değer (statik değer) veya bir sütun adı iletebilirsiniz; bu durumda değer, sütunun değerlerinden okunacaktır.
  • Y, ondan başlayan dizeyi çıkarmak için başlangıç ​​konumudur.
  • Z, belirli bir Y konumundan başlayarak ayrıştırılacak karakter sayısıdır. Bu sayı isteğe bağlıdır, onu yok sayabilirsiniz ve bu durumda, SQLite dizenin sonunu söyleyen Y konumundan başlayarak dizeyi çıkaracaktır.

Örnek:

Aşağıdaki sorguda, öğrencilerin isimlerinin ikinci karakterinden başlayarak 4 karakteri almak için SUBSTR fonksiyonunu kullanacağız:

SELECT StudentName, SUBSTR(StudentName, 2, 4), SUBSTR(StudentName, 2)
FROM Students;

Bu size şunları sağlayacaktır:

SUBSTR işlevi örneği SQLite

  • SUBSTR(ÖğrenciAdı, 2, 4) “dizesini alt dizeÖğrenci adı” ikinci karakterden başlayarak sonraki 4 karakteri döndürün.
  • Ancak fonksiyonda SUBSTR(ÖğrenciAdı, 2) döndürülecek karakterler için bir sayı belirtmedik, bu yüzden SQLite “ içinde kalan tüm karakterleri döndürdüÖğrenci adı” ikinci pozisyondan başlayarak.

Bir String'in bölümlerini değiştirme SQLite DEĞİŞTİRME İşlevi

REPLACE, başka bir dizede oluşan her dizeyi bir dizeyle değiştirmek için kullanılır.

REPLACE(X, Y, Z) – X, giriş dizesi değişmez değeri veya sütunudur. Y, Z dizesiyle değiştirilecek dizedir. Y dizesinin yalnızca bir tanesini değil, herhangi bir oluşumunu Z ile değiştireceğini unutmayın.

Örnek:

Aşağıdaki sorguda, " dizesinin tüm oluşumlarını değiştireceğizxx"" dizesiyleSQLite":

SELECT REPLACE('xx is very lightweight, xx is easy to learn', 'xx', 'SQLite');

Bu verecektir

DEĞİŞTİR işlevi örneği SQLite

  • Değiştirme işlevi tüm dizelerin yerini aldı "xx"" dizesiyleSQLite".
  • Yani çıktı olacak "SQLite çok hafiftir, SQLite öğrenmesi kolaydır”.

Boş alanları şununla kırpma: SQLite TRIM İşlevi

TRIM, dizenin başındaki veya sonundaki boşlukları kaldırır. Dizenin ortasındaki boşlukları yalnızca başından veya sonundan kaldırmaz.

Örnek:

Aşağıdaki sorguda, dizenin başındaki ve sonundaki boşlukları kaldırmak için TRIM fonksiyonunu kullanacağız.

Birleştirme operatörünün “||” olduğunu unutmayın. Fazladan bir “;” eklemek için kullanılır dizenin sonuna kadar. Siyah penceredeki boş alanların kaldırıldığını göstermek için.

SELECT TRIM('      SQLite is easy to learn        ') || ';';

Bu size şunları sağlayacaktır:

TRIM işlevi örneği SQLite

  • Dizenin başından ve sonundaki boşlukların nasıl kaldırıldığına ve ' ; ile değiştirildiğine dikkat edin. ' sonunda.

Mutlak Değerleri Okumak SQLite ABS İşlevi

ABS fonksiyonu, sayısal bir değerin mutlak değerini döndürür. Mutlak değer, herhangi bir pozitif veya negatif işaret olmadan sayısal değerdir. ABS(X), X değerine bağlı olarak aşağıdaki gibi bir değer döndürür:

  • X sayısal bir değerse X'in mutlak değeri.
  • X boş bir değerse NULL değeri.
  • X bir dize ise “0.0” değeri.

Örnek:

Aşağıdaki sorguda ABS fonksiyonunu kullanarak bir dizenin, bir sayının ve bir boş değerin mutlak değerini almaya çalışacağız:

SELECT ABS(-2), ABS(+2), ABS('a string'), ABS(null);

Bu size şunları sağlayacaktır:

ABS fonksiyonu örneği SQLite

Sonuçlar şöyle:

  • ABS(-2), ABS(+2) 2 değerini döndürür çünkü 2 hem "-2" hem de "+2" için mutlak değerdir.
  • ABS('a string'), sayısal bir değer değil, bir dize değeri ilettiğiniz için “0.0” değerini döndürür.
  • ABS(null), null değerini ilettiğiniz için null değerini döndürür.

ROUND Fonksiyonu ile değerleri yuvarlama SQLite

Ondalık sayılar, kayan noktalı “.” olan sayılardır. üzerinde örneğin “20.5”, “8.65”. Kayan noktanın solundaki kısma tamsayı kısmı, kayan noktanın sağındaki kısma ise ondalık kısım denir.

Tamsayı sayılar, üzerinde kayan nokta bulunmayan sayılardır. Örneğin “20”, “8”.

YUVARLAK(X), ondalık değerleri veya X sütunlarını yalnızca tam sayı sayılarına dönüştürür. Ondalık virgülün solundaki tam sayı kısmı döndürülecek ve virgülün sağındaki tüm rakamlar kaldırılacaktır.

Örnek:

Aşağıdaki sorguda ROUND fonksiyonunu farklı seçeneklerle deneyeceğiz:

SELECT ROUND(12.4354354), ROUND(12.4354354, 2), ROUND(NULL), ROUND('a string');

Bu size şunları sağlayacaktır:

YUVARLAK işlevi örneği SQLite

Sonuç şu şekilde:

  • YUVARLAK(12.4354354) – basamak sayısını belirtmediğiniz için “12” değerini döndürür. Bu yüzden, SQLite ondalık kısmın tamamı kaldırıldı.
  • YUVARLAK(12.4354354, 2) – “12.44” değerini döndürür, çünkü yuvarlamak için yalnızca 2 basamak belirttiniz; bunlar, ondalık ayırıcının sağındaki iki basamaktır.
  • ROUND(NULL) – ona null bir değer ilettiğiniz için null değerini döndürür.
  • YUVARLAK('bir dize') – ona bir dize değeri ilettiğiniz için “0.0” değerini döndürür.

TYPEOF Fonksiyonu ile ifadenin veri tipini bulma

Bir sütunun türünü veya değişmez değeri bulmak istiyorsanız, bunu yapmak için TYPEOF işlevini kullanabilirsiniz.

TYPEOF(X) fonksiyonu, isminden yola çıkarak, X ifadesinin veri tipini döndürür. X'in veri tipini belirten bir string değeri döndürür. Veri tiplerine göre değeri, ister “NULL” olsun, ister “NULL” olsun, gerçek, metin, tamsayı,…, vb.

Örnek:

Aşağıdaki sorguda TYPEOF fonksiyonunu farklı tipteki sabit değerlerle deneyeceğiz:

SELECT TYPEOF(null), TYPEOF(12), TYPEOF(12.5), TYPEOF('a string');

Bu size şunları sağlayacaktır:

TYPEOF işlevi örneği SQLite

Dönen sonuçlar şu şekildedir:

  • TYPEOF(null) – ona null bir değer ilettiğiniz için null değerini döndürür.
  • TYPEOF(12) – 12 bir tamsayı olduğundan bir tamsayı döndürür.
  • TYPEOF(12.5) – 12.5 gerçek bir sayı olduğundan REAL değerini döndürür.
  • TYPEOF('bir dize') – “bir dize” bir metin olduğundan metni döndürür.

En son eklenen kaydı bulma SQLite LAST_INSERT_ROWID

SQLite tüm tablolardaki tüm satırlara bir tamsayı anahtarı (Id) atar. Bu sayı, bu satırları benzersiz şekilde tanımlamak için kullanılır.

Bir tabloya yeni bir satır eklediğinizde, SQLite satır kimliğine benzersiz bir değer atayacaktır.

Tablonun yalnızca bir sütunda tanımlanmış bir birincil anahtarı varsa ve bu sütun INTEGER veri türündeyse, bu sütun değeri satır kimliği olarak kullanılacaktır.

LAST_INSERT_ROWID() işlevi, veritabanındaki herhangi bir tabloya eklenen son satırın ROW_ID'sini döndürür. Herhangi bir işlenen almadığını unutmayın.

Örnek:

Aşağıdaki örnekte LAST_INSERT_ROWID() fonksiyonunu şu şekilde çalıştıracağız:

SELECT LAST_INSERT_ROWID();

Bu size şunları sağlayacaktır:

LAST_INSERT_ROWID işlevi örneği SQLite

  • LAST_INSERT_ROWID() işlevi 0 değerini döndürür çünkü geçerli veritabanı bağlantısındaki hiçbir tabloya satır eklenmemiştir.

Şimdi yeni bir öğrenci ekleyelim ve insert deyiminden sonra LAST_INSERT_ROWID() fonksiyonunu tekrar çalıştıralım, şu şekilde:

INSERT INTO Students VALUES(11, 'guru', 1, '1998-10-12');
SELECT LAST_INSERT_ROWID();

Bu size şunları sağlayacaktır:

LAST_INSERT_ROWID işlevi örneği SQLite

  • Kimliği 11 olan yeni bir öğrenci ekledikten sonra LAST_INSERT_ROWID() işlevi, eklenen son satır kimliği olan 11'i döndürecektir.

Sürümünüzü alınıyor SQLite kütüphane

Sürümünüzü almak için SQLite Kütüphaneyi kullanmak için SQLITE_VERSION() fonksiyonunu çağırmanız gerekiyor.

Örnek:

Versiyonunun ne olduğunu öğrenelim. SQLite Aşağıdaki komutu çalıştırarak kullanıyoruz:

SELECT SQLITE_VERSION();

Bu size şunları sağlayacaktır:

Sürümünüzü Gett'e örnek SQLite kütüphane

SQLITE_VERSION(), sürümü olan 3.9.2'yi döndürür SQLite kullanıyoruz.

Kullanıcı tanımlı işlevler oluşturma ve kullanıcı tanımlı işlevleri toplama

Bazı kullanıcılar için, SQLite temel işlevler sınırlıdır. Özel ihtiyaçları için özel işlevler eklemeleri gerekebilir.

SQLite kullanıcı tanımlı işlevler oluşturmayı desteklemez. Diğer veritabanı yönetim sistemlerinden farklı olarak kullanıcı tanımlı işlevler oluşturamazsınız. SQLite direkt olarak.

Ancak C#, C, PHP veya gibi programlama dillerini kullanarak bir işlev oluşturabilirsiniz. C++ ve bu işlevi çekirdeğe ekledim SQLite içindeki fonksiyonlar SQLite kütüphanenin kendisi, “sqlite3_create_function" işlev. Daha sonra bunları veritabanınızda yeniden kullanabilirsiniz.

Örnek:

Aşağıdaki örnekte, kullanıcı tanımlı bir fonksiyon oluşturacağız: C# programlama diline ekleyin ve SQLite fonksiyonlar:

[SQLiteFunction(Name = "DoubleValue", Arguments = 1, FuncType = FunctionType.Scalar)]
public class DoubleValue: SQLiteFunction
{
    public override object Invoke(object[] args)
    {
        return args[0] * 2;
    }
}

Bu kod pasajı şu şekilde yazılmıştır: C# Programlama Dili; C# kodunu kullanarak bir C# işlevi oluşturur.

İşlev adı şu olacaktır: “DoubleÖzellikBir parametre alır ve değerini 2 ile çarparak döndürür.

C#'ın bu işlevi otomatik olarak eklediğini unutmayın. SQLite. Tek ihtiyacınız olan bu kodu derleyip çalıştırmak. Daha sonra C# aynı isimdeki fonksiyonu listeye ekleyecektir. SQLite işlevler. Daha sonra bu işlevi kullanabilirsiniz. SQLite.

Aynı şekilde C#, C, PHP veya gibi programlama dillerini kullanma C++ile toplu kullanıcı tanımlı işlevler de oluşturabilirsiniz. Toplama işlevlerini genişletmek için kullanılırlar. SQLite ve bunları özel toplama işlevleri oluşturmak için kullanın.

ÖZET

  • SQLite gördüğümüz gibi veritabanı tabloları ve sütunlarıyla çalışmayı kolaylaştıran kapsamlı bir dizi yerleşik işlev sağlar. Bu işlevleri, SQL sorgularınızdaki herhangi bir ifadedeki değişmez değerlerin yanı sıra sütunlarla da kullanabilirsiniz.
  • Sayısal değerin uzunluğunu elde etmek için uzunluk işlevini sayısal değerlerle de kullanabilirsiniz.
  • UPPER ve LOWER, onlara boş bir değer iletirseniz boş değerler döndürür.
  • SUBSTR işlevi, belirli bir konumdan başlayarak belirli sayıda dize döndürür.
  • REPLACE, başka bir dizede oluşan her dizeyi bir dizeyle değiştirmek için kullanılır.
  • TRIM, dizenin başındaki veya sonundaki boşlukları kaldırır.
  • ABS işlevi sayısal bir değerin mutlak değerini döndürür.
  • YUVARLAK(X), ondalık değerleri veya X sütunlarını yalnızca tam sayı sayılarına dönüştürür.
  • TYPEOF(X) işlevi, adından da anlaşılacağı gibi, X ifadesinin veri türünü döndürür.
  • LAST_INSERT_ROWID() işlevi, veritabanındaki herhangi bir tabloya eklenen son satırın ROW_ID'sini döndürür.