Baze de date în Linux

2
86 Noiembrie 2004 Pagina începătorului LINUX 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. PostgreSQL Aplicaţ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 86 085-086_db.indd 86 22/02/2005 07:15:14 22/02/2005 07:15:14

Transcript of Baze de date în Linux

Page 1: 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

Page 2: Baze de date în Linux

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

[email protected]

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