SQL

SQL-ը կամ հարցումների կառուցվածքավորված լեզուն ստանդարտ լեզու է, որը նշանակված է տվյալների ռելյացիոն բազաների հետ փոխգործակցելու համար։ Դրա նախատիպը մշակվել էր IBM-ում, դոկտոր Կոդդի (E.F.Codd) “Ռելյացիոն մոդելի օգտագործումը տվյալների բաժանված բանկերում” հոդվածի հիման վրա, յոթանասունական թվականներին։ SQL-ի առաջին ծրագրային արտադրանքը՝ Oracle ՏՌԲԿՀ-ն (տվյալների ռելյացիոն բազայի կառավարման համակարգ), ստեղծվեց 1979 թ. Relational Software, Inc. կորպորացիայի (հետագայում այն վերաանվանվեց Oracle Corporation) կողմից։ Ծրագրային արտադրանքի շուկայում այդ ՏՌԲԿՀ-ն մեծ հաջողությունը ստիպեց մյուս խոշոր ֆիրմաներին (Sybase, Informix, Microsoft) թողարկել SQL-ի վրա հիմնված ՏՌԲԿՀ-ների սեփական տարբերակները։ Քանի որ SQL-ը այն ժամանակ նորույթ էր, և դեռ ստեղծված չէին ստանդարտներ, ապա յուրաքանչյուր ֆիրմա արտադրում էր ՏՌԲԿՀ SQL-ի սեփական իրացումով։ Միայն 1989 թ. ANSI-ն (American National Standards Institute) մշակեց SQL-ի համընդհանուր ստանդարտը։ Սակայն այն հաշվի չէր առնում SQL-ի տեխնիկական կառուցվածքը, և անցումը լեզվի մեկ իրացումից մյուսին բավականաչափ բարդ էր։ 1992 թ. ստեղծվեց ստանդարտ, որը ընդգրկում է SQL-ի հնարավորին չափ շատ ընդլայնումները։ Այն անվանում են SQL92 կամ SQL2։ Նշենք, որ SQL2-ի մեծ ծավալի պատճառով ՏՌԲԿՀ-ները, որոնք իրացնում են լրիվ ստանդարտը, բավականաչափ բարդ են և աշխատատար։

## SQL լեզվի հրամանների տեսակները
SQL-ն ունի հրամանների վեց հիմնական խմբեր՝
# DDL (Data Definition Language) - տվյալների սահմանման լեզվի հրամաններ։
# DML (Data Manipulation Language) - տվյալների փոխակերպումների (մանիպուլյացիաների) լեզվի հրամաններ։
# DQL (Data Query Language) – հարցումների լեզվի հրամաններ։
# DCL (Data Control Language) – տվյալների ղեկավարման լեզվի հրամաններ։
# DAC - Տվյալների ադմինիստրացման հրամաններ։
# TCC - Տրանզակցիաների ղեկավարման հրամաններ։

1. Տվյալների սահմանման հրամանների միջոցով օգտվողները կարող են ստեղծել և փոփոխել տվյալների օբյեկտների կառուցվածքը, օրինակ՝ ստեղծել և հեռացնել աղյուսակներ։ Այդ խմբի հիմնական հրամանները հետևյալներն են

* create table,
* alter table,
* drop table։

2. Այս խմբի հրամանները օգտագործվում են բազայի օբյեկտների (օրինակ՝ աղյու-սակների) որոշ բնութագրիչները փոփոխելու համար։ Հիմնականում օգտագործվում են հետևյալ երեք հրամանները

* insert,
* update,
* delete։

3. Հարցումների լեզուն ընդգրկում է ընդամենը մեկ հրաման՝
* select։
Այդ հրամանը իր բազմաթիվ օպցիաներով և նախադասություններով (այսինքն՝ բառ-բանալիներով և օպերատորներով, որոնց միջոցով կառուցվում են ընտրության որոշակի պայմաններ) օգտագործվում է տվյալների ռելյացիոն բազային հարցումներ ձևավորելու համար, ընդ որում՝ հարցումները կարող են լինել ինչպես պարզ և անորոշ, այնպես էլ բարդ և լիովին որոշակի (կոնկրետ)։
	**Հարցումը - դիմում է տվյալների բազային՝ համապատասխան ինֆորմացիա ստանալու նպատակով։**

4. Տվյալների ղեկավարման լեզվի հրամաններն են՝

* alter password,
* grant,
* revoke,
* create synonym։
Որպես կանոն, այդ հրամանները օգտագործվում են տվյալների հասանելիության հետ կապված օբյեկտների ստեղծման համար և, բացի այդ, թույլ են տալիս վերահսկողություն սահմանել օգտվողների միջև արտոնությունների բաշխման նկատմամբ։

5. Տվյալների ադմինիստրացման հրամաններ են՝
* start audit,
* stop audit։
Դրանք թույլ են տալիս հսկել կատարվող գործողությունները և վերլուծել տվյալների բազայի գործառնությունները։ Պետք չէ շփոթել տվյալների ադմինիստրացում և բազայի ադմինիստրացում գաղափարները։
Բազայի ադմինիստրացումը տվյալների բազայի ընդհանուր ղեկավարումն է և ի նկատի ունի բոլոր մակարդակների հրամանների օգտագործում։

6. Տրանզակցիաների կառավարման հրամաններն են՝
* commit,
* rollback,
* savepoint,
* set transaction։

SQL լեզվի իրացումների մեծամասնությունը թույլ է տալիս գրանցել հրամանների օպերատորները ինչպես մեծատառերով, օրինակ՝ CREATE TABLE, այնպես էլ փոքրատառերով՝ create table։

## Օպերատորներ

## Պրոցեդուրային ընդլայնումներ
Քանի որ SQL-ը չի համարվում պրոցեդուրային ծրագրավորման լեզու (այսինքն չկան ցիկլերի, պայմանական օպերատորների օգտագործման հնարավորություններ), տարբեր կազմակերպությունների կողմից թողարկվող SQL ընդլայնումները վերաբերվում էին պրոցեդուրային ընդլայնումներին։ Գրեթե ցանկացած ՏԲԿՀ-ում կիրառվում է իր պրոցեդուրային լեզուն։ SQL-ի պրոցեդուրային ընդլայնումների ստանդարտը ներկայացված է SQL/PSM սպեցիֆիկացիայում. Ստորև ներկայացված է հայտնի ՏԲԿՀ -երի համար պրոցեդուրային ընդլայնումները։ 

## Ծանոթագրություններ

## Արտաքին հղումներ

Կատեգորիա:ISO ստանդարտի ծրագրավորման լեզուներ
Կատեգորիա:ISO ստանդարտներ
Կատեգորիա:Ծրագրավորման լեզուներ
Կատեգորիա:Հայտնվել է 1974 թվականին