Sql select language օպերատորը նախատեսված է. SQL - հայտարարություններ

Տուն / Կոշտ սկավառակներ

SQL-ը (Structured Query Language) ունիվերսալ համակարգչային լեզու է, որն օգտագործվում է հարաբերությունների տվյալների բազաներում տվյալների ստեղծման, փոփոխման և կառավարման համար: SQL լեզուն հիմնված է հարաբերական հանրահաշվի վրա և օպերատորների հավաքածու է։

Օպերատորների 4 խումբ կա. Դիտարկենք տվյալների մանիպուլյացիայի օպերատորների խումբ (Տվյալների մանիպուլյացիայի լեզու, DML, SQL DML)

Տվյալների ընտրություն

Տվյալների ընտրությունը SQL-ի միջոցով կատարվող ամենատարածված գործողությունն է: SELECT հայտարարությունը այս լեզվի ամենակարևոր հայտարարություններից մեկն է, որն օգտագործվում է տվյալների ընտրության համար: Այս օպերատորի շարահյուսությունը հետևյալն է.

Ընտրել սյունակ աղյուսակից

SELECT հայտարարությունները պետք է պարունակեն SELECT և FROM բառերը; այլ հիմնաբառեր կամընտիր են:

SELECT հիմնաբառին հաջորդում է տեղեկատվությունը, թե որ դաշտերը պետք է ներառվեն ստացված տվյալների հավաքածուում: Աստղանիշը (*) նշանակում է աղյուսակի բոլոր դաշտերը, օրինակ.

Մեկ սյունակ ընտրելու համար օգտագործեք հետևյալ շարահյուսությունը.

ԸՆՏՐԵԼ Ընկերություն

Բազմաթիվ սյունակներ ընտրելու օրինակը հետևյալն է.

ԸՆՏՐԵԼ Ընկերություն,Հեռախոս,Փոստ

Սեղանների անունները նշելու համար, որոնցից ընտրված են գրառումները, օգտագործեք FROM հիմնաբառը, օրինակ.

ԸՆՏՐԵԼ * ԻՑ Հաճախորդներ

Այս հարցումը կվերադարձնի հաճախորդների աղյուսակի բոլոր դաշտերը:

Դուք կարող եք օգտագործել WHERE կետը (ըստ ցանկության)՝ SELECT դրույթով վերադարձված արդյունքները զտելու համար

SELECT * FROM Products WHERE Կատեգորիա = 4

Դուք կարող եք օգտագործել տարբեր արտահայտություններ WHERE կետում,

WHERE արտահայտություն 1 [(ԵՎ | ԿԱՄ) արտահայտություն2 ...]

Օրինակ.

SELECT * FROM Products WHERE Կատեգորիա = 2 AND Postavshik > 10

SELECT Անունը, Գինը Ապրանքներից WHERE Կատեգորիա= 3 ԿԱՄ Գինը< 50

Դուք կարող եք օգտագործել հետևյալ օպերատորները.

< Меньше

<= Меньше или равно

<>Ոչ հավասար

> Ավելին

>= Մեծ կամ հավասար

ORDER BY կետը (ըստ ցանկության) օգտագործվում է ստացված տվյալների հավաքածուն մեկ կամ մի քանի սյունակներով տեսակավորելու համար: ASC (աճող) կամ DESC (նվազող) հիմնաբառերն օգտագործվում են տեսակավորման կարգը որոշելու համար։ Լռելյայնորեն, տվյալները դասավորված են աճման կարգով:

Տվյալների փոփոխություն

Բացի տվյալների առբերումից, SQL-ը կարող է օգտագործվել տվյալների թարմացման և ջնջման, գրառումները այլ աղյուսակներում պատճենելու և այլ գործողություններ կատարելու համար: Ստորև մենք կանդրադառնանք UPDATE, DELETE և INSERT հայտարարություններին, որոնք օգտագործվում են այս խնդիրներից մի քանիսը լուծելու համար:

UPDATE հայտարարությունը

Աղյուսակի մեկ կամ մի քանի սյունակներում արժեքները փոխելու համար օգտագործեք UPDATE հայտարարությունը: Այս օպերատորի շարահյուսությունը հետևյալն է.

ԹԱՐՄԱՑՆԵԼ աղյուսակի SET սյունակ1 = արտահայտություն 1 WHERE չափանիշներ

SET կետի արտահայտությունը կարող է լինել հաստատուն կամ հաշվարկի արդյունք: Օրինակ՝ $10-ից պակաս արժեք ունեցող բոլոր ապրանքների գները բարձրացնելու համար կարող եք կատարել հետևյալ հարցումը.

ԹԱՐՄԱՑՆԵԼ Ապրանքներ SET Գին = Գին * 1.1 ՈՐՏԵՂ Գին< 10

Ջնջել հայտարարությունը

Աղյուսակներից տողերը ջնջելու համար պետք է օգտագործել DELETE օպերատորը, որի շարահյուսությունը հետևյալն է.

Ջնջել աղյուսակից, որտեղ չափանիշները

Ջնջել բոլոր ապրանքները, որոնց արժեքը 100-ից պակաս է.

Ջնջել ապրանքներից, որտեղ Գին< 100

ՕպերատորՆԵՐԴՐԵԼ

Աղյուսակներում գրառումներ ավելացնելու համար պետք է օգտագործել INSERT հայտարարությունը, որի շարահյուսությունը հետևյալն է.

INSERT INTO աղյուսակում ( VALUES (արտահայտություն [, ...])

Օրինակ՝ Հաճախորդների աղյուսակում նոր հաճախորդ ավելացնելու համար կարող եք օգտագործել հետևյալ հարցումը.

ՄՏԱՑՐԵԼ հաճախորդների մեջ (CustomerID, Company Name) ԱՐԺԵՔՆԵՐԸ («XYZ», «XYZ Deli»)

Հարցման լեզվով SQLնշանակալից տեղ է գրավում SELECT հայտարարությունը, քանի որ մենք այն օգտագործում ենք տվյալների բազայում ընտրություն կատարելու համար։ Այս հոդվածում մենք կանդրադառնանք այս շատ կարևոր SQL հայտարարության հիմունքներին:

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

Ինչ է SQL լեզուն և SELECT հայտարարությունը

SQLՀարցման լեզու է, որն օգտագործվում է հարաբերական տվյալների բազաներում տվյալների մանիպուլյացիայի (կառավարման) համար: Այն լայն տարածում ունի, և, հետևաբար, ցանկացած իրեն հարգող ՏՏ անձ պետք է իմանա այս լեզվի հիմունքները, քանի որ գրեթե յուրաքանչյուր ընկերություն ունի տվյալների շտեմարաններ:

ԸՆՏՐԵԼ– SQL լեզվի օպերատոր, պատկանում է տվյալների մանիպուլյացիայի օպերատորների խմբին ( Տվյալների մանիպուլյացիայի լեզու, DML) և ծառայում է տվյալների բազայից տվյալների առբերմանը:

Նշում. SQL լեզուն և տվյալների բազաները սովորելու համար կան մեծ DBMS-ների հատուկ անվճար հրատարակություններ, օրինակ՝ SQL Server Microsoft-ն ունի Էքսպրես տարբերակ: Ինչպես տեղադրել այս DBMS-ը, կարող եք կարդալ նյութում՝ Microsoft SQL Server 2016 Express-ի տեղադրման նկարագրություն:

Ահա SELECT դրույթի օգտագործման ամենապարզ օրինակը:

SELECT * FROM աղյուսակից

  • * - ցույց տալ բոլոր տվյալները;
  • FROM - աղբյուրից;
  • Աղյուսակ - աղբյուրի անվանումը ( մեր դեպքում աղյուսակը).

Բայց, գործնականում, հաճախ մեզ պետք չեն աղյուսակի բոլոր տվյալները, բայց երբեմն դա անելու համար միայն որոշ սյունակներ, մենք պարզապես նշում ենք պահանջվող սյունակի անունը * (; կամ խոսնակներ), Օրինակ.

ԸՆՏՐԵԼ Գինը աղյուսակից

որտեղ, Գինը սյունակի անվանումն է:

Նշում. Որպես օրինակ՝ մենք օգտագործում ենք պարզ աղյուսակ, որտեղ թվարկվում են համակարգչային մոդելները, դրանց գները և անվանումները:

Եթե ​​Ձեզ անհրաժեշտ է նշել մի քանի սյունակ, ապա պարզապես նշեք դրանք՝ SELECT հայտարարությունից հետո բաժանված ստորակետերով, օրինակ.

ԸՆՏՐԵՔ գինը, անվանումը, մոդելը աղյուսակից

որտեղ, գինը, անունը, մոդելը սյունակներ են Աղյուսակից:

Ընտրության պայման – WHERE կետ

Նմուշառման գործընթացում բավականին հաճախ մեզ անհրաժեշտ է զտել տվյալները որոշակի պայմանով, այսինքն. ոչ բոլոր տվյալները, այլ միայն նրանք, որոնք համապատասխանում են SELECT կառուցվածքի պայմանին, դրա համար կարող եք օգտագործել օպերատորը ՈՐՏԵՂ.

ԸՆՏՐԵԼ ԳԻՆԸ ՍԵՂԱՆԱԿԻՑ ՈՐՏԵՂ գինը > 100

որտեղ, ՈՐՏԵՂ է պայմանը, այսինքն. մենք ցուցադրում ենք միայն մեր պայմանին համապատասխանող տողեր ( գինը 100-ից ավելի).

Համեմատական ​​օպերատորներ SQL-ում

  • «>» – ավելին, քան ինչ-որ բան;
  • «<» – меньше чего-нибудь;
  • «=» - հավասար;
  • «<>» – ոչ հավասար;
  • «>=» – մեծ կամ հավասար;
  • «<=» – меньше или равно.

Պայմանում կարող եք նաև նշել բանալի բառ ՄԻՋԵՎ, այսինքն. արդյոք արժեքը ընկնում է, թե չի ընկնում որոշակի միջակայքում, օրինակ

ԸՆՏՐԵՔ ԳԻՆԸ ՍԵՂԱՆԻՑ ՈՐՏԵՂ գինը 400-600-ի միջակայքում

որտեղ, մենք նշում ենք, որ գինը պետք է լինի 400-ից 600 միջակայքում:

Ստուգելու համար, թե արդյոք փորձարկվող արտահայտության արժեքը ներառված է որոշակի արժեքների շարքում, կարող եք օգտագործել պրեդիկատ IN.

ԸՆՏՐԵԼ ԳԻՆԸ ՍԵՂԱՆԻՑ ՈՐՏԵՂ Գինը IN (400, 600)

IN այս դեպքումմենք ուզում ենք ստանալ միայն գինը 400 և 600 արժողությամբ:

Եթե ​​մեզ անհրաժեշտ է ստանալ միայն եզակի աղբյուրի տողեր, մենք կարող ենք նշել հիմնաբառը ՀԱՍՏԱՏԱԿԱՆ, Օրինակ

ԸՆՏՐԵՔ ԱՌԱՋՆՈՐԴ ԳԻՆ ՍԵՂԱՆԱԿԻՑ ՈՐՏԵՂ գինը > 100

Նշում. SQL լեզուն մեծատառերի զգայուն չէ, հարցումները կարող են գրվել կամ մեկ տողով, կամ բաժանվել մի քանիսի: Օրինակ՝ հետևյալ երկու հարցումները լրիվ նույնն են։

ԸՆՏՐԵԼ ԳԻՆԸ ՍԵՂԱՆԱԿԻՑ

Ընտրեք գինը աղյուսակից

Տեսակավորում ԸՍՏ

Շատ հաճախ անհրաժեշտ է լինում հարցման արդյունքը տեսակավորել ըստ որոշակի դաշտի ( սյունակ) Դա անելու համար խնդրանքից հետո մենք նշում ենք շինարարությունը ՊԱՏՎԻՐԵԼ ԿՈՂՄԻՑև այդ դաշտերը ( միգուցե մի քանիսը բաժանված են ստորակետերով) ըստ որի ցանկանում եք տեսակավորել:

ԸՆՏՐԵՔ ԳԻՆԸ ՍԵՂԱՆԱԿԻՑ ՊԱՏՎԻՐԵԼ ԸՍՏ ԳՆԻ ՆՇՎԱԾ

Սա նվազման կարգով տեսակավորման օրինակ է, բայց դուք կարող եք նաև տեսակավորել աճման կարգով, DESC-ի փոխարեն մենք գրում ենք ASC, բայց սովորաբար այդպես չենք գրում, քանի որ աճող տեսակավորումը լռելյայն է:

Ագրեգացման գործառույթները SQL-ում

SQL-ն ունի շատ օգտակար, այսպես կոչված, ագրեգացման գործառույթներ, մասնավորապես.

  • COUNT- նշված սյունակում արժեքների քանակը.
  • ԳՈՒՄԱՐ- նշված սյունակի արժեքների գումարը.
  • AVG- միջին արժեքը նշված սյունակում.
  • MIN— նշված սյունակում նվազագույն արժեքը.
  • ՄԱՔՍ- առավելագույն արժեքը նշված սյունակում:

Օրինակ, մենք պետք է ստանանք համակարգչի միջին գինը՝ առավելագույնը և նվազագույնը, դրա համար կարող ենք գրել հետևյալ հարցումը

SELECT AVG (գին), MAX (գին), MIN (գին) FROM աղյուսակից

ԽՈՒՄԲԸ ԸՍՏ

Դուք կարող եք խմբավորել արժեքները ըստ սյունակների, օրինակ, մենք պետք է պարզենք յուրաքանչյուր համակարգչային մոդելի միջին գինը, այս դեպքում հարցումը կլինի այսպիսին.

SELECT մոդել, AVG (գին) AS AVG Գինը աղյուսակից ԽՄԲ ԸՍՏ մոդել

Եթե ​​նկատեցիք, ես օգտագործել եմ այստեղ առաջադրանքը» կեղծանուն» այս հարցման արդյունքների ավելի հարմար ընկալման համար, այսինքն. սյունակից հետո գրեք AS և այն անունը, որը ցանկանում եք ցուցադրել արդյունքներում:

Ինչպես առանձին սյունակներում պայմաններ օգտագործելիս, դուք կարող եք նաև պայման նշել մի ամբողջ խմբի համար՝ օգտագործելով ֆունկցիան ՈՒՆԵՑՈՂ. Օրինակ, մենք պետք է որոշենք համակարգչի առավելագույն գինը՝ խմբավորված ըստ այդ համակարգիչների մոդելների, բայց որոնց առավելագույն գինը 500-ից պակաս է։

SELECT մոդելը, MAX (գին) FROM սեղանի GROUP BY մոդելի HAVING MAX (գին)< 500

Այս դեպքում մեր հարցումը մեզ կտրամադրի ըստ մոդելի խմբավորված համակարգիչներ, որոնց առավելագույն գինը 500-ից պակաս է։

Նշում. SQL-ում խմբավորման մասին ավելին կարող եք կարդալ այս նյութում:

NULL արժեքը SQL-ում

SQL-ում կա այնպիսի արժեք, ինչպիսին է NULL: Փաստորեն, NULL-ը արժեքի բացակայությունն է ( դրանք. դատարկ) Նման արժեք պարունակող բոլոր տողերը ցուցադրելու համար ( օրինակ, մենք դեռ գին չենք սահմանել որոշ համակարգչի համար) կարող եք օգտագործել հետևյալ պայմանը.

ԸՆՏՐԵՔ * ՍԵՂԱՆԱԿԻՑ, ՈՐՏԵՂ գինը զրոյական է

Ինչը կնշանակի որոնել բոլոր տողերը, որոնք արժեք չունեն գնային դաշտի համար:

SELECT հայտարարության պարզեցված շարահյուսություն

ԸՆՏՐԵԼ<Список полей>կամ * , ...] , ...]

Նշում. Եթե ​​հետաքրքրված եք T-SQL լեզվով, խորհուրդ եմ տալիս կարդալ իմ «T-SQL Programmer’s Way» գիրքը, որտեղ մանրամասնորեն, բազմաթիվ օրինակներով, խոսում եմ Transact-SQL լեզվի հիմունքների մասին հատկապես սկսնակների համար:

Այսօրվա համար այսքանն է, մենք դիտարկել ենք SQL լեզվի մի փոքր մասը, այն է՝ SELECT հայտարարությունը: Հաջողություն:

Կարգապահություն՝ տվյալների շտեմարաններ

Լեզվի օպերատորներSQL

SQL լեզուն ներառում է տարբեր կատեգորիաների օպերատորներ: Ցանկացած SQL հայտարարություն բաղկացած է պահպանված բառերից և բառերից, որոնք սահմանվում են օգտագործողի կողմից սահմանված շարահյուսական կանոնների համաձայն: Ինչպես շատ ծրագրավորման լեզուների դեպքում, լեզվի օպերատորի բաղադրիչներից շատերը մեծատառերի զգայուն չեն: Այս կանոնից բացառություն, ինչպես միշտ, նիշերի տվյալներն են, որոնք նշելիս անհրաժեշտ է հիշել դեպքը և օգտագործել այն, որն անհրաժեշտ է տվյալները ներկայացնելու համար։

Լեզուով օպերատորներ գրելու համար ընդունվել է անվճար ձևաչափ, որը հնարավորություն է տալիս ներքևումների և հավասարեցումների միջոցով SQL ծրագրին ավելի ընթեռնելի տեսք տալ։

    Հայտարարության յուրաքանչյուր արտահայտություն պետք է սկսվի նոր տողով.

    յուրաքանչյուր արտահայտության սկիզբը պետք է համապատասխանի օպերատորի մնացած արտահայտությունների սկզբին.

    Արտահայտության յուրաքանչյուր մասը պետք է սկսվի նոր տողով՝ ամբողջ արտահայտության սկզբի հետ կապված որոշակի ներքևումով, ինչը թույլ կտա ընդգծել ստորադաս մասերը.

    Որոշ կոնվենցիաներ կիրառվում են գրավոր օպերատորների նկատմամբ.

    մեծատառերը օգտագործվում են վերապահված բառեր գրելու համար.

    Փոքրատառերը օգտագործվում են օգտագործողի կողմից սահմանված բառեր գրելու համար.

    «|» ուղղահայաց բարը ցույց է տալիս մի քանի արժեքներից մեկը ընտրելու անհրաժեշտությունը.

    գանգուր փակագծերը սահմանում են պահանջվող տարրը;

    քառակուսի փակագծերը սահմանում են կամընտիր տարր;

    Էլիպսիսը «...» օգտագործվում է կառույցը զրոյից մի քանի անգամ կրկնելու կամընտիր հնարավորությունը ցույց տալու համար։

Տվյալների սահմանման օպերատորները (Աղյուսակ 1) օգտագործվում են օգտագործված տվյալների կառուցվածքները նկարագրելու համար: Այս կատեգորիան ներառում է հետևյալ օպերատորները՝ ստեղծել աղյուսակ, թողնել աղյուսակ, փոփոխել աղյուսակ, ստեղծել դիտում, ALTER VIEW, DROP VIEW:

Աղյուսակ 1 . Տվյալների սահմանման օպերատորներ

Օպերատոր Բացատրություն

աղյուսակ ստեղծել Ստեղծել աղյուսակ

ԿԱՌՆԵԼ աղյուսակը Ջնջել աղյուսակը

փոփոխել աղյուսակը Փոխել աղյուսակը

ՍՏԵՂԾԵԼ ԴԻՏՔ Ստեղծել դիտում

փոխել տեսքը Փոխել տեսքը

թողնել տեսքը Ջնջել տեսքը

Տվյալների մանիպուլյացիայի օպերատորները, որոնք կազմում են օպերատորների հաջորդ կատեգորիան, նախատեսված են աղյուսակները համալրելու և դրանցում բեռնված տեղեկատվությունը թարմացնելու համար: Այս կատեգորիային են պատկանում հետևյալ օպերատորները՝ ջնջել, տեղադրել, թարմացնել (Աղյուսակ 2):

Աղյուսակ 2 . Տվյալների մանիպուլյացիայի օպերատորներ

ՕպերատորԲացատրություն

Ջնջել Ջնջում է մեկ կամ մի քանի տող, որոնք համապատասխանում են պայմաններին

ֆիլտրում, բազային աղյուսակից

INSERT Տեղադրում է մեկ տող բազային աղյուսակում

թարմացում Թարմացնում է մեկ կամ մի քանի սյունակների արժեքները մեկ կամ

մի քանի տող, որոնք համապատասխանում են զտման պայմաններին

Տվյալների բազայից տեղեկատվություն ստանալու համար օգտագործվում է հարցման լեզու, որը SQL-ում ներկայացված է մեկ ընտրված հայտարարությամբ (Աղյուսակ 3):

Աղյուսակ 3. Հարցման լեզու

Օպերատոր Բացատրություն

ընտրել Ընտրում է տողերը; օպերատոր, որը թույլ է տալիս գեներացնել արդյունքը

հարցմանը համապատասխան աղյուսակ

Ի լրումն օպերատորների նշված կատեգորիաների, որոնց նպատակը դժվար չէ պատկերացնել աղյուսակների բացատրությունները կարդալուց հետո, անհրաժեշտ է առանձնացնել ևս երկուսը` գործարքների կառավարման օպերատորներ (Աղյուսակ 4) և տվյալների կառավարման գործիքներ (Աղյուսակ 5):

Աղյուսակ 4. Գործարքների կառավարում

Օպերատորի բացատրություն

commit Ավարտել գործարքը՝ տեղեկատվության ամբողջական մշակում,

համակցված գործարքի մեջ

rollback Հետ վերադարձնել գործարքը. հետարկել կատարման ընթացքում կատարված փոփոխությունները

տվյալների բազայի վիճակը, նշեք այն, որպեսզի հետո կարողանաք վերադառնալ դրան

Աղյուսակ 5 . Տվյալների կառավարում

Օպերատորի բացատրություն

ՓՈՓՈԽԵԼ ՏՎՅԱԼՆԵՐԻ ԲԱԶԱՆ Փոխել տվյալների բազայի հիմնական օբյեկտների հավաքածուն, սահմանափակումների վերաբերյալ

ամբողջ տվյալների բազան

ALTER DBAREA Փոխեք նախկինում ստեղծված պահեստային տարածքը

ՓՈԽՎԵԼ գաղտնաբառը Փոխել գաղտնաբառը ամբողջ տվյալների բազայի համար

ՍՏԵՂԾԵԼ ՏՎՅԱԼՆԵՐԻ ԲԱԶԱՆ Ստեղծել նոր տվյալների բազա

ՍՏԵՂԾԵԼ DBAREA Ստեղծեք նոր պահեստային տարածք և հասանելի դարձրեք այն տեղադրման համար

ԳՈՐԾԵԼ ՏՎՅԱԼՆԵՐԻ ԲԱԶԱՆ Բաց թողնել գոյություն ունեցող տվյալների բազան

ԿԱՌՆԵԼ DBAREA-ն Ջնջել առկա պահեստային տարածքը (եթե այն ներկայումս չի պարունակում

ակտիվ տվյալները գտնվում են)

GRANT Տրամադրել մուտքի իրավունքներ մի շարք գործողությունների տվյալների բազայի որոշակի օբյեկտի վրա

ՉԵՂԱՐԿԵԼ Մերժել մուտքի իրավունքը որոշ օբյեկտների կամ որոշ գործողությունների նկատմամբ

օբյեկտ

Առևտրային DBMS-ներում հիմնական օպերատորների հավաքածուն ընդլայնվել է: DBMS-ների մեծ մասը ներառում է օպերատորներ՝ պահպանված ընթացակարգերի գործարկման ինդեքսը սահմանելու և ջնջելու համար և գործարկիչներ սահմանելու օպերատորներ:

Ընդունված է սկսել ծանոթանալ այս լեզվին` հաշվի առնելով հարցումների լեզվի հնարավորությունները, որը SQL լեզվում ներկայացված է մեկ ընտրված հայտարարությամբ, քանի որ այս հզոր օպերատորը, բնականաբար, նաև ամենաբարդն է: Բացի այդ, ապագայում հետաքրքիր կլինի տեսնել, թե ինչպես կարելի է այն օգտագործել տվյալների մանիպուլյացիայի օպերատորների հետ համատեղ:

    Ընտրության օպերատորԸՆՏՐԵԼ . Տվյալների բազայի հարցումների ստեղծում

Select հայտարարության նպատակը տվյալների բազայի մեկ կամ մի քանի աղյուսակներից տվյալներ ընտրելն ու ցուցադրելն է: Այս չափազանց հզոր, առավել հաճախ օգտագործվող օպերատորն իրականացնում է հարաբերական հանրահաշվի բոլոր գործողությունները: Նույն հարցումը կարող է իրականացվել մի քանի եղանակներով, որոնք կարող են էականորեն տարբերվել կատարման ժամանակում։

Ընտրեք հայտարարության ձևաչափը.

ԸՆՏՐԵԼ *|<список полей>ԻՑ<список таблиц>

Ընտրված հայտարարության մեջ արտահայտությունների նշված հերթականությունը չի կարող փոխվել, բայց դրա բոլոր մասերը չեն պահանջվում: Միայն ընտրեք և բառակապակցություններից պահանջվում են դրույթներ: Հայտարարության մյուս բոլոր մասերը կարող են օգտագործվել ծրագրավորողի հայեցողությամբ: Բացատրություն:

□ Արտահայտություն ընտրել:

Հիմնաբառի առկայություն բոլորը(կանխադրված) նշանակում է, որ ստացված աղյուսակը ներառում է բոլոր տողերը, որոնք բավարարում են հարցման պայմանները, ինչը կարող է հանգեցնել արդյունքի աղյուսակում կրկնվող տողերի հայտնվելուն.

Հիմնաբառ հստակնպատակ ունի աղյուսակը համապատասխանեցնել հարաբերությունների տեսության սկզբունքներին, որտեղ ենթադրվում է կրկնակի տողերի բացակայություն.

Խորհրդանիշ» * «սահմանում է շատ սովորական իրավիճակ, երբ արդյունքների հավաքածուն ներառում է հարցման աղբյուրի աղյուսակի բոլոր սյունակները:

□ Մի արտահայտությամբ -իցնշվում է աղբյուրի հարցման աղյուսակների ցանկը:

□ Մի արտահայտությամբ որտեղորոշվում են արդյունքի տողերի ընտրության պայմանները կամ սկզբնաղբյուրների աղյուսակների տողերի միացման պայմանները, ինչպես հարաբերական հանրահաշիվում պայմանական միացման գործողությանը: Հետևյալ պրեդիկատները կարող են օգտագործվել որպես ընտրության պայմաններ.

Համեմատություններ "= ,<>, >, <, >=, <=" - для сравнения результатов вы­числения двух выражений; более сложные выражения строятся с по­мощью логических операторов AND, OR, NOT; значения выражений вычисляются в порядке, который определяется приоритетом исполь­зуемых операторов и наличием скобок в выражении;

միջեւԱևIN- պրեդիկատը ճշմարիտ է, երբ արտահայտության հաշվարկված արժեքը ընկնում է նշված տիրույթում (պրեդիկատ ոչմիջեւաևINճիշտ է, երբ համեմատվող արժեքը չի ընկնում նշված միջակայքում);

մեջ- պրեդիկատը ճշմարիտ է, երբ համեմատվող արժեքը ներառված է տրված արժեքների բազմության մեջ. այս դեպքում արժեքների բազմությունը կարող է սահմանվել պարզ թվարկմամբ կամ ներկառուցված ենթահղումով (նախադրյալը, որը չէ, ճիշտ է, երբ համեմատվող արժեքը ներառված չէ տվյալ բազմության մեջ).

նմանԵվ ոչնման- պրեդիկատները, որոնց իմաստը հակառակ է, պահանջում են նշել կաղապար, որի հետ համեմատվում է տվյալ արժեքը. նման նախադրյալը ճշմարիտ է, եթե համեմատվող արժեքը համընկնում է օրինակին, իսկ հակառակ դեպքում՝ կեղծ;

ISզրոյական- պրեդիկատ, որն օգտագործվում է որոշ հատկանիշի արժեքի հավասարությունը չսահմանված արժեքի նկատմամբ.

    <имя атрибута> ISզրոյական- վերցնում է true արժեքը, եթե այս տողում նշված հատկանիշն ունի չսահմանված արժեք, իսկ արժեքը false, հակառակ դեպքում.

    <имя атрибута> ISՉԻզրոյական-Ամեն ինչ հակառակն է լինում։

գոյություն ունենալԵվ ոչգոյություն ունենալ, օգտագործվում է ներդիրային ենթահարցերում։

□ Մի արտահայտությամբ խումբկողմիցնշված է խմբավորման դաշտերի ցանկը:

□ Մի արտահայտությամբ ունենալովՆշվում են նախադրյալներ-պայմաններ, որոնք դրվում են յուրաքանչյուր խմբի վրա:

□ Մի արտահայտությամբ պատվերկողմիցնշվում է արդյունքների դասակարգման դաշտերի ցանկը, այսինքն՝ դաշտերի ցանկը, որը որոշում է ստացված աղյուսակում տեսակավորման կարգը:

SQL ստանդարտը սահմանում է NULL արժեքի հայեցակարգը, որը պահանջում էր օգտագործել եռարժեք տրամաբանություն, որտեղ բոլոր տրամաբանական գործողությունները կատարվում են ստորև բերված ճշմարտության աղյուսակի համաձայն (Աղյուսակ 6):

Աղյուսակ 6 . Ճշմարտության աղյուսակ

Ա ԵՎ Բ

ՏRUE

1.1. Պարզ հարցումներ

Հայց 1

Ցուցադրել տեղեկատվություն համալսարանի բաժինների մասին:

Այս առաջադրանքը վերաբերում է մեկ աղյուսակից տեղեկատվության ընտրությանը և ցուցադրմանը, և դրա բոլոր տողերն ու սյունակները ենթակա են ելքի.

Ընտրել * Բաժանմունքից

Նման հարցման կատարման արդյունքը կլինի աղյուսակը, որը պարունակում է տեղեկատվություն համալսարանի բոլոր բաժինների մասին.

Կոդ կաֆ

Անունը կաֆ

Nom_telef

Nom_Auditoria

Col_sotr

Իվանով Թ.Մ.

Ընդհանուր մաթեմատիկա

Մախով Կ Լ.

Ռոս Լ.Տ.

Ֆիրսով Ս.Ս.

Կիրառական մաթեմատիկա

Լյախովա Ի.Տ.

Հայց 2

Ցուցադրել համալսարանական բաժինների հեռախոսահամարները:

Նման հարցման արդյունքը պետք է պարունակի միայն երկու սյունակ. Անուն_ կաֆԵվ Nom_ հեռ, Այսպիսով, հարցումն ինքնին պետք է այսպիսի տեսք ունենա.

SELECT Name_kaf, Nom_telef FROM kafedra-ից

Արդյունքների աղյուսակ.

Անունկաֆ Նոմջելեֆ

Ֆիզիկոսներ 23-34-24

Ընդհանուր մաթեմատիկա 23-65-43

Պատմություններ 23-78-72

Գծապատկերներ 23-99-77

Կիրառական մաթեմատիկա 23-66-62

Վերևում գեներացված հարցումներում անհրաժեշտ էր ցուցադրել աղյուսակի բոլոր տողերը, որոնք նշված են from կետում: Եթե ​​ընտրելիս անհրաժեշտ է սահմանափակել տողերի քանակը, որոնք ցուցադրվում են որոշակի պայմանի համաձայն, ապա դրան կարելի է հասնել հարցման մեջ որտեղ կետի միջոցով: Դուք կարող եք ներառել մեկ կամ մի քանի տողերի ընտրության պայմաններ որտեղ կետում:

Հայց 3

Ցուցադրել գրաֆիկայի բաժնի մասին տեղեկատվություն:

SELECT * FROM kafedra WHERE Name_kaf = "Charts"

Նման հարցման պատասխանը կպարունակի միայն մեկ տող.

Kod.kaf Name_kaf NomjelefNom_Auditoria Col_sotr Zav_kaf

004 Գծագրեր 23-99-77 385 18 Ֆիրսով Ս.Ս.

Հարցում 4

Ցուցադրել առաջին հարկում տեղակայված համալսարանական բաժինների մասին տեղեկատվություն՝ հաշվի առնելով այն հանգամանքը, որ առաջին հարկի դասասենյակների թիվը տատանվում է 1-ից 99-ի սահմաններում։

Հարցումը կունենա հետևյալ տեսքը.

SELECT * FROM kafedra WHERE Nom_Auditoria BETWEEN 1 AND 99

Հարցման արդյունք.

KodjcafԱնուն_kafNorn lelef Norn Audit oria Coi_sotr Zavkaf

002 Ընդհանուր մաթեմատիկա 23-65-43 003 22 Մախով Կ.Լ.

մաթեմատիկոսներ

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

Հայց 5

Ցուցադրել համալսարանի բաժինների մասին տեղեկատվությունը տեսակավորված սյունակի տեսքովԱնուն_ կաֆաճման կարգով։

Հարցումը կունենա հետևյալ տեսքը.

SELECT * FROM cafedra ORDER BY Name_caf ASC

Այս հարցման արդյունքը.

Kod_kaf Name_kaf Nomjelef Nom_Auditoria Col_sotr Zav kaf

004 Գրաֆիկա 23-Ե9-77 385 18 Ֆիրսով Ս.Ս.

003 Պատմություններ 23-78-72 465 16 Ռոս Լ.Տ.

002 Ընդհանուր մա- 23-65-43 003 22 Մախով Կ.Լ.

թեմաներ

005 Դիմել 23-66-62 028 24 Լյախովա Ի.Տ.

մաթեմատիկոսներ

001 Ֆիզիկոսներ 23-34-24 132 25 Իվանով Տ.Մ.

Հստակությունը բարելավելու համար հաճախ օգտակար է ցուցադրվող տեղեկատվությունը մի քանի սյունակների դասավորելը: Դա անելու համար տեսակավորման սյունակների անունները պետք է թվարկվեն՝ բաժանված ստորակետերով՝ ըստ կետի հերթականության: Այս դեպքում ելքային աղյուսակը կպարունակի տողեր, որոնք դասավորված են առաջին սյունակով սահմանված կարգով ըստ կետի, իսկ այն տողերը, որոնք ունեն հավասար արժեքներ այս սյունակում, կկազմակերպվեն ձախից երկրորդ սյունակի արժեքներով և այլն: դեպի աջ։

SQL լեզվի հիմքը կազմված է օպերատորներից, որոնք պայմանականորեն բաժանված են մի քանի խմբերի՝ ըստ իրենց կատարած գործառույթների։

Կարելի է տարբերակել հայտարարությունների հետևյալ խմբերը (ոչ բոլոր SQL հայտարարությունները նշված են).

DDL (Data Definition Language) հայտարարություններ - տվյալների բազայի օբյեկտների սահմանման հայտարարություններ

· CREATE SCHEMA - ստեղծել տվյալների բազայի սխեման

· DROP SHEMA - ջնջել տվյալների բազայի սխեման

· ՍՏԵՂԾԵԼ ՍԵՂԱՆ - ստեղծել աղյուսակ

ALTER TABLE - փոխել աղյուսակը

· ԳՈՐԾԵԼ ՍԵՂԱՆԱԿ - ջնջել աղյուսակը

· ՍՏԵՂԾԵԼ ԴՈՄԵԻՆ - ստեղծել տիրույթ

ALTER DOMAIN - փոխել տիրույթը

· ԲԱՑԵԼ ԴՈՄԵՆ - ջնջել տիրույթը

· ՍՏԵՂԾԵԼ ՀԱՎԱՔԱԿԱՆՈՒԹՅՈՒՆ - ստեղծել հաջորդականություն

· DOP COLLATION - ջնջել հաջորդականությունը

· ՍՏԵՂԾԵԼ ԴԻՏՔ - ստեղծել դիտում

· DROP VIEW - ջնջել դիտումը

DML (Data Manipulation Language) օպերատորներ՝ տվյալների մանիպուլյացիայի օպերատորներ

· SELECT - ընտրել տողեր աղյուսակներից

· INSERT - աղյուսակում տողեր ավելացրեք

· UPDATE - փոխել տողերը աղյուսակում

· DELETE - ջնջել տողերը աղյուսակում

· COMMIT - կատարել կատարված փոփոխությունները

· ROLLBACK - հետ վերադարձնել կատարված փոփոխությունները

Տվյալների պաշտպանության և կառավարման օպերատորներ

· ՍՏԵՂԾԵԼ ՊԱՅՄԱՆՆԵՐ - ստեղծել սահմանափակում

· ԴԱՌՆԵԼ ՊԱՅՄԱՆԸ - հանել սահմանափակումը

· GRANT - արտոնություններ տրամադրել օգտվողին կամ հավելվածին օբյեկտները շահարկելու համար

REVOKE - չեղյալ համարել օգտվողի կամ հավելվածի արտոնությունները

Բացի այդ, կան օպերատորների խմբեր՝ սեսիայի պարամետրերը սահմանելու, տվյալների բազայի մասին տեղեկություններ ստանալու, ստատիկ SQL օպերատորների և դինամիկ SQL օպերատորների համար։

Օգտագործողի համար ամենակարևորը տվյալների մանիպուլյացիայի հայտարարություններն են (DML):

Տվյալների մանիպուլյացիայի օպերատորների օգտագործման օրինակներ

INSERT - աղյուսակի մեջ տողերի տեղադրում

Օրինակ 1. Մեկ տող աղյուսակի մեջ դնելը.

VALUES (4, «Իվանով»);

UPDATE - աղյուսակի տողերի թարմացում

Օրինակ 3. Աղյուսակի մի քանի տողերի թարմացում.

SET PNAME = «Պուշնիկով»

ՈՐՏԵՂ P.PNUM = 1;

DELETE - աղյուսակի տողերի ջնջում

Օրինակ 4. Աղյուսակի մի քանի տողերի ջնջում.

ՈՐՏԵՂ P.PNUM = 1;

SELECT դրույթի օգտագործման օրինակներ

SELECT հայտարարությունը իրականում օգտագործողի համար ամենակարևոր և ամենաբարդ SQL հայտարարությունն է: Այն նախատեսված է աղյուսակներից տվյալներ ստանալու համար, այսինքն. այն, ըստ էության, իրականացնում է տվյալների բազայի հիմնական նպատակներից մեկը՝ օգտատիրոջը տեղեկատվություն տրամադրելը:

SELECT հայտարարությունը միշտ կատարվում է տվյալների բազայի մաս կազմող որոշ աղյուսակների վրա:

Մեկնաբանություն. Փաստորեն, տվյալների բազաները կարող են պարունակել ոչ միայն մշտապես պահվող աղյուսակներ, այլև ժամանակավոր աղյուսակներ և, այսպես կոչված, դիտումներ: Դիտումները պարզապես SELECT արտահայտություններ են, որոնք պահվում են տվյալների բազայում: Օգտատիրոջ տեսանկյունից դիտումը աղյուսակ է, որը մշտապես չի պահվում տվյալների բազայում, բայց «հայտնվում է», երբ այն մուտք է գործում: SELECT դրույթի տեսանկյունից և՛ մշտական ​​աղյուսակները, և՛ ժամանակավոր աղյուսակները և դիտումները միանգամայն նույն տեսքն ունեն: Իհարկե, երբ համակարգը իրականում կատարում է SELECT հայտարարությունը, հաշվի են առնվում պահպանված աղյուսակների և դիտումների միջև եղած տարբերությունները, սակայն այս տարբերությունները թաքնվածօգտագործողից։


SELECT հայտարարության արդյունքը միշտ աղյուսակ է: Այսպիսով, SELECT հայտարարության արդյունքները նման են հարաբերական հանրահաշվի օպերատորներին: Ցանկացած հարաբերական հանրահաշիվ օպերատոր կարող է արտահայտվել համապատասխան ձևակերպված SELECT հայտարարությամբ: SELECT դրույթի բարդությունը որոշվում է նրանով, որ այն պարունակում է հարաբերական հանրահաշվի բոլոր հնարավորությունները, ինչպես նաև հավելյալ հնարավորություններ, որոնք առկա չեն հարաբերական հանրահաշվում։

SELECT քաղվածքի կատարման հրաման

Հասկանալու համար, թե ինչպես է ստացվում SELECT հրահանգի կատարման արդյունքը, դիտարկենք դրա կատարման հայեցակարգային դիագրամը: Այս սխեման զուտ կոնցեպտուալ է, քանի որ երաշխավորված է, որ արդյունքը կլինի նույնը, ինչ եթե այն կատարվեր քայլ առ քայլ այս սխեմայի համաձայն: Իրականում, իրական արդյունքը ստացվում է ավելի բարդ ալգորիթմների միջոցով, որոնց «տնօրինում է» որոշակի DBMS:

Փուլ 1. Մեկ SELECT քաղվածքի կատարում

Եթե ​​օպերատորը պարունակում է UNION, EXCEPT և INTERSECT հիմնաբառեր, ապա հարցումը բաժանվում է մի քանի անկախ հարցումների, որոնցից յուրաքանչյուրը կատարվում է առանձին.

Քայլ 1 (FROM). Պահանջվող FROM կետում նշված բոլոր աղյուսակների ուղղակի դեկարտյան արտադրյալը հաշվարկվում է: Քայլ 1-ի արդյունքում մենք ստանում ենք աղյուսակ Ա.

Քայլ 2 (ՈՐՏԵՂ). Եթե ​​SELECT դրույթում կա WHERE նախադասություն, ապա աղյուսակ A, որը ստացվել է 1-ին քայլում, սկանավորվում է WHERE կետում տրված պայմանական արտահայտությունը գնահատվում է A աղյուսակի յուրաքանչյուր տողի համար: Արդյունքում ներառված են միայն այն տողերը, որոնց համար պայմանական արտահայտությունը վերադարձնում է TRUE: Եթե ​​WHERE կետը բաց է թողնվել, ապա ուղղակիորեն անցեք քայլ 3-ին: Եթե պայմանական արտահայտությունը ներառում է ներդիր ենթհարցումներ, ապա դրանք գնահատվում են այս հայեցակարգային սխեմայի համաձայն: Քայլ 2-ի արդյունքում մենք ստանում ենք աղյուսակ Բ.

Քայլ 3 (ԽՈՒՄԲ ԸՍՏ). Եթե ​​SELECT դրույթում առկա է GROUP BY կետ, ապա երկրորդ քայլում ստացված B աղյուսակի տողերը խմբավորվում են ըստ GROUP BY կետում նախատեսված խմբավորման ցանկի: Եթե ​​GROUP BY կետը բաց է թողնված, ապա ուղիղ անցեք 4-րդ քայլին: Քայլ 3-ի արդյունքում ստանում ենք C աղյուսակ:

Քայլ 4 (ՈՒՆԵՆՔ). Եթե ​​SELECT դրույթը պարունակում է HAVING դրույթ, ապա խմբերը, որոնք չեն բավարարում HAVING կետում տրված պայմանական արտահայտությանը, բացառվում են: Եթե ​​ՈՒՆԵՑՈՂ բաժինը բաց է թողնված, ապա ուղիղ անցեք 5-րդ քայլին: 4-րդ քայլի արդյունքում մենք ստանում ենք աղյուսակ D:

Քայլ 5 (Ընտրել). Քայլ 4-ում ստացված յուրաքանչյուր խումբ առաջացնում է մեկ արդյունքի տող հետևյալ կերպ. SELECT կետում նշված բոլոր սկալային արտահայտությունները գնահատվում են: Ըստ GROUP BY կետի օգտագործման կանոնների՝ նման սկալյար արտահայտությունները պետք է լինեն նույնը յուրաքանչյուր խմբի բոլոր տողերի համար: Յուրաքանչյուր խմբի համար հաշվարկվում են SELECT բաժնում տրված ագրեգատ ֆունկցիաների արժեքները: Եթե ​​չկա GROUP BY կետ, բայց SELECT կետում կան ագրեգատային ֆունկցիաներ, ապա կա միայն մեկ խումբ: Եթե ​​չկա GROUP BY կետ կամ ագրեգատ ֆունկցիաներ, ապա ենթադրվում է, որ կան այնքան խմբեր, որքան մինչ այժմ ընտրված տողերը: Քայլ 5-ի արդյունքում մենք ստանում ենք E աղյուսակը, որը պարունակում է այնքան սյունակ, որքան SELECT բաժնում թվարկված տարրեր և ընտրված են այնքան տող, որքան խմբեր:

Փուլ 2. UNION, EXCEPT, INTERSECT գործողությունների կատարում

Եթե ​​SELECT դրույթը պարունակում էր UNION, EXCEPT և INTERSECT հիմնաբառերը, ապա 1-ին փուլից ստացված աղյուսակները միաձուլվում, հանվում կամ հատվում են:

Փուլ 3. Արդյունքի պատվիրում

Եթե ​​SELECT հայտարարությունը պարունակում է ORDER BY կետ, ապա նախորդ քայլերով ստացված աղյուսակի տողերը դասավորված են ըստ ORDER BY կետում տրված հերթականության ցանկի:

SQL SELECT հայտարարությունը նախատեսված է տվյալների բազայից տվյալներ ընտրելու հարցումների համար: Այն կարող է օգտագործվել կամ առանց պայմանների (ընտրելով բոլոր տողերը բոլոր սյունակներում կամ բոլոր տողերը որոշակի սյունակներում) կամ մի քանի պայմաններով (ընտրելով հատուկ տողեր), որոնք նշված են WHERE կետում: Եկեք ծանոթանանք SQL գործիքներին, որոնք կարող են օգտագործվել տվյալների ընտրության համար այս պայմանները սահմանելու համար, ինչպես նաև սովորել, թե ինչպես օգտագործել SELECT հայտարարությունը ենթհարցերում:

Ընտրեք՝ աղյուսակի սյունակներն ընտրելու համար

Սեղանի բոլոր սյունակները ընտրելու համար SELECT դրույթով հարցումն ունի հետևյալ շարահյուսությունը.

SELECT * TABLE_NAME-ից

Այսինքն՝ աղյուսակի բոլոր սյունակները ընտրելու համար անհրաժեշտ է SELECT բառից հետո աստղանիշ դնել։

Օրինակ 1.Գործում է ընկերության տվյալների բազա՝ Ընկերություն։ Այն պարունակում է աղյուսակ Օրգ (Ընկերության կառուցվածք) և Անձնակազմ (Աշխատակիցներ): Դուք պետք է ընտրեք բոլոր սյունակները աղյուսակներից: Org աղյուսակից բոլոր սյունակները ընտրելու համար համապատասխան հարցումը հետևյալն է.

ԸՆՏՐԵԼ * ORG-ից

Այս հարցումը կվերադարձնի հետևյալը (պատկերը մեծացնելու համար ձախ սեղմեք դրա վրա).

Աշխատակազմի աղյուսակից բոլոր սյունակները ընտրելու հարցումն ունի հետևյալ տեսքը.

ԸՆՏՐԵԼ * ԱՇԽԱՏԱԿԱԶՄԻՑ

Այս հարցումը կվերադարձնի հետևյալը.


Սեղանի որոշակի սյունակներ ընտրելու համար աստղանիշի փոխարեն մենք պետք է նշենք բոլոր այն սյունակների անունները, որոնք պետք է ընտրվեն՝ բաժանված ստորակետերով.

ԸՆՏՐԵԼ SELECTABLE_COLUMNS TABLE_NAME-ից

Օրինակ 2.Ենթադրենք, որ ցանկանում եք Org աղյուսակից ընտրել Depnumb և Deptname սյունակները, որոնք համապատասխանաբար պարունակում են տվյալներ ընկերության բաժինների թվերի և դրանց անունների վերաբերյալ: Նման նմուշ ստանալու հարցումը կլինի հետևյալը.

Ընտրեք DEPNUMB, DEPTNAME ORG-ից

Իսկ Staff աղյուսակից պետք է ընտրել DEPT, NAME, JOB սյունակները, որոնք համապատասխանաբար պարունակում են տվյալներ այն ստորաբաժանման թվի, որում աշխատում է աշխատողը, նրա անունը և պաշտոնը.

ԸՆՏՐԵԼ ԲԱԺԻՆ, ԱՆՎԱՆՈՒՄ, ԱՇԽԱՏԱՆՔ ԱՇԽԱՏԱԿԱԶՄԻՑ

Աղյուսակի որոշակի տողեր ընտրելու համար, SELECT դրույթի հետ միասին, ձեզ արդեն անհրաժեշտ կլինի WHERE հիմնաբառը, որը ցույց է տալիս որոշակի արժեք կամ մի քանի արժեքներ, որոնք պարունակվում են մեզ հետաքրքրող տողերում: Ամենապարզ պայմանները սահմանվում են՝ օգտագործելով համեմատության և հավասարության օպերատորները (, =), ինչպես նաև IS հիմնաբառը: Կարող են լինել մի քանի պայմաններ, այնուհետև դրանք թվարկվում են՝ օգտագործելով AND բանալի բառը: Տողերի ընտրության հարցումներն ունեն հետևյալ շարահյուսությունը.

Օրինակ 4.Նախորդ օրինակում մենք աղյուսակից տողեր ենք ընտրել միայն մեկ սյունակի արժեքով՝ DEPT: Ենթադրենք, հիմա պետք է ընտրեք տվյալներ այն աշխատակիցների մասին, ովքեր աշխատում են 38-րդ բաժնում և ում պաշտոնն է Գործավար: Դա անելու համար WHERE բաժնում համապատասխան արժեքները պետք է նշվեն՝ օգտագործելով AND բառը.


Օրինակ 5.Ենթադրենք, դուք պետք է Աշխատակազմի աղյուսակից ընտրեք այն աշխատողների նույնացուցիչներն ու անունները, որոնց հանձնաժողովի չափը անորոշ է: Դա անելու համար WHERE բաժնում, նախքան COMM - NULL սյունակի արժեքը նշելը, պետք է ոչ թե հավասարության նշան դնել, այլ IS բառը.

Այս հարցումը կվերադարձնի հետևյալ տվյալները.


Համեմատության նշանները նույնպես օգտագործվում են՝ նշելու այն տողերի արժեքները, որոնք ցանկանում եք ընտրել:

Օգտագործելով SELECT և IN, OR, BETWEEN, LIKE պրեդիկատները

Predicates - բառերը IN, OR, BETWEEN, LIKE WHERE բաժնում - նաև թույլ են տալիս ընտրել արժեքների որոշակի միջակայք (IN, OR, BETWEEN) կամ արժեքներ տողերում (LIKE), որոնք ցանկանում եք ընտրել սեղան. IN, OR, BETWEEN նախադրյալներով հարցումներն ունեն հետևյալ շարահյուսությունը.

LIKE պրեդիկատով հարցումներն ունեն հետևյալ շարահյուսությունը.

Օրինակ 7.Ենթադրենք, որ ցանկանում եք Աշխատակազմի աղյուսակից ընտրել 20 կամ 84 համարով աշխատող ստորաբաժանումներում աշխատող աշխատակիցների անունները, պաշտոնները և աշխատած տարիների թիվը: Դա կարելի է անել հետևյալ հարցումով.

Հարցման արդյունքը.


Օրինակ 8.Ենթադրենք, հիմա դուք ցանկանում եք ընտրել նույն տվյալները Staff աղյուսակից, ինչպես նախորդ օրինակում: OR բառով հարցումը նման է IN բառով հարցմանը և փակագծերում նշված արժեքները: Հարցումը կլինի հետևյալը.

Օրինակ 9.Նույն աղյուսակից ընտրենք այն աշխատողների անունները, պաշտոնները և աշխատած տարիների թիվը, որոնց աշխատավարձը կազմում է 15000-ից մինչև 17000 ներառյալ.

Հարցման արդյունքը.


LIKE պրեդիկատը օգտագործվում է այն տողերի ընտրության համար, որոնց արժեքները պարունակում են նիշերը, որոնք նշված են ապաստրոֆների միջև պրեդիկատից հետո ("):

Օրինակ 10.Եկեք նույն աղյուսակից ընտրենք այն աշխատողների անունները, պաշտոնները և աշխատած տարիների թիվը, որոնց անունները սկսվում են S տառով և բաղկացած են 7 նիշից.

Ընդգծումը (_) նշանակում է ցանկացած նիշ: Հարցման արդյունքը.


Օրինակ 11.Եկեք նույն աղյուսակից ընտրենք այն աշխատողների անունները, պաշտոնները և աշխատած տարիների թիվը, որոնց անունները սկսվում են S տառով և պարունակում են ցանկացած այլ տառ ցանկացած քանակությամբ.

Տոկոսային նշանը (%) նշանակում է ցանկացած թվով նիշ: Հարցման արդյունքը.


IN, OR, BETWEEN, LIKE պրեդիկատների միջոցով նշված արժեքները կարող են շրջվել՝ օգտագործելով NOT բառը: Այդ դեպքում պահանջվող տվյալները կունենան հակառակ նշանակություն։ Եթե ​​մենք օգտագործում ենք NOT IN (20, 84), ապա կցուցադրվեն այն աշխատակիցների տվյալները, ովքեր աշխատում են բոլոր ստորաբաժանումներում, բացառությամբ 20 և 84 համարներով, մենք կարող ենք ստանալ այն աշխատողների տվյալները, որոնց աշխատավարձը ներառված չէ: 15000-ից մինչև 17000 միջակայքում: NOT LIKE-ով հարցումը կվերադարձնի տվյալներ այն աշխատակիցների համար, որոնց անունները չեն սկսվում կամ չեն պարունակում NOT LIKE-ով նշված նիշերը:

Ինքներդ գրեք SQL հարցումները SELECT և IN, NOT IN, BETWEEN նախադրյալներով, այնուհետև նայեք լուծումներին

Կա «Թատրոն» շտեմարան։ Play աղյուսակը պարունակում է տվյալներ արտադրությունների մասին: Թիմային սեղան՝ դերասանների դերերի մասին։ The Actor table-ը դերասանների մասին է: Տնօրենի սեղան - տնօրենների մասին: Աղյուսակի դաշտերը, հիմնական և արտաքին ստեղները կարելի է տեսնել ստորև նկարում (սեղմեք ձախը՝ մեծացնելու համար):


Օրինակ 12.Ցուցադրել այն դերասանների ցուցակը, ովքեր երբեք չեն ընտրվել գլխավոր դերում: Թիմային աղյուսակում հիմնական դերերի մասին տվյալները պարունակվում են հիմնական թիմի սյունակում: Եթե ​​դերը գլխավորն է, ապա համապատասխան տողում նշվում է «Y»:

SELECT and ORDER BY - տողերի տեսակավորում (պատվիրում):

Մինչ այժմ քննարկված SQL SELECT հարցումները վերադարձրեցին տողեր, որոնք կարող էին լինել ցանկացած հերթականությամբ: Այնուամենայնիվ, դուք հաճախ պետք է դասավորեք տողերը ըստ թվային կարգի, այբուբենի և այլ չափանիշների: Սա արվում է՝ օգտագործելով ORDER BY հիմնաբառը: Նման հարցումներն ունեն հետևյալ շարահյուսությունը.

Օրինակ 15.Պահանջը լինի Աշխատակազմի աղյուսակից ընտրել թիվ 84 բաժնում աշխատող աշխատողներին և դասավորել (պատվիրել) գրառումներն ըստ աշխատած տարիների քանակի աճման կարգով.

ASC բառը ցույց է տալիս, որ տեսակավորման կարգը աճում է: Այս բառը կամընտիր է, քանի որ դասակարգման աճման կարգը կանխադրված է: Հարցման արդյունքը.


Օրինակ 16.Թող պահանջվի ընտրել նույն տվյալները, ինչ նախորդ օրինակում, բայց դասավորել (դասավորել) գրառումները ըստ աշխատած տարիների քանակի՝ նվազման կարգով.

DESC բառը ցույց է տալիս, որ տեսակավորման կարգը նվազում է: Հարցման արդյունքը.


SELECT և DISTINCT - կրկնօրինակ տողերի հեռացում

Երբ աղյուսակի տողերի արժեքները եզակի չեն դրված, հարցման արդյունքներում կարող են հայտնվել կրկնօրինակ տողեր: Հաճախ ձեզ հարկավոր է միայն եզակի տողեր դուրս բերել: Դա արվում է SELECT դրույթից հետո օգտագործելով DISTINCT արտահայտությունը:

Օրինակ 17.Ենթադրենք, դուք ցանկանում եք պարզել, թե ինչ բաժիններ կան և ինչ դիրքեր կան այն բաժիններից, որոնց թիվը 30-ից պակաս է: Դա կարելի է անել՝ օգտագործելով հետևյալ հարցումը.

Հարցման արդյունքը.


SELECT հայտարարությունը SQL ենթահարցերում

Մինչ այժմ մենք դիտարկել ենք SQL կոնստրուկցիաները SELECT ցուցումով, որտեղ պայմանները, որոնցով ընտրվում են տվյալները և ընտրված տվյալները, պարունակվում են տվյալների բազայի նույն աղյուսակում: Գործնականում հաճախ է պատահում, որ այն տվյալները, որոնք պետք է ընտրվեն, պարունակվում են մի աղյուսակում, իսկ պայմանները՝ մեկ այլ աղյուսակում: Ահա, որտեղ օգնության են հասնում ենթահարցերը. ընտրության պայմանի արժեքները վերադարձվում են մեկ այլ հարցումից (ներդիր հարցում), որը նույնպես սկսվում է SELECT-ով: Ենթհարցերով հարցումները կարող են վերադարձնել մեկ կամ մի քանի տող:

Օրինակ 18.Բոլոր նույն ORG և STAFF սեղանները: Ենթադրենք՝ ցանկանում եք պարզել, թե որ բաժնում է աշխատում 280 նույնականացման համարով աշխատողը, և որտեղ է գտնվում այս բաժինը։ Բայց գերատեսչությունների մասին տեղեկատվությունը պահվում է ORG աղյուսակում, իսկ աշխատակիցների մասին տեղեկատվությունը պահվում է STAFF աղյուսակում: Դա կարելի է անել՝ օգտագործելով հետևյալ հարցումը ենթհարցմամբ, որտեղ արտաքին SELECT-ը մուտք է գործում ORG աղյուսակ, իսկ ներքին SELECT-ը՝ STAFF աղյուսակ.

Հարցման արդյունքը.


Օրինակ 19.Ենթադրենք, որ այժմ դուք պետք է պարզեք, թե որ բաժիններում են աշխատում 13000-ից պակաս աշխատավարձ ունեցող աշխատակիցները: մի շարք արժեքներ (IN), իսկ ներքին SELECT (STAFF աղյուսակում) պարզապես վերադարձնում է արժեքների պահանջվող միջակայքը.

Հարաբերական տվյալների բազաներ և SQL լեզու

© 2024 ermake.ru -- Համակարգչի վերանորոգման մասին - Տեղեկատվական պորտալ