Institute of Computer Science
  1. Courses
  2. 2023/24 fall
  3. Introduction to Databases (MTAT.03.105)
ET
Log in

Introduction to Databases 2023/24 fall

  • Kursuse korraldus
  • Loengud
    • Loenguid toetav õpik (autorid: Karl Taal & Piret Luik)
  • Praktikumid
    • Praktikume toetavad materjalid (autorid: Uku Roio & Piret Luik)
  1. Tarkvara paigaldamine
  2. Mis faile on vaja esitada iseseisvate tööde jaoks?
  3. Päringulause (algus)
  4. LIKE operaator
  5. Päringud funktsioonidega
  6. Päringulause (jätk)
  7. Päringud mitmest tabelist
  8. Tabelite loomine. Kirjete lisamine ja muutmine
  9. Tabelite muutmine
  10. Vaated
  11. Kordamine
  • Paaristöö: Oma mudel
  • Viited


LIKE operaator

LIKE operaator on ka üks võimalikest operaatoritest, mida saab kasutada koos WHERE märksõnaga. LIKE operaator pakub võimalust täpsustada enda järel mingit mustrit, mille põhjal saab veergude väärtuseid piirata. Tihtipeale kasutatakse seda sõnede juures, kus otsitakse tabelist kirjeid, kus veeru väärtus sisaldab mingit kindlat sümbolite kombinatsiooni. LIKE operaatorit kasutatakse tekstiliste andmetüüpidega (varchar, text, char) defineeritud väljadel. LIKE operaatori puhul võrreldakse teksti teatud mustriga. Mustri koostamiseks on kasutada kaks põhilist sümbolit: '_' ja '%'. Alakriips '_' sobib suvalise ühe sümboli asemele ning protsendimärk '%' sobib sümbolite jada asemele. Näiteks kirjutades päringu

SELECT eesnimi 
FROM isikud 
WHERE eesnimi 
LIKE 'Mari%', 

saame tulemuseks nii nime Mari kui ka nimed Maris, Mariann, Marit, Mari-Liis jne. Kirjutades aga päringulause

SELECT eesnimi 
FROM isikud 
WHERE eesnimi 
LIKE 'Mari_' 

saame tulemuseks küll Maris, Marit, Marin, Maria jne, kuid teisi nimesid ei saaks, sest siin nõutakse, et oleks lisaks algusele Mari veel üks suvaline täht. Samas teades, et tabelis on keegi eesnimega Peeter, aga me ei ole kindlad, kas perekonnanimi on Peet või Leet. Ehk siis ühe sümboli vahe, siis sellisel juhul on _ kasutamine omal kohal.
Sooritame päringu:

SELECT * FROM isikud WHERE eesnimi='Peeter' AND perenimi LIKE '_eet';

% saab kasutada mustris ees ja taga. Päringulause

SELECT eesnimi 
FROM isikud 
WHERE lower(eesnimi) 
LIKE '%mari%' 

annab lisaks meile tulemustabelisse ka sellised nimed nagu Annemari jms. % märk võib esineda suvalises kohas, ka sõna keskel ja mitu korda. Kuna PostgreSQL eristab suur- ja väiketähti on hea muuta eelnevalt kogu nimi kas suurtähtedest või väiketähtedest koosnevaks. Analoogselt LIKE operaatorile saab ka kasutada operaatorit NOT LIKE. Oluline on aga märkida LIKE operaatori oht - kui kasutatakse % esimesel kohal, siis on päring aeglasem.

Mustri elemente % ka _ saab kasutada ka kombineeritult.
Pärime kõik kirjed, kus perenimes enne n sümbolit võib olla üks või mitu sümbolit ja peale n tähte võib olla üks suvaline sümbol.

SELECT perenimi FROM isikud WHERE perenimi LIKE '%n_';

Mõtiskle, millised perenimed vastaksid sellisele tingimusele. Kui soovid oma teadmisi kontrollida, ava test.
AVA TEST

Mustri elemente % ka _ saab kasutada ka sõne keskosa maskeerimisel.
Mõtiskle, millised perenimed vastaksid sellisele tingimusele:

SELECT perenimi FROM isikud WHERE perenimi LIKE 'K%s';

Kui soovid oma teadmisi kontrollida, ava test.
AVA TEST

NOT LIKE toimib LIKE suhtes vastupidi.
NOT LIKE puhul on mustri loomise elemendid _ ja % ja nende kombinatsioonid samuti nagu LIKE puhul kasutatavad.
Kui soovime otsida isikuid, kelle perenimed ei alga K-tähega, saame kirjutada päringu

SELECT * FROM isikud WHERE perenimi NOT LIKE 'K%';
Päringulause (algus)Päringud funktsioonidega
  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment