Acasa Tehnologie Limbajul SQL

Limbajul SQL

by Dragos Schiopu

sql

Interogarea bazelor de date este operaţia cea mai frecventă care se efectuează asupra acestora deoarece este operaţia care permite extragerea de informaţii din baza de date.

Un instrument destinat inuţial interogării bazelor de date şi dezvoltatulterior până la nivelul de SGBD independent este limbajul SQL (Structured Querry Language). Acest limbaj a fost dezvoltat iniţial ca limbaj de interogare al SGBD-ului relaţional System R în cadrul laboratorului de cercetare din San Jose al firmei IBM. SQL a fost conceput ca un limbaj standard de descriere a datelor şi de interogare a bazelor de date relaţionale. El a devenit cu timpul un standard de facto în domeniul bazelor de date. Practic, orice SGBD comercial implementează cel puţin o parte dintre instrucţiunile SQL cele mai folosite permiţând într-un fel sau altul tratarea şi efectuarea acestora.

Din anul 1986 SQL a devenit standard ANSI pentru limbajele de interogare ale bazelor de date. Ulterior ANSI a mai publicat două standarde succesive în anii 1989 şi 1992. în prezent se foloseşte standardul din 1992 cunoscut ca SQL’92 sau SQL2. În ultimii ani comitetele ANSI şi ISO pentru standardizarea limbajului SQL au adăugat noi facilităţii limbajului pentru a realiza adaptarea acestuia la cerinţele bazelor de date moderne (BD orientate obiect, BD multimedia etc).

Totodată limbajul a evoluat spre tehnologia client-server prin apariţia aplicaţiei SQLServer care este practic un SGBD relaţional ce permite realizarea de aplicaţii independente sau integrate în aplicaţii Internet (comerţ electronic, E-bussines etc).

În versiunea actuală, limbajul SQL permite nu doar interogarea bazei de date dar şi operaţii de creare a unei baze de date (prin crearea bazei de date, a tabelelor componente şi a legăturilor dintre acestea) şi de actualizare a conţinutului acesteia (prin operaţii de adăugare de înregistrări, de modificare a câmpurilor unei înregistrări şi de ştergere). SQL este un limbaj intermediar având unele caracteristici provenite din algebra relaţională şi altele care îşi au originea în calculul relaţional al tuplelor.

Operaţia fundamentală în SQL este reprezentată din punct de vedere sintactic printr-o construcţie SELECT – FROM – WHERE (pe scurt construcţie SELECT). Clauza SELECT realizează operaţia de proiecţie şi este urmată de lista atributelor care se reţin în relaţia rezultat.

Sintaxa completă a unei construcţii SELECT este următoarea :

SELECT
    [ALL | DISTINCT | DISTINCTROW ]
      [HIGH_PRIORITY]
      [STRAIGHT_JOIN]
      [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
      [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr, ...
    [FROM table_references
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [HAVING where_condition]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ...]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [PROCEDURE procedure_name(argument_list)]
    [INTO OUTFILE 'file_name' export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name]]
    [FOR UPDATE | LOCK IN SHARE MODE]]

Manevrarea datelor presupune operaţii de actualizare a valorilor unor câmpuri precizate precum şi adăugarea şi ştergerea de înregistrări în tabele.

Inserarea unei înregistrări într-o tabelă se realizează cu comanda INSERT care are următoarea sintaxă:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    VALUES ({expr | DEFAULT},...),(...),...
    [ ON DUPLICATE KEY UPDATE
      col_name=expr
        [, col_name=expr] ... ]

Actualizarea datelor dintr-o tabelă se realizează cu ajutorul comenzii UPDATE cu sintaxa următoare:

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name
    SET col_name1=expr1 [, col_name2=expr2] ...
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

Ştergerea înregistrărilor dintr-o tabelă se realizează cu comanda DELETE, cu sintaxa următoare :

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

s-ar putea sa-ti placa