SQL լեզու

Վիքիպեդիայից՝ ազատ հանրագիտարանից
SQL լեզու
Տեսակ declarative programming language, հարցումների լեզու, ֆայլի ֆորմատ և ծրագրավորման լեզու
Առաջացել է 1974
Ստեղծող Ստանդարտացման միջազգային կազմակերպություն, Raymond F. Boyce և Donald D. Chamberlin
Նախագծող Donald D. Chamberlin
Ընդլայնումներ .sql
Համացանցի տվյալների տեսակ application/x-sql և application/sql[1]
Ընթացիկ տարբերակ SQL-92 (1992) և SQL:1999 (1999)

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-ն ունի հրամանների վեց հիմնական խմբեր՝

  1. DDL (Data Definition Language) - տվյալների սահմանման լեզվի հրամաններ։
  2. DML (Data Manipulation Language) - տվյալների փոխակերպումների (մանիպուլյացիաների) լեզվի հրամաններ։
  3. DQL (Data Query Language) – հարցումների լեզվի հրամաններ։
  4. DCL (Data Control Language) – տվյալների ղեկավարման լեզվի հրամաններ։
  5. DAC - Տվյալների ադմինիստրացման հրամաններ։
  6. TCC - Տրանզակցիաների ղեկավարման հրամաններ։

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

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

3. Հարցումների լեզուն ընդգրկում է ընդամենը մեկ հրաման՝

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

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

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

5. Տվյալների ադմինիստրացման հրամաններ են՝

  • start audit,
  • stop audit։

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

6. Տրանզակցիաների կառավարման հրամաններն են՝

  • commit,
  • rollback,
  • savepoint,
  • set transaction։

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

Օպերատորներ[խմբագրել | խմբագրել կոդը]

Օպերատոր Նկարագրություն Օրինակ
= Հավասար է Author = 'Alcott'
<> Հավասար չէ (շատ ՏԲԿՀ-եր <>-ի փոխարեն սատարում են != գրելաձևը ) Dept <> 'Sales'
> Մեծ է Hire_Date > '2012-01-31'
< Փոքր է Bonus < 50000.00
>= Մեծ է կամ հավասար Dependents >= 2
<= Փոքր է կամ հավասար Rate <= 0.05
BETWEEN Որոշակի արժեքների միջակայք Cost BETWEEN 100.00 AND 500.00
LIKE Սիմվոլային փաթերնի համընկում First_Name LIKE 'Will%'
IN Հավասար է մի քանի հնարավոր արժեքներից մեկին DeptCode IN (101, 103, 209)
IS կամ IS NOT Համեմատում null արժեքի հետ Address IS NOT NULL
AS Կիրառվում է դուրս բերված տվյալների դիտարկման ժամանակ աղյուսակի կամ սյան անվանումը փոխելու համար SELECT employee AS 'department1'

Պրոցեդուրային ընդլայնումներ[խմբագրել | խմբագրել կոդը]

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

ՏԲԿՀ Պրոցեդուրային ընդլայնման կարճ անվանում Ամբողջական անվանում
InterBase/Firebird PSQL Procedural SQL
IBM DB2 SQL PL SQL Procedural Language (ընդլայնում է SQL/PSM-ը); DB2 պրոցեդուրաները կարող են գրվել սովորական ծրագրավորման լեզուներով՝ C, Java և այլն։
MS SQL Server/
Sybase ASE
Transact-SQL Transact-SQL
MySQL SQL/PSM SQL/Persistent Stored Module
Oracle PL/SQL Procedural Language/SQL (հիմնված է Ada լեզվի վրա)
PostgreSQL PL/pgSQL Procedural Language/PostgreSQL Structured Query Language (շատ նման է Oracle PL/SQL-ին)

Արտաքին հղումներ[խմբագրել | խմբագրել կոդը]