EXISTS

Operater EXISTS se uporablja za preverjanje obstoja kateregakoli zapisa v podpoizvedbi, in vrne TRUE, če poizvedba vrne vsaj en zapis.

    SELECT priimekOsebe FROM osebe
    WHERE EXISTS (SELECT ime FROM stranke WHERE osebe.id = stranke.id AND imeOsebe < 1)
EXISTS 1
EXISTS 2

ANY, ALL

Operatorja ANY in ALL nam omogočata primerjavo med vrednostjo posameznega stolpca in obsegom drugih vrednosti.

Operater ANY kot rezultat vrne logično vrednost, vrne TRUE, če katerakoli vrednost izpolnjuje pogoj.

    SELECT ime FROM stranke WHERE ime > ANY (SELECT imeOsebe FROM osebe)
ANY, ALL 1
ANY, ALL 2

Operater ALL vrne rezultat kot logično vrednost, vrne TRUE, če vse vrednosti izpolnjujejo pogoj. Uporablja se skupaj s SELECT, WHERE in HAVING stavki.

    SELECT ime FROM stranke WHERE ime > ALL (SELECT imeOsebe FROM osebe)
ANY, ALL 3
ANY, ALL 4

SELECT INTO

Pogoj SELECT INTO kopira podatke iz ene tabele v drugo, novo tabelo. Preden začnemo delati s SELECT INTO, si moramo izdelati novo tabelo, kateri sem dal ime novatabela.

SELECT INTO 1

Ko je tabela narejena, vpišemo v SQL sledeče.

    INSERT INTO novatabela (ime, priimek, naslov, mesto)
    SELECT ime, priimek, naslov, mesto FROM stranke WHERE id > 0
SELECT INTO 2
SELECT INTO 3

Naša nova tabela sedaj izgleda enako kot tabela stranke, ker smo uvozili vse podatke v novo tabelo.

SELECT INTO 4

INSERT INTO SELECT

Stavek INSERT INTO SELECT kopira podatke iz ene tabele in jih vstavi v drugo tabelo, vendar se morajo podatki izvornih in ciljnih tabel ujemati, in ne vpliva na obstoječe podatke.

    INSERT INTO novatabela (ime,priimek)
    SELECT imeOsebe, priimekOsebe FROM osebe
INSERT INTO SELECT 1
INSERT INTO SELECT 2
INSERT INTO SELECT 3

CASE

Stavek CASE gre skozi pogoje in vrne vrednost, ko je izpolnjen prvi pogoj (kot stavek if-then-else). Ko je pogoj resničen, bo nehal pregledovati in brati, in nam vrnil rezultat. V primeru, da noben pogoj ni resničen (ang. True), vrne vrednost v stavku else. V primeru, da nimamo vpisanega ELSE pogoja, vrne NULL.

    SELECT id, ime,
    CASE
        WHEN ime > 30 THEN "Vpisanih imen je več kot 30"
        WHEN ime = 30 THEN "Vpisanih imen je 30"
        ELSE "Vpisanih imen je manj kot 30"
    END
    FROM novatabela
CASE 1
CASE 2

NULL funkcije

Funkcija IFNULL nam omogoča vrnitev alternativne vrednosti v primeru, da je izraz NULL.

    SELECT ime, priimek * (id + IFNULL(id, 0)) FROM stranke
NULL funkcije 1
NULL funkcije 2

Ali uporabimo funkcijo COALESCE, kot to vidimo v primeru.

    SELECT ime, priimek * (id + COALESCE(id, 0)) FROM stranke
NULL funkcije 3
NULL funkcije 4

Shranjena procedura

Shranjena procedura je pripravljena SQL koda, ki jo lahko shranimo, tako da jo pozneje lahko pokličemo, ko jo potrebujemo. Če imamo

    DELIMITER //
    CREATE PROCEDURE stranke() -- ime procedure
    BEGIN
    SELECT ime FROM stranke;
    END //
Shranjena procedure 1

Proceduro, ki smo jo napravili (zapisana je v isti bazi kot tabela, pod imenom Procedures) lahko sedaj pokličemo z ukazom:

    CALL stranke
Shranjena procedure 2
Shranjena procedure 3
1 2 3 4 5