Clinfowiki
Բովանդակություն
Տեսակ | declarative programming language?, հարցումների լեզու, ծրագրավորման լեզու և domain-specific language? |
---|---|
Ենթադաս | հարցումների լեզու |
Առաջացել է | 1974 |
Ստեղծող | ISO, Raymond F. Boyce? և Donald D. Chamberlin? |
Նախագծող | Donald D. Chamberlin? և Raymond F. Boyce? |
Ընդլայնումներ | .sql |
Համացանցի տվյալների տեսակ | application/x-sql և application/sql[1][2] |
Ընթացիկ տարբերակ | SQL:2023 (հունիսի 1, 2023)[3] |
Հիմքի վրա է | Պրեդիկատների տրամաբանություն |
Ներշնչվել է | Datalog? և Պրեդիկատների տրամաբանություն |
Նախորդ | SEQUEL? |
Կայք | iso.org/standard/76583.html |
Structured Query Language Վիքիպահեստում |
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. Տվյալների սահմանման հրամանների միջոցով օգտվողները կարող են ստեղծել և փոփոխել տվյալների օբյեկտների կառուցվածքը, օրինակ՝ ստեղծել և հեռացնել աղյուսակներ։ Այդ խմբի հիմնական հրամանները հետևյալներն են
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-ին) |
Ծանոթագրություններ
- ↑ http://www.iana.org/assignments/media-types/application/sql — 2013.
- ↑ Shafranovich Y. The application/sql Media Type — IETF, 2013. — 5 p. — doi:10.17487/RFC6922
- ↑ SQL:2023 is out — 2023.
Արտաքին հղումներ
Վիքիպահեստն ունի նյութեր, որոնք վերաբերում են «SQL» հոդվածին։ |
|
|