Baze de date în Linux
Transcript of Baze de date în Linux
86 Noiembrie 2004
Pagina începătoruluiLINUX USER
www.linux-magazin.ro
la serverul PostgreSQL care rulează pe
maşina locală, la baza de date având numele
utilizatorului curent. Autentificarea se face
tot cu numele acestuia. Sintaxa este:
psql [optiuni] [ dbname �[ utilizator ] ]
unde opţiuni pot fi:
• -h maşină specifică numele maşinii la
care se face conectarea
• -p port specifică portul pe care daemonul
PostgreSQL acceptă conexiuni
• -U utilizator specifică numele utiliza-
torului cu care se face autentificarea
Pentru a indica utilizatorului că este
pregătit să execute următoarea comandă,
psql va afişa un prompt de forma:
cdshop=>
unde cdshop reprezintă baza de date la
care suntem conectaţi în mod curent. Pot
fi lansate comenzi SQL, care trebuie să se
încheie cu caracterul “;”.
De asemenea, pot fi folosite şi o serie
În vederea organizării şi regăsirii
facile a informaţiilor, acestea pot
fi stocate în baze de date. Fiecare
bază de date conţine mai multe tabele,
structurate în coloane (câmpuri) şi rânduri
(înregistrări). De asemenea, se pot defini
diverse relaţii între tabelele unei baze de
date, constituindu-se un model relaţional.
Totalitatea bazelor de date stocate pe un
sistem constituie o colecţie numită cluster.
Ansamblul de aplicaţii care realizează
managementul bazelor de date se
numeşte sistem de baze de date relaţional (Relational DataBase Management System
- RDBMS).
Pentru Linux, MySQL şi PostgreSQL sunt
sisteme relaţionale de gestiune a bazelor
de date, compatibile SQL (Structured
Query Language, cel mai răspândit limbaj
standardizat pentru interogarea bazelor
de date), cu arhitectură client/server.
Spre deosebire de alte sisteme similare
disponibile sub Linux, cum ar fi Oracle,
DB2 sau Informix, acestea două sunt open
source.
PostgreSQLAplicaţiile care folosesc serviciile
sistemului de baze de date utilizează
biblioteca postgresql. Aceasta trimite
cereri prin reţea daemonului postmaster
care rulează pe server.
Pentru efectuarea de operaţiuni
asupra bazelor de date sau tabelelor prin
intermediul comenzilor SQL se poate folosi
utilitarul psql. Implicit se face conectarea
Odată cu apariţia calculatoarelor în producţie au apărut şi primele
sisteme de baze de date. Acestea s-au dezvoltat mult de atunci şi aduc
un profit mare celor care le utilizează. Tocmai din acest motiv marea
majoritatea a sistemelor de baze de date sunt aplicaţii comerciale
costisitoare, iar documentaţia pentru ele este greu accesibilă.
PostgreeSQL şi MySQL sunt două implementări Open Source ale
sistemelor SQL. DE DRAGOŞ ACOSTĂCHIOAIE
Baze de date în Linux
SQL
Figura 1: Utilitarul pgadmin.
085-086_db.indd 86085-086_db.indd 86 22/02/2005 07:15:1422/02/2005 07:15:14
LINUX USERPagina începătorului
87www.linux-magazin.ro Noiembrie 2004
Figura 2: Utilitarul MySQL Administrator.
de comenzi interne. Acestea încep cu
caracterul “\”. Cele mai frecvent utilizate
comenzi sunt:
• \connect [ dbname [ utilizator ] ] închide
conexiunea curentă şi realizează o
conexiune la o altă bază de date, utilizând
utilizatorul specificat
• \d [ tabelă ] afişează coloanele din
componenţa tabelei. Dacă aceasta din
urmă nu este specificată, sunt afişate
tabelele din baza de date curentă
• \help [ comandă ] afişează sintaxa
comenzii SQL specificate.
• \list afişează bazele de date din
componenţa clusterului PostgreSQL
• \o [ fişier ] redirectează rezultatele
interogărilor către fişierul specificat
• \q părăseşte programul psql
Sistemul MySQLPentru efectuarea de operaţiuni asupra
bazelor de date sau tabelelor prin
intermediul comenzilor SQL se utilizează
utilitarul mysql. Implicit se face conectarea
la daemonul MySQL care rulează pe maşina
locală, la baza de date având numele
utilizatorului curent. Autentificarea se face
tot cu numele acestuia. Sintaxa este:
mysql [optiuni] [dbname]
unde opţiuni pot fi:
• -h maşină specifică numele maşinii la
care se face conectarea
• -p [ parolă ] specifică parola pentru
autentificare. Dacă nu este specificată,
va fi solicitată utilizatorului
• -P port specifică portul pe care daemonul
MySQL acceptă conexiuni
• -u utilizator specifică numele utiliza-
torului cu care se face autentificarea
Comenzi SQL uzualePrezentăm în continuare căteva comenzi
SQL mai des utilizate. Menţionăm faptul
că nu se face deosebire între literele mici şi
cele mari.
SELECT listă_selecţie FROM tabelă [ opţiuni ] solicită o interogare cu scopul de
a obţine informaţii dintr-o tabelă.
De exemplu:
SELECT * FROM furnizori �ORDER BY denumire;
solicită toate înregistrările tabelei
furnizori, care vor fi ordonate după coloana
denumire.
SELECT * FROM facturi WHERE �denumire~’SPIT.’ ORDER BY �nr_doc DESC,data DESC;
solicită conţinutul tabelei facturi pentru
care coloana denumire începe cu “SPIT.”,
ordonată după coloana nr_doc şi data, în
ordine descendentă.
UPDATE tabelă SET coloană=valoare [,...] [ opţiuni ] modifică conţinutul
coloanei specificate cu valoare.
Spre exemplu:
UPDATE comenzi SET nr_doc=6789 �where nr_doc>=6642 and nr_doc<=6645;
stabileşte valoarea coloanei nr_doc la
6789 pentru toate coloanele care satisfac
condiţia specificată.
INSERT INTO tabelă specificaţie_coloane inserează o linie nouă în tabela
specificată.
Două exemple:
INSERT INTO agenti VALUES�(‘BURAGA SABIN’,5);
inserează o nouă linie având valorile
specificate (tabela agenti are două
coloane).
INSERT INTO comenzi SELECT * FROM �pctemp4 WHERE cant > 0;
inserează în tabela comenzi liniile obţinute
din tabela pctemp4 (care are aceeaşi
structură), în condiţia în care coloana cant
are valori pozitive.
DELETE listă_selecţie FROM tabelă [ opţiuni ] şterge linii din tabelă.
Spre exemplu:
DELETE * FROM stoc WHERE cant > 0;
şterge toate liniile din tabela stoc pentru
care valoarea coloanei cant este pozitivă.
Astfel, limbajul standard SQL este uşor
accesibil în mediul Linux, având o interfaţă
simplă, comodă şi sigură fiind absolut
deschisă. Puteţi administra informaţiile
dumneavoastre fără să fie nevoie să
plătiţi bani grei pentru licenţe, şi totuşi
folosinfu-vă de un sistem performant de
baze de date ■
Dragoş Acostăchioaie este programator
de sistem şi aplicaţii Linux, administrator
de reţea, putând fi contactat la adresa
RUL
[1] Acostăchioaie, D.; Buraga, S., Utilizare Linux. Noţiuni de bază şi practică, Polirom, Iaşi, 2004: http://www.adt.ro/linux/
[2] Acostăchioaie, D., Programare C şi C++ pentru Linux, Polirom, Iaşi, 2002: http://www.adt.ro/prg/
INFO
085-086_db.indd 87085-086_db.indd 87 22/02/2005 07:15:1822/02/2005 07:15:18