U SQL-u, string (niz karaktera) je podatak tipa:

  • CHAR ( n ) – tekst fiksne dužine,
  • VARCHAR ( n ) – tekst promenljive dužine,
  • NCHAR / NVARCHAR – za tekst koji koristi Unicode znakove (ćirilica, specijalni simboli) - ovaj tip koristi samo MS SQL Server.
  • ( TEXT – duži tekst - zastarelo za MS SQL Server, aktivno se koristi u MySQL-u)

Stringovi se uvek pišu pod navodnicima ('tekst').

Primer:

SELECT 'Ovo je tekstualna vrednost' AS Primer;

Najčešće funkcije za rad sa stringovima

SQL nudi mnogo funkcija za rad sa tekstom.
Ovde su najvažnije i najčešće korišćene.


1️⃣

Vraća broj karaktera u tekstu (bez praznina na kraju).

SELECT LEN('SQL Server') AS BrojKaraktera;

Rezultat: 10

Ako tekst ima razmake na kraju, LEN ih ne broji.
Postoji i funkcija DATALENGTH() koja broji i razmake (i bajtove).


2️⃣
Pretvaraju tekst u mala ili velika slova.

SELECT 
    LOWER('PROGRAMIRANJE') AS MalaSlova,
    UPPER('baze podataka') AS VelikaSlova;

Rezultat:

MalaSlova VelikaSlova
programiranje BAZE PODATAKA

3️⃣

Uklanjaju razmake s leve (LTRIM) i desne (RTRIM) strane stringa.

SELECT 
    LTRIM('   SQL') AS BezLevihRazmaka,
    RTRIM('SQL   ') AS BezDesnihRazmaka;

Rezultat:

BezLevihRazmaka BezDesnihRazmaka
SQL SQL

4️⃣

Omogućava da uzmemo deo teksta (određeni broj karaktera).

Sintaksa:

SUBSTRING(tekst, početna_pozicija, dužina)

Primer:

SELECT SUBSTRING('PROGRAMIRANJE', 1, 7) AS Deo;

Rezultat: PROGRAM


5️⃣
SELECT 
    LEFT('SQL Server', 3) AS PrvaTri,
    RIGHT('SQL Server', 6) AS ZadnjihSest;

Rezultat:

PrvaTri ZadnjihSest
SQL Server

6️⃣

Menja jedan deo teksta drugim.

SELECT REPLACE('Učimo SQL', 'SQL', 'C#') AS NoviTekst;

Rezultat: Učimo C#


7️⃣

Vraća poziciju gde se određeni tekst prvi put pojavljuje.

SELECT CHARINDEX('L', 'SQL LANGUAGE') AS Pozicija;

Rezultat: 3

Ako tekst ne postoji – rezultat je 0.


8️⃣
SELECT REVERSE('SQL') AS Obrnuto;

Rezultat: LQS


Primeri:

Kreirati tabelu i uneti neke podatke:

CREATE TABLE Ucenici (
    ID INT IDENTITY(1,1),
    Ime NVARCHAR(20),
    Prezime NVARCHAR(20)
);

INSERT INTO Ucenici (Ime, Prezime) VALUES
('Milan', 'Petrovic'),
('Ana', 'Nikolic'),
('Jovana', 'Maric');
Primer 1 — izdvajanje prvog slova prezimena
SELECT Ime, LEFT(Prezime, 1) + '.' AS Inicijal
FROM Ucenici;
Primer 2 — pretvaranje u velika slova
SELECT UPPER(Ime + ' ' + Prezime) AS VelikaSlova
FROM Ucenici;

Zadaci za samostalan rad (diferencirani)

🔹 Lakši zadaci (za učenike koji se slabije snalaze)

  1. Prikazati dužinu stringa 'Baza podataka'.

  2. Napisati upit koji pretvara 'sql server' u velika slova.

  3. Ukloniti razmake sa leve strane stringa ' primer'.


🔸 Srednji nivo

  1. Prikazati prva tri slova prezimena svakog učenika.

  2. Iskombinovati ime i prezime u jednu kolonu razdvojenu razmakom.

  3. Zameniti sva slova a u imenu sa @.


🔹 Napredni nivo

  1. Prikazati prezimena učenika obrnuto napisano (REVERSE).

  2. Prikazati samo učenike kod kojih ime sadrži slovo o (koristiti CHARINDEX).

  3. Kao rezultat upita treba napraviti novu kolonu Opis u kojoj piše:
    "Učenik Ime Prezime ima dužinu imena X karaktera"
    (koristiti CONCAT i LEN).

Lakši

SELECT LEN('Baza podataka') AS Dužina;
SELECT UPPER('sql server') AS Velika;
SELECT LTRIM('   primer') AS Rezultat;

Srednji

SELECT LEFT(Prezime,3) AS TriSlova FROM Ucenici;
SELECT CONCAT(Ime,' ',Prezime) AS PunoIme FROM Ucenici;
SELECT REPLACE(Ime,'a','@') AS NoviTekst FROM Ucenici;

Napredni

SELECT REVERSE(Prezime) AS Obrnuto FROM Ucenici;

SELECT Ime, Prezime
FROM Ucenici
WHERE CHARINDEX('o', Ime) > 0;

SELECT 
    CONCAT('Učenik ', Ime, ' ', Prezime, 
           ' ima dužinu imena ', 
           LEN(Ime), ' karaktera.') AS Opis
FROM Ucenici;

Dodatna literatura:

..

Poslednja izmena: петак, 17. октобар 2025, 14:20