SQL lenguaia
Egilea: Gorka Alustiza
DATU BASEAK
Datu base bat textu formatuan informazioaren biltegiratze masiboa helburu duen soporte digital bat da. Datu base bakoitza, informazioa era ordenatuan erakusteko, tabletan banatuta dago. Tabla bakoitza zutabetan banatuta dago, informazioaren kanpo ezberdinak izango litzatezkeenak, eta azkenik, datu erregistro bakoitzeko lerro bat egongo litzateke. Hobeto ulertzeko, tabla bat "lagunak" izango litzateke, zutabeak "izena","abizena","adina" eta lerroak ["Iker","Murua","22"], ["Ainara","Zabala","24"],...
Datu baseak sortu, bertara akzeditu eta aldatzeko programa kudeatzaileak erabiltzen dira. Hona hemen adibide batzu:
MySQL: GPL baimena duen datu base bat da (askea beraz), denetan erabiliena. Berez kode bidez sortu eta kudeatu behar den arren, erabiltzaileek phpMyAdmin, MySQL Control Center edo beste programaren bat erabil dezakete informazioa kudeatzeko.
Access: Microsoftek garatua, access programarekin sortu behar da, zeinak gorago azaldu den egitardun .mdb artxibo bat sortuko du. Ingurune grafikoa excelen oso antzekoa da.
Oracle: Oracle Corporationek sortua, dagoen sistemarik osoenetarikotaz jotzen da, bere estabilitate, transakzio soporte eta plataformanitza delako. Bere alde negatiboa oso garestia dela da.
SQL LENGUAIA
SQL edo structured consulting language (kontsulta lenguaia estrukturatua) datu base erlazionaletara sartzeko lenguaia deklaratibo bat da, berauekin hainbat operazio egitea ahalbidetzen duena. Aljebra eta kalkulu erlazionalaren ezaugarriak batzen ditu datu base batetik interesezko datuak atera ahal izateko modu errazean. Kontsulta soiletik haratago, datu baseak eta bistak definitzeko eta datuen manipulatzeko lenguaia ere bada.
DATUAK ATERATZEKO
Datu base erlazionaletan ematen den operazio ohikona datuak ateratzekoa da. Datuak lortzeko komandoetara mugatua dagoenean, SQLk lenguaia deklaratibo gisa jokatzen du.
SELECT
Datu baseko tabla batetik edo gehiagotik erregistro lerro bat edo gehiago ateratzeko erabiltzen da. Komandorik erabiliena, erabiltzaileak atera nahi duen informazioaren ezaugarriak aukera ditzazke. Hauek dira SELECT komandoari atxikituta doazen hitz gako nagusienak:FROM: datu baseko zein tabletatik atera nahi den informazioa adierazteko balio du.
WHERE: atera nahi diren erregistroen ezaugarriak identifikatzen ditu.
JOIN: baliokide konbinazio bat sortzen du. Hauek bi tabletako erregistroak konbinatzen dituzte, komunean duten zutabe baten balioaren arabera.
GROUP BY: adierazitako zutabeetan balio bera duten erregistroak konbinatzen ditu erregistro bakar batean.
HAVING: WHERE-n antzekoa, GROUP BY instrukzioarekin konbinatutako erregistroen ezaugarriak definitzen ditu.
ORDER BY: lortutako erregistroak ordenatzen ditu adierazitako zutabearen balioaren arabera.
Ikus ondorengo adibidea:
SELECT * FROM lagunak
WHERE adina>20
ORDER BY abizena
Adibide honetan "lagunak" tablatik ateratzen dira erregistro lerroak. "*" sinboloarekin erregistroen zutabe guztiak atera nahi direla adierazten da (zutabe jakin batzu soilik nahi izango bagenituzke, nahikoa litzateke hauek jartzea sinboloaren ordez: "izena","abizena",...). "Adina" izeneko zutabea (zenbakizkoa izango dena) 20 baino handiagoa dutenak aterako dira soilik, baldintza hau betetzen ez duten erregistroak baztertuko direlarik. Lortutako erregistroak "abizena" zutabearen arabera ordenatuko dira alfabetikoki. Ondorengo adibidea konplexuagoa da:
SELECT lagunak.izena,lagunak.bizilekua FROM lagunak
JOIN herriak
ON lagunak.bizilekua=herriak.izena
Baliokide konbinazio bat egiten du. "Lagunak" tablatik, "herriak" tablan agertzen diren herrietan bizi diren lagunen izena eta bizilekua ateratzen du. Lagunen bat "herriak" tablan agertzen ez den herri batean bizi bada, ez da emaitzan agertuko, eta lagunik bizi ez den herririk ere ez. Hau izango litzateke emaiza:
Nerea | Alegia |
Imanol | Beasain |
Itxaso | Asteasu |
DATUAK MANEIATZEKO
Datuak Manipulatzeko Lenguaiaren (DML, "Data Manipulation Language") elementuak erabiltzen dira, datuak sartu, eguneratu edo ezabatzeko.
INSERT
Existitzen den tabla bati erregistro bat edo gehiago gehitzeko erabiltzen da. Adb.:INSERT INTO lagunak(izena,abizena,adina) VALUES ('garikoitz",'ayestaran',25)
UPDATE
Existitzen den lerro baten balioak aldatzeko. Adb.:UPDATE lagunak SET abizena='iraola' where izena='maitane'
DELETE
Lerroren bat ezabatzeko. Adb.:DELETE FROM lagunak WHERE adina<20
TRANSAKZIO KONTROLA
Datu basean operazio bat egiten den bakoitzean, hau ez da benetazko tablan egiten, bere kopia batean baizik. Aldaketa hauek datu basean modu iraunkorrean gordetzeko, ondorengo komandoak erabiltzen dira. Zorrotzki jokatuz, BEGIN WORK komandoarekin ireki behar dira.
COMMIT
Egindako aldaketa guztiak "igotzen" ditu, iraunkorrak eginez.ROLLBACK
Azken COMMITetik egindako aldaketa guztiak desegiten ditu, gordetako azken bertsiora itzuliz.DATUEN DEFINIZIOA
Bigarren hitz gako taldea Datuen Definizio Lenguaia (DDL, "Data Definition Language") da. Honen bidez erabiltzaileak tabla berriak definitu ditzazke. Hauek dira bere komando nagusiak:
Iruzkinak
Utzi iruzkina: