Sunteți pe pagina 1din 10

SENSUL UNOR TERMENI CURENTI

Selecting alege = alegere de elemente dintr-un tabel dupa criterii date


Tool unealta = comanda de actiune
Toolbar rastel cu scule = colectie de programe-actiuni
Default - . =valoare sau stare existenta (din fabrica) daca nu s-a impus alta in mod
expres
Query cerere =comanda pentru realizarea unor operatii
Operator operator =simbol al unei operatii matematice / logice
Template - .=model,cadru,formular
Window - fereastra =portiune de ecran
Layer strat =multime omogena de informatii cartabile
SQL - limbaj de cereri structurat = limbaj pentru MapInfo
Browser rasfoitor = tabel facut sa defileze pe ecran
File fisier = multime de informatii memorate ordonat
Fild camp = sectiune a unei entitati(ex.coloana sau rand in tabel,portiune de ecran)
Dialog dialog =imagine avand campuri pe care operatorul trebuie sa le completeze
Mapping cartare = figurare sub forma de harta
Map window fereastra harta = harta pe ecran
Graph grafic = prezentare grafica a datelor pe ecran
Graphic object obiect grafic =punct,linie sau arie
Statement declaratie = instructiune
Workspace loc de lucru = configuratie de tabele si imagini salvate
Set multime
Subset submultime
Query table tabel de cerere =tabel rezultat al unei cereri
Live data date in lucru =date care pot fi actializate oricand
ODBC driver agent ODBC
DBMS sistem de gestiune a bazei de date
Customize uzualizare = a reda intr-o forma proprie
Server servitor =logical care creaza obiecte
Metadata metadate =date accesibile despre un obiect inaccesibil
OLE object linking&embedding = legarea si plasarea unui obiect
Download a descarca = a copia fara a pastra originalul
Unload - a descarca = a transfera fara a pastra originalul
Alias sinonim =nume nou dat in locul unui nume creat automat
Aggreating globalizare = valori globale deduse din valori individuale
Geocode geocodare = atribuirea de coordonate obiectelor (geo)grafice
ZIP code- cod postal
9. ALEGEREA PRIN CERERI
Introducere: se expune utilizarea comenzilor Select si SQL Select
Alegerea prin cereri
Query cerere este sinonim cu Question intrebare:instructiune la care se asteapta
infirmatii.
Comanda Select alege dintr-un tabel informatiile cu o anumita caracteristica;SQL
Select cere sistemului sa prelucreze informatiile alese dupa criterii precizate- de ex: sa
creeze intr-un tabel coloane noi ,cu valori obtinute printr-un anumit calcul din cele
aflate in coloanele existente;sa listeze datele ca sa listeze numai subtotaluri in loc de a
reda tot tabelul; sa combine 2;3 tabele in unul rezultant;sa ecranizeze numai
coloanele si randurile care intereseaza.

369239013.doc pag1
Ce este SELECT
Prin SELECT se cere un tabel;se cere sa se aleaga inregistrari si obiecte dintr-un
tabel,care corespund unor atribute indicate,sau sa se ilumineze intr-o harta sau un
rasfoitor obiecte care corespund anumitor criterii,sa se creeze un tabel de rezultate ale
selectiei,care sa poata fi rasfoit,cartat sau reprezentat grafic.
Ex.de cereri prin Select:
- - sa se arate regiunile (dupa codul postal)in care venitul mediu pe gospodarie
depaseste 65000$
- - sa se arate regiunile in care varsta medie este 42 ani
- - sa se arate regiuniole in care venitul mediu depaseste 65000$ iar varsta medie
este 42 ani
- - sa se vizualizeze inregistrarile despre toate comenzileprimite in iulie sau
septembrie
- - sa se enumere orasele cu peste 100000 locuitori din Texas,California si Florida.
Cand pe ecran este un rasfoitor,MapInfo ilumineaza inregistrarile care corespund
criteriilor cererii.Cand pe ecran este o harta ,obiectele grafice ale inregistrarilor alese
sunt iluminate.In toate cazurile,MapInfo creaza automat un tabel de lucru numit
Selection care contine rezultatele date cererii;acest tabel se poate rasfoi,carta sau
reprezenta ca grafic,ca si orice alt tabel.Tabelul Selection poate fi si salvat ca tabel
separat,prin instructiunea Save Copy As.
Crearea de expresii
Pentru a face o cerere Select,trebuie creata o expresie.Expresia este o declaratie
logica folosita pentru a raspunde cererii.Sunt de inchiriat niste apartamente.Se cere un
tabel temporar cu cele a caror chirie este mai mica decat800$ pe luna;se va folosi
expresia
. RENT < 800
unde RENT este numele coloanei care contine chiria lunara.
MapInfo cauta tabelul de apartamente si in el,inregistrarile care satisfac conditia,l-e
trece pe toate in tabelul temporar si acesta poate fi rasfoit,cartat sau supus unor cereri
suplimentare.
Se pot face operatii matematice cu datele.De ex. Se poate cere un tabel temporar al
apartamentelor al caror cost lunar total(chirie si cheltuieli de intretinere ) este mai mic
decat 800$
Se va scrie expresia:
. RENT + UTILITIES <800 (utilities = cheltuieli de intretinere)
MapInfo va aduna numarul din coloana RENT cu cel din coloana UTILITES,la
fiecare apartament si va compara rezultatul cu 800.
Sunt doua cai de creare a expresiilor.Prima metoda este sa se dactilografieze direct
expresia.Cand sunt expresii simple ,asa merge mai repede.A doua este sa se apese pe
butonul (virtual)Assist din imaginea dialog Select (v.prima figura din pag.128) si sa
se combine expresia din submenu-urile PopUp aduse in imaginea- dialog Expression
(v.a doua fig.din pag.128).Aceasta metoda este mai buna la inceput sau cand
expresiile sunt complicate.In Expression sunt 3 butoane virtuale care chiama fiecare
cate un submenu PopUp:Coloane,Operatori,Functii

.COLOANE
Acest submenu listeaza coloanele tabelului din care se face alegerea.Daca tabelul
contine coloane deja derivate cu prilejul unor cereri anterioare si acestea vor figura.

369239013.doc pag2
. OPERATORI
Acest submenu contine operatori matematici si logici se
adunare,scadere,inmultire,impartire,mai mare ca,mai mic ca si egal.Cu ei se pot face
formule matematice.De ex. Din tabelul cu comisionari se cere sa se aleaga cei care, in
medie,castiga brut mai mult de 2000$ pe luna (castigul brut se calculeaza ca suma
salariilor si comisioanelor pe un an impartita la12).
In tabel sunt 2 coloane intitulate TOTAL-SALES si COMMISSION,cu valorile
anuale realizate de fiecare salariat.Se va forma expresia
. ( TOTAL_SALES +COMMISSION ) / 12<2000
MapInfo va executa instructiunea dupa regulile obisnuite.
Submenu-ul Operators contine si operatorii logici AND,NOT,OR si LIKE
. FUNCTII
Acest submenu contine functii matematice care preiau unul sau mai multi
parametrii(numerici) si redau o valoare.Se folosesc pentru operatii matematice asupra
datelor dintr-o anumita coloana.De ex.
. abs(<number>)
da valorile absolute sle numerelor din coloana specificata. De ex. un meteorolog cauta
zilele cand temperatura in orasul lui a diferit cu mai mult de 10 grade de media pe tara
(la o ora precizata); el are deja o coloana in tabel AVC_DIFF care contine diferenta
intre temperatura din acel oras si cea medie pe tara,la o ora anumita,in fiecare zi.Ar
putea forma expresia
. AVG_DIFF <-10 OR AVG_DIFF >10
dar este mai simplu sa scrie (si sa se execute):
. abs (AVG_DIFF)>10
Printre functiile din submenu sunt cele care calculeaza aria,perimetrul,sin,cos,etc.
Lista completa v.Appendix D,Creating Expressions pag467
Pasi pentru a folosi Select
1. Se alege Select din menu-ul Query (scrisQuery>Select )
2. Se specifica tabelul din care se cere sa se aleaga
3. Se creaza expresia logica pe baza careia se va alege
4. Se alege o coloana in care cererea sa fie obtinuta sortata (de la sine cererea nu este
sortata) optional
5. Pentru a vedea o lista a inregistrarilor alese,se apasa pe casuta Browse Results
6. MapInfo creaza un Browsersal noului tabel rezultat .MapInfo numeste acest
tabel Query1.El va numi urmatorul tabel de alegeri Query2 etc. Se poate impune
alt nume de ex.mai sugestiv introducandu-l (litera cu litera) in casuta din
ecranul Select de pe randul Store Rezults in Table.
Noul tabel poate fi si salvat ca tabel separat cu instructiunea Save Copy As.
. Exemplu de alegere :din lista mondiala sa se extraga tabelul tarilor cu mai putin de
10% analfabeti. (v.pag.128 imaginea Select)
Se deschide tabelul world.tab si se alege Select din menu-ul Query.Facand sa
defileze continutul de pe randul Select Records from Table, se alege World.
Se apasa pe butonul Assist.Apare imaginea Expression (v. pag.128 jos
imag.Expression).Se completeaza dialogul ca in imagine: din Columns,.prin
defilare,se alege Literacy (engl.stiinta de carte);din Operators se alege > ; apoi se
dactilografiaza 90. Se apasa pe Verify ca sa se verifice ca sintaxa expresiei este
corecta; se apasa apoi pe OK ca sa se inchida dialogul Verify si inca o data pe OK in
Expression ca sa se revina la Select. Se mai verifica daca pe casuta Browse results
este V, de nu,se pune .Se apasa iar pe OK.

369239013.doc pag3
MapInfo creaza un Browser (rasfoitor) cu tarile selectate (stiinta de carte >90.0%.
Aceleasi tari sunt evidentiate (prin colorit) in harta globului.

Facerea unui nou tabel folosind un subfisier dintr-un fisier.


Datele disponibile cu MapInfo dintr-un fisier sunt parte utile,parte nu pentru un
utilizator.Pentru comoditate se poate extrage un subfisier de ex. dintr-un tabel de
date pe o tara pe cele ale unui judet.
Sunt doua cai : alegerea interactiva sau folosirea unei instructiuni SQL
Alegerea interactiva
1. Se alege File >Open Table si se deschide tabelul.reprezentat ca harta pe ecran.
2. Se aleg obiectele la care se va referi subfisierul,folosind uneltele Select Tool
(v.pag.118), Radius Search Selector Tool (v.pag.119), Polygon Search Selector
Tool (v.pa.121).Pentru a alege mai multe obiecte se deplaseaza si se apasa.Harta
poate semana cu cea din fig. De la pag 130.
3. Se alege File >Save Copy As si se salveaza tabelul selectionat cu indiferent ce
nume de fisier.
Alegerea folosind SQL Select
De ex. pentru a alege statele care au densitatea populatiei mai mare decat o
anumita valoare,
1. Se alege File >Open Table si se deschide tabelul.
2. Se alege Query >SQL Select.Apare imaginea din pag.131;in imagine se alege
tabelul (in fig.States) si se scrie conditia (in fig. (Pop_1990 / Total_Area) >100 );
se da si numele de fisier (hidensity); asteriscul din Select Columns transfera
toate coloanele din tabelul de origine (states) in cel nou (hidensity)
3. Se opereaza File >Save As cu indiferent ce nume.
Ce este SQL Select
O selectie este o submultime de date cu unul sau mai multi parametri comuni;o
cerere (Query) poate avea ca rezultat o selectie (Selection) ale carei rezultate sunt
depozitate temporar de MapInfo intr-un tabel de cerere Query table)
Spre deosebire de Select, care poate oferi un tabel cu date alese dintre cele existente
intr-o memorie,SQL Select poate furniza si date create din informatii continute numai
implicit in acea memorie.
Se descrie mai jos metoda SQL Select folosind un exemplu.
. Exemplu : Folosind harta lumii sa se creeze un tabel cu toate tarile care au o
densitate a populatiei de peste 500loc/mila2 (193 loc./km2).Tabelul hartii are o
coloana cu populatia (pop_1994), dar aria se calculeaza pentru fiecare tara.
Se deschide tabelul World.tab si se face maxima reprezentarea grafica apasand pe
butonul de maximizare a ferestrei.Se actioneaza Query >Select; apare imag.din
pag.135 sus.Pentru a completa chestionarul se va proceda astfel:
1. Pe randul from Tables se va trece WORLD ruland lista de la Tables. In alte cazuri
s-ar putea sa fie nevoie de mai multe tabele.
2. Dupa from Tables se completeaza Select Columns
3. (daca nu se face uz de toate coloanele) se sterge asteriscul.Comanda Select
Columns difera de Browse >Pick Fields prin faptul ca poate culege coloane din
tabele diferite si poate crea coloane noi pentru rezultate de calcul partiale si finale
(coloane derivate)
4. Se alege coloana Country(tara)
5. Se alege coloana pop_1994 ;in tabel nu exista coloana cu suprafetele tarilor,dar
functia Area,definita,poate determina aria unui obiect cartabil.
6. Se alege din Operators semnul de impartire /

369239013.doc pag4
7. Se alege din Functions functia Area.Aceasta trebuie sa creeze o coloana derivata.
8. Se aduce cursorul pe cartusul Where Condition
9. Se alege pop_1994 din Columns
10. Se alege / din Operators
11. Se alege Area din Functions
12. Se alege > din Operators
13. Se dactilografiaza numarul 500
Astfel s-a creat expresia pop_1994/area>500
14. Randul Group by Columns se lasa gol
15. Se aduce cursorul pe Order by Columns
16. Se alege Country din Columns
17. Se aduce cursorul pe into Table Named
18. Se dactilografiaza Density
De la sine MapInfo va numi acest tabel de cerere Query1,iar urmatoarele eventuale
Query2,3,etc; prin into Table Named I se da la dorinta un nume sugestiv
19. Se apasa pe Verify pentru ca MapInfo sa verifice sintaxa instructiunii SQL
primite.Daca exista erori,va aparea un mesaj de eroare indicand randul eronat si
felul erorii.
20. Se asigura ca Browsw Results are in fata V ; daca nu este pus,MapInfo creaza
tabelul de cerere temporar,dar nu-l vizualizeaza pe ecran; pentru al vedea va trebui
aleasa in menu-ul Window optiunea Browse si apoi, din lista cu defilare
Tables,ales Density (cum s-a scris la 18)
21. SE apasa pe OK
MapInfo va crea tabelul din fig. De la pag.135 jos.Prima coloana este numele
tarii,a doua densitatea.Tarile sunt in ordine alfabetica (pe baza ordinului Country
(pct.4) si in lista apar numai densitati peste 500 loc/mila2.
Salvarea cererilor
Orice cerere creata prin Select sau SQL Select se poate salva ca tabel de cerere in
MapInfo.Un tabel de cerere consta dintr-un fisier .TAB si unul .QRY. Dupa ce se
construieste o instructiune Select sau SQL Select se alege File>Save Query.Cand se
deschide acest tabel de cerere,tabelele pe baza carora s-a rezolvat cererea sunt
redeschise si cererea este rezolvata din nou.
NOTA: Cereri facute pornind de la alte cereri nu pot fi salvate nici ca tabel,nici intr-
un spatiu de lucru.
Cererile se pot salva si in spatii de lucru (un spatiu de lucru workspace este o
configuratie de tabele si ferestre (windows ) salvata).Cand se deschide un spatiu de
lucru care contine o cerere,cererea va fi din nou rezolvata si toate ferestrele create prin
ea se vor vizualiza.Nu se va crea un fisier .TAB .
Pentru a salva cereri ca spatii de lucru se va alege
Options>Preferences>Startup>Save Queries in Workspaces
Si aceasta din urma se va bifa in casuta V ;din fabrica ea este deja bifata.
Modele de cerere (Query templates,template=model,formular)
Modelele de cereri pot salva cereri Select sau SQL Select ca formule (fara valori
precizate) si le pot completa (eancarca) ulterior (economie de timp de a le
compune).
In imaginile Select si SQL Select (v.fig.pag.135) exista optiuni (butoane virtuale)
numite Save Template si Load Template. Conditia de folosire este sa se recurga la
aceleasi fisiere de date sau la altele cu aceleasi coloane.
.Salvarea unui model

369239013.doc pag5
Dupa scrierea cererii se apasa pe butonul (virtual) Save Template si cererea se
salveaza ca model sau fisier de cerere. Pe ecran apare Save Dialog to Query File ;se
va da fisierului de cerere un nume ,se va alege un plic (folder) si se va apasa pe
Save.
Fisierele salvate au extensia .QRY si se gasesc in repertoriul (directory) specificat
in
Options >Preferences>Directories
NOTA: O cerere se poate salva ca model chiar daca este incompleta sau are greseli de
sintaxa
. Incarcarea unui model
Se poate incarca (valori ) un model apasand pe butonul (virtual) Load Template.
Apare pe ecran Load Dialog From Query File, care afiseaza lista fisierelor de
cereri salvate.Se alege fisierul .QRY care intereseaza si se apasa pe Open.Apare
ecranul Select sau SQL Select cu valorile folosite de data precedenta.Se executa
cererea si va fi creat Browser-ul cererii.
Coloane derivate
O coloana derivata este cea a carei continut este calculat,rand cu rand,pe baza datelor
din coloane existente in tabele din baza de date (ex.densitatea in cazul precedent.Se
pot crea si mai multe coloane derivate(crescand astfel timpul de rezolvare a cererii).
Se pot crea coloane derivate si pe baza functiilor agregate(globalizatoare) Count
(numara randurile),Sum (aduna valorile),Awg (face media valorilor),Wtavq ? (medii
ponderate,v.pag 384),max (cea mai mare valoare de pe coloana),min (cea mai mica
valoare de pe coloana).
Ex. Sum(area(obj),sqmi) da suprafata uscatului
Crearea de sinonime
MapInfo da drept nume ,unei coloane derivate,insasi formula de calcul,expresie prea
lunga.Se poate indica un sinonim (alias) drept nume al coloanei.Pentru aceasta se
adauga noul nume in cartusul Select Columns(v.fig.pag.135 sus) intre ghilimele dupa
vechiul nume. Sinonime se pot da si coloanelor preluate fara a fi derivate.
Ex. In exemplul precedent coloanele erau (v.fig.pag.135 sus):
Country,Pop_1994/Area(obj.sqmi)
si se inlocuiesc: Country cu Territory si densitatea cu Pop_Density.
Se va scrie
CountryTerritory,Pop_1994/Area(obj.sqmi)Pop_Density

. Exemplu mai amplu : A se calcula densitatea populatiei globului.


Se vor aplica: crearea de coloane derivate bazate pe functii agregate,rebotezarea
coloanelor,crearea unui nou tabel de rezultate si aplicarea SQL Select la acest nou
tabel.
Formula este Total population/Total area,dar tabelul WORLD nu are populatia
totala,ci pe tari,iar aria se calculeaza.Se va aplica functia agregata Sum.
Se deschide tabelul WORLD si I se face maxima imaginea cu butonul de
maximizare al ferestrei (imaginii)
Se alege Choose Query > SQL Select. Apare imaginea de la pag.135 sus.
1. La from Tables se alege World din losta defilanta Tables
2. Se sterge asteriscul de la Select Columns.
3. Din lista defilanta Aggregates se alage Sum.

369239013.doc pag6
4. Din lista defilanta Columns se alege Pop_1994.Populatia apare pe ecran cu
cursorul inainte de paranteza inchisa; se va muta cursorul in exteriorul paranterei
cu clapasageata spre dreapta
Sum(Pop_1994) va crea o coloana derivata in care se va inscrie populatia totala a
lumii.
5. Se apasa pe clapa spatiu libero data si se dactilografiaza in continuare
Total_Pop care va fi de acum sinonimul. Obs:spatiul liber nu se vede in
imagine(pag.139,146 etc.dar este interpretat.
6. Din Aggregates se alege Sum
7. Din Functions se alege Area (cu parametrii obj,sqmi in paranteza);ca si mai
inainte,se misca cursorul spre dreapta ca sa iasa in afara parantezei a
doua.Sum(Area ()) va crea o coloana derivata in care se va calcula aria totala.
8. Se apasa pe clapa spatiuliber si se continua introducand sinonimul
Total_Area.
9. Nu se actioneaza in spatiile Where Condition,Group By Columns si Order By
Columns.
10. Se ajunge la into Table Named si aici se scrie TOT_POP_AREA,ca nume al
tabelului
11. Se apasa pe Verify si,daca este bine,se apasa OK.
12. Se verifica Browse Results ca are x; imaginea pe ecran este ca in pag.139
13. Se apasa pe OK
MapInfo creaza un tabel TOT POP AREA cu doua coloane (fig.la pag.140
sus):populatia totala si suprafata totala (in mile2)(un rand)
Acum se poate aplica SQL Select la tabelul TOT POP AREA
Se actioneaza Query > SQL Select
1. In from Tables se alage TOTAL_POP_AREA care acum exista in lista defilanta
Tables.
2. Se intra pe Select Columns si se sterge ce a ramas de la cererea precedenta.
3. Se alege Total Pop din lista Columns. Pe ecran apare COL1 in loc: cand se cer
coloane derivate dintr-o cerere precedenta,in locul numelor apar numerele
coloanelor.
4. Se alege semnul / din lista Operatori
5. Se alege Total_Area din Columns.Apare scris COL2
6. Se lasa neatinse Where Condition,Group By Columns si Order By Columns.
7. Se intra pe into Table Named si se dactilografiaza WORLD_DENSITY ca
nume al noii liste.
8. Se apasa pe Verify si,daca nu sunt erori,pe OK
9. Se verifica sa fie V la Browse Results.Imaginea de pe ecran va fi ca in fig.de la
pag.141 sus.
10. Se apasa pe OK
MapInfo produce pe ecran un tabel de o coloana si un rand, denumit
WORLD_DENSITY si avand titlul coloanei Total_Pop/ Total_Area.Densitatea este
in locuitori pe mila patrata. (v.pag.141 jos)
Agregarea datelor
Agregarea (globalizarea) datelor inseamna efectuarea de operatii matematice pe
toate valorile dintr-o coloana,provenind din inregistrari (randuri) distincte, pe cand
comenzile Select permiteau operatii numai cu valori din diverse coloane,dar de pe
acelasi rand.
Pentru a agrega date, trebuiesc specificate:
- pe ce criteriu sa se grupeze inregistrarile (randurile)

369239013.doc pag7
- cum sa fie agregate datele (ce functie sa li se aplice)
Ex. Din tabela de la pag.142 sus, cu salariile a trei salariati pe cate trei luni se pot
calcula:
a. salariile totale pentru fiecare ,inscriind in SQL Select;
Select Columns: SALES_REP,sum (SALES)
Group ByColumns: SALES_REP
si se obtine tabelul din pag.142 jos
b. Salariile medii pentru fiecare,inscriind in SQL Select
Select Columns: SALES_REP,AVG(SALES
Group by Columns :SALES_REP
Si se obtine primultabel din pag.143
c. Suma salariilor pe fiecare luna:
Select Columns:MONTH,sum (SALES)
Group by Columns :MONTH
MapInfo are 6 functii agregate (amintite mai sus la pag.137-Coloane derivate)
functie de o expresie notata in paranteza:
.Count ( * ) numara inregistrarile(randuri) are ca expresie asteriscul pentru ca nu
opereaza cu valori
. Sum (expresie ) aduna valorile calculate cu expresia citata,pentru toate
inregistrarile dintr-un grup.
. Average (expresie) face media valorilor expresiei pentru toate
.WtAvg (expresie) face o medie ponderata a valorilor expresiei
. Max (expresie) scoate valoarea maxima a expresiei dintre cele pentru toate
inregistrarile dintr-un grup
.Min (expresie) idem valoare minima.
Clauzele Group By si Order By
Cererea SQL poate fi grupata dupa o anumita coloana, in sensul ca pe tabelul care va
rezulta din rezolvarea ei randurile care au intr-o anumita coloana aceeasi valoare
(poate fi un numar sau un nume!) sa fie grupate impreuna.Coloana de referinta va fi
inscrisa pe randul Group by Columns din imaginea SQL Select.Cand se foloseste
impreuna cu functii agregate, randurile cu aceeasi valoare in coloana de referinta sunt
tratate in grup.
Randurile identice cu altele precedente se sterg si pentru coloane derivate se dau
valori agregate conform cu functia agregata aleasa,Gruparea poate fi facuta si dupa
doua sau mai multe coloane (inauntrul grupului dupa prima coloana inscrisa, o
subgrupare dupa valorile din a doua coloana inscrisa etc. deoarece grupul se cheama
Group by Columns)
Daca coloana de referinta este una derivata , se inscrie numarul coloanei.
Se poate cere ca MapInfo sa ordoneze in tabel rezultatele cererii intr-un anumit
mod.De la sine MapInfo le ordoneaza dupa ordinea ascendenta din prima coloana
(ordine alfabetica sau numerica) cu ordonare dupa a doua coloana intr cele care au in
prima aceeasi valoare.etc.Daca se dau prin Order By Columns, aceeasi regula se
pastreaza;prima coloana,a doua etc.fiind cele scrise ca atare la Order By Columns.
Se inscriu numele sau numerele coloanelor;la cele derivate neaparat numarul si nu
precedat de Col.
Detalii in MapInfo Reference.
Imbinarea tabelelor folosind SQL Select
Cand se face o operatie SQL Select cu mai multe tabele,MapInfo trebuie sa imbine
informatii cu obiect comun din tabele diferite.

369239013.doc pag8
Poate fi de ex.un tabel cu obiecte grafice si altul cu date statistice legate de aceleasi
obiective geografice;se poate crea un tabel de cerere care sa cuprinda pe
ambele,corelate dupa obiectiv.
Se va scrie in Where Condition o declaratie care sa arate cum se coreleaza un rand
dintr-un tabel cu cel corespunzator din al doilea tabel.
De ex. fie tabelul World cu tarile lumii si un tabel de date economice (Eco-Stars) de
asemeni referitoare la diverse tari. Se creaza un tabel de cerere temporar care cuprinde
datele din amandoua:
.Select Columns: * (asterisc=toate coloanele)
. from Tables : World,Eco-Stats
. Where Condition :World.Country = Eco-Stats.Country
pe baza faptului ca in ambele talele exista cate o coloana cu numele tarii (country) si
in ambele,tarile sunt numite la fel.
Daca se face corelarea intre coloane altfel denumite,denumirile se vor egala in
conditia scrisa ( de ex:tari in unul si clienti externi in altul, stiind ca al doilea
cuprinde drept clienti tot nume de tari);
.Where Condition : World.Country = Cust.Int_Cust
Ex. populatia si suprafata totala per continent
Aplicand si agregarea datelor de catre MapInfo ,se pot tabela populatia si
suprafata totala pe continente.Se cere un tabel continand:
- continentul (ordinea in lista fiind alfabetica)
- numarul de tari din continent
- populatia totala a continentului
- suprafata totala a continentului
Se va deschide tabelul World.tab si se va face maxima imaginea cu butonul de
mximizare.
Se alege Query > SQL Select si se completeaza imaginea dialog:
1. In from Tables se trece World din lista Tables
2. In Select Columns se alege Continent din lista Columns si se alege Count(*)
din lista Aggregates.Se apasa o data pe spatiu libersi se dactilografiaza in
continuare CONTRIES; in tabel rezultatul numararii tarilor va aparea ca un
numar intr-o coloana zisa Countries.
3. Se alege Sum din lista Aggregates
4. Se alege Population din lista Columns.Dupa ce s-a ales Population (in
paranteza dupa Sum) se muta cursorul din interiorul parantezei in afara ei cu
clapa sageata la dreapta.Sum (Population) va crea o coloana derivata in care se
va calcula populatia totala a lumii.
5. Se apasa pe spatiu liber odata si se tipareste Total_Pop.Rezultatul Sum
(Population) va aparea ca valoare intr-o coloana cu titlul Total_Pop.
6. Din lista Aggregates se alege Sum
7. Din lista Functions se alege Area.Dupa aceasta,cursorul ramas inainte de
paranteza se muta in afara cu clapa sageata la dreaptaca mai sus.Sum (Area)
va crea o coloana in care se va calcula suprafata totala.
8. Se apasa odata pe spatiu libersi se inscrie sinonimul coloanei ca
Total_Area.Rezultatul Sum(Area) va aparea subtitlul de Total_Area.
9. Se alege Continent din lista Columns si se aduce pe randul Group By
Columns:
10. Se alege iar Continent si se aduce la Group By Columns:
11. Se dactilografiaza Population in dreptul lui into Table Named:

369239013.doc pag9
12. Count (*) numara toate inregistrarile (randurile),dar GroupBy reporteaza
numerele pe fiecare continent,ca si sumele de populatie si de suprafata.
SQL Select arata ca in pag.146 sus,iar rezultatul este tabelul din pag 146 jos
Obs. Suprafetele sun t in mile patrate ,deci in km.patrati sunt de 2,59 ori.
Where condition
Imbinarea tabelelor prin Where Condition are cateva facilitati:
. Ordinea campurilor
Nu conteaza ordinea la egalitatea Where Condition:
Where Condition: World.Country = Cust.Int_Cust echivaleaza cu
Where Condition: Cust.Int_Cust = World.Country
Operatorii geografici (v.pag.386) trebuie inlocuiti cu reciprocii daca se schimba
ordinea obiectelor pe care ei le leaga:
Where Condition: States.obj contains Cities.obj echivaleaza cu
Where Condition: Cities.obj within States.obj
. Ordinea clauzelor
Nu conteaza ordinea in care sunt scrise mai multe conditii in campul Where
Condition
.Tratarea erorilor
Daca o conditie care contine un OR logic este incorecta,MapInfo va indica
eroare;este cazul,mai ales cand tabelele nu se pot imbina.De ex.
Select Column*
From Tables A,B
Where Condition A. field 1 = B.field 1 OR A.field 1 = B.field 2
Atrage mesajul:
No join specified between A and B
Invalid join condition in Where clause
Obs.Este ceva gresit aici;cele doua conditii nu sunt nici incompatibile,nici
tautologice,nici insuficiente pentru alegere si nici nu impiedica aplicarea
semnului *.Mai degraba logica MapInfo nu este prevazuta cu tratarea lui OR.

369239013.doc pag10

S-ar putea să vă placă și