Acum este: 29/10/2026 14:07 | Mesaje private
Mesajele la care nu s-a raspuns
Pagina de start a forumului *Ultimate Pro Killers Forum*Pagina de start a forumului *Ultimate Pro Killers Forum*
Membri Grupuri Inregistrare Autentificare

Folosirea filtrarii cu caractere de inlocuire
Creaza un subiect nou   Raspunde la subiect    Pagina de start a forumului *Ultimate Pro Killers Forum* » Tutoriale
Subiectul anterior | Subiectul urmator  
Autor Mesaj
Dar[k]ness^Boy
Founder
Founder


Data inscrierii: 30/Ian/2007
Mesaje: 193
Localitate: P******

MesajTrimis: 21/03/2007 21:40    Titlul subiectului: Folosirea filtrarii cu caractere de inlocuire Raspunde cu citat (quote)

b]Folosirea filtrarii cu caractere de inlocuire
[/b]
* In lectia aceasta,veti invata ce sunt caracterele de inlocuire, cum se folosesc ele si cum sa efectuati cautari cu ajutorul lor si,folosind operatorul LIKE pentru filtrarea sofisticata a datelor regasite
* Operatorul LIKE
Toti operatorii pe care i-ati studiat pana acuma filtreaza bazandu-se pe valori cunoscute.Indiferent daca ei cauta corespondenta uneia sau mai multor valori, daca sunt in cautarea unor valori mai mari sau mai mici de cat altele vestite ,sau daca verifica un domeniu de valori ,numitorul lor comun este faptul ca se cunosc valorile folosite in filtrare.Filtrarea datelor in acest mod nu este posibila intotdeauna.De exemplu ,cum puteti sa cautati toate articolele ce contin in numele lor textul 'jucarie pasare?'Acest lucru nu se poate realiza cu operatorii simpli de comparare, ci doar cu caracterele de inlocuire.Folosind caracterele de inlocuire, puteti crea modele de cautare ce pot fi comparate cu datele existente.I acest exemplu daca doriti sa gasiti toate produsele ce contin in numele lor cuvintele 'jucarie,pasare',puteti sa construiti un model de cautare cu caracter de inlocuire ,care va permite sa gasiti textul 'jucarie, pasare' peste tot in numele unui produs.

Caractere de inlocuireCaractere distincte folosite pentru a corespunde unor parti dintr-o valoare.

Model de cautare.Conditie de cautare alcatuita din text literal si din unul sau mai numeroase caractere de inlocuire

Caracterele de inlocuire sunt caractere ce au intelesuri unice in clauzele WHERE din SQL iar limbajul SQL accepta diverse feluri de caractere de inlocuire.Pentru a utiliza caracterele de inlocuire in clauzele de cautare, trebuie întrebuințat operatorul LIKE .Aceasta anunta sistemul de gestionare a bazei de date ca in urmatorul model de cautare se va folosi o potrivire dupa caractere de inlocuire,nu o simpla potrivire de egalitate.

Cand un operator nu este operator?Atunci cand este "predicat".Din punct de vedere tehnic LIKE este un predicat, nu un operator.Rezultatul final este acela, totusi fiti atent la acest termen, in cazul in care-l intalniti in documentatia sau manualele de SQL.

Cautarea cu caractere de inlocuire poate fi utilizata numai cu campuri de tip text (siruri);nu puteti folosi caractere de inlocuire pentru a cauta campuri cu date de tip non text.
* Caracterul de inlocuire procentaj (%)
Caracterul de inlocuire cel mai frecvent utilizat este procentajul (%).Intr-un sir de cautare%inseamnacorespunde cu orcate aparitii ale orcarui caracter.De exemplu,pentru a gasi toate produsele care incep cu cuvantul'ursulet' puteti folosi urmatoarea instructiune SELECT.

SELECT prod_id , prod_nume
FROM Produse
WHERE prod_nume LIKE 'ursulet'%;

prod_id prod_nume
........................................
BR01 Ursulet 8 inch
BR02 Ursulet 12 inch
BR03 Ursulet 18 inch


Exemplul acesta foloseste șablonul de cautare 'ursulet'%.Cand clauza aceasta este evaluata,va fi regasita orce valoare care incepe cu 'ursulet'Caracterul%anunta sistemul de gestionare a bazei de date sa accepte orce caractere dupa cuvantul ursulet indiferent cat de multe ar fi ele. Caracterele de inlocuire pot fi folosite oriunde in modelul de cautare;de asemenea,se pot folosi mai multe caractere de inlocuire.Urmatorul exemplu foloseste doua caractere de inlocuire,la extremitatile modelului de cautare:

SELECT prod_id, prod_nume
FROM Produse
WHERE prod_nume LIKE '%tip%';

prod_id prod_nume
........................................
BNBG01 Jucarie tip peste
BNBG02 Jucarie tip pasare
BNBG03 Jucarie tip iepure


Modelul de cautare '%tip%' inseamnacorespunde cu orce valoare ce contine textul tip oriunde in interiorul sau chiar de caracterele care preced sau urmeaza acestui text.. Caracterele de inlocuire pot fi de întocmai utilizate in mijlocul modelului de cautare,desi sunt rareori utile in aceasta modalitate.Urmatorul exemplu gaseste toate produsele care incep cu p si se termina cu e.

SELECT prod_nume
FROM Produse
WHERE prod_nume LIKE 'p%e';


Este important de observat ca,pe langa faptul ca asigura o corespondenta cu unul sau mai multe caractere,%asigura corespondentaco zero caractere.%reprezinta 0,1 sau mai multe caractere in locul specificat in modelul de cautare.
* Caracterul de inlocuire liniuta de subliniere(_)
Un alt caracter de inlocuire util este liniuta de subliniere(_).El este utilizat la fel ca %,dar nu asigura corespondenta mai multor caractere,ci numai a unuia singur.

SELECT prod_id, prod_nume
FROM Produse
WHERE prod_nume LIKE '_ inch';

prod_it prod_nume
..................................................
BR02 Ursulet 12 inch
BR03 Ursulet 18 inch


Modelul de cautare folosit in aceasta clauza WHERE specifica doua caractere de inlocuire urmate de text literar.Rezultatele prezentate sunt singurele linii care corespund modelului de cautare :Liniutele de cautare corespund valorii 12 din întâia linie si valorii 18 din a doua linie.Produsul 'ursulet 8 inch' nu corespunde deoarece modelul de cautare necesita potrivirea a doua caractere de inlocuire, nu a unuia.Pe de alta parte,urmatoarea instructiune SELECT foloseste caracterul de inlocuire %si returneaza trei produse corespondente:

SELECT prod_id, prod_nume
FROM Produse
WHERE prod_nume LIKE 'Ursulet%';

prod_id prod_nume
.............................................
BR01 Ursulet 8 inch
BR02 Ursulet 12 inch
BR03 Ursulet 18 inch


Spre deosebire de %,care poate sa corespunda si la 0 caractere,o singura _corespunde intotdeauna la un singur caracter,nici mai mult nici mai putin.
* Caracterul de inlocuire paranteze drepte ([ ])
Caracterul de inlocuire paranteze drepte ([ ]) este folosit pentru specificarea unui set de caractere,orcare dintre ele trebuind sa corespunda unui caracter in pozitia specificata (locul caracterului de inlocuire).De exemplu pentru a gasi toate contactele ale caror nume incep cu litera J sau cu litera M , puteti scrie urmatorul cod.

SELECT cump_contact
FROM Cumparatori
WHERE cump_contact LIKE '[JM]%'
ORDER BY cump_contact;


cump_contact
Jim Jones
John Smith
Michelle Green


Clauza WHERE din aceasta instructiune este '[JM]%'.Modelul acesta de cautare foloseste doua caractere de inlocuire diferite.[JM] cauta toate numele contactelor care sa inceapa cu orcare dintre literele continute intre parantezeledrepte,dar numai una singura.Caracterul de inlocuire %de dupa [JM] corespunde la orcate caractere situate dupa inițialul caracter si astfel returneaza rezultatele dorite. Acest caracter de inlocuire poate fi negat introducand in fata literelor un accent circumflex(^).De exemplu, urmatorul cod gaseste toate numele contactelor care nu incep cu litera J sau cu litera M (invers decat in exemplu anterior):

SELECT cump_contact
FROM Cumparatori
WHERE cump_contact LIKE '[^JM]%'
ORDER BY cump_contact


Desigur,puteti sa obtineti acelasi rezultat ,folosind operatorul NOT .Singurul avantaj al caracterului ^ este ca poate simplifica sintaxa,daca folositi clauze WHERE multiple:

SELECT cump_contact
FROM Cumparatori
WHERE NOT cump_contact LIKE '[JM]%
ORDER BY cump_contact;

Caracterul de inlocuire paranteze drepte ([ ])nu este acceptat de toate SGBD-urile .Consultati-va documentatia sistemului de gestionare a bazei de date pentru a vedea daca accepta acest caracter de inlocuire.
* Caractere de inlocuire non-standard
Unele SGBD-uri utilizeaza caractere de inlocuire non-standard.Cel pe care-l veti intalni probabil cel mai frecvent provine de la Microsoft Acces, care foloseste * pentru %,si ? pentru .In functie de sistemul de gestionare a bazei de date pe care -l utilizati si de felul in care-l utilizati,poate fi necesara intrebuintarea acestor caractere de inlocuire in locul celor standard din limbajul SQL.
*

Sugestii pentru folosirea caracterelor de inlocuire.Dupa cum se poate vedea,caracterele de inlocuire din limbajul SQL sunt foarte puternice ,insa puterea respectiva are un pret :de obicei cautarile cu caractere de inlocuire dureaza mult mai mult decat orcare alte soiuri de cautari prezentate anterior.Iata cateva reguli de care trebuie sa tineti seama atunci cand folositi caractere de inlocuire. -Nu exagerati cu utilizarea lor.Daca se poate utiliza si alt operator de cautare apelati la el. -Atunci cand folositi caractere de inlocuire incercati sa n-o faceti la inceputul modelului de cautare decat daca este perfect necesar .Modelele de cautare care incep cu caractere de inlocuire au durata de prelucrare cea mai lunga. -Atentie la plasarea caracterelor de inlocuire .Daca sunt plasate gresit este posibil sa nu va fie returnate datele dorite.Caracterele de inlocuire raman totusi un instrument de cautare important si util pe care -l veti folosi frecvent

etutoriale
_________________
Folosirea filtrarii cu caractere de inlocuire Folosirea filtrarii cu caractere de inlocuire
[url=http://www.nllimit.myforum.ro/reguli-forum-vt103.html]Citeste Regulile![/url]
...
Vezi profilul utilizatorului Trimite mesaj privat
Sus
Creaza un subiect nou   Raspunde la subiect    Pagina de start a forumului *Ultimate Pro Killers Forum* » Tutoriale
Afiseaza mesajele pentru a le previzualiza:   
 
 
Ora este GMT + 3 ore
Mergi direct la:  

Pagina 1 din 1


Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum


Powered by phpBB © 2001, 2002 phpBB Group
Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro