Ենթահարցումներ (Subqueries). Ենթահարցումը SQL հարցում է օգտագործված մեկ այլ հարցման մեջ : Ենթահարցումները կարող են օգտագործվել Select- ի ցուցակում,from-

Презентация:



Advertisements
Похожие презентации
Միավորում, հատում, հանում. ՄԻԱՎՈՐՈՒՄ (UNION, UNION ALL) Դիցուք ունենք հետևյալ `T1 և T2 աղյուսակները. AB 1C 2E 3KAB 1C 7D Select A,B From T1 Union Select.
Advertisements

Հարցումներ հիմնված մեկից ավելի աղյուսակների վրա. SQL- ը հնարավորություն է տալիս միակցելով (join) երկու և ավելի աղյուսակ ստանալ նոր աղյուսակ : Տարբերակվում.
Հարցումներ հիմնված մեկից ավելի աղյուսակների վրա ( շարունակություն )
Խմբավորում և ագրեգատային ֆունկցիաներ. Դիտարկենք Products հարաբերությունը Product IDProductName Supplier ID Unit Price UnitsIn StockDiscontinued… 1Chai …
Վիրտուալ հիշողություն Windows. Հիշողության կազմակերպումը Հիշողության կազմակերպումը Ինչպես բաշխել հիշողությունը պրոցեսների միջև Ինչպես բաշխել հիշողությունը.
SQL (Structured Query Language) Կառուցվածքային հարցումների լեզու.
Adobe Photoshop Adobe Photoshop Adobe Photoshop Adobe Photoshop Corel Draw Corel Draw Corel Draw Corel Draw.
Թեմա 3 Զբոսաշրջային ձեռնարկության մարքեթինգային համալիրի մշակումը կամ « մարքեթինգ - միքս »
Սինխրոնիզացիան Linux ՕՀ - ում. mutex – արգելափակում է մուտքը դեպի ռեսուրսը mutex – արգելափակում է մուտքը դեպի ռեսուրսը join – սպասում է ուրիշ հոսքերի.
Հոսքերը Windows ՕՀ - ում. Ներածություն Ներածություն Հոսքի ստեղծումը Հոսքի ստեղծումը Հոսքի ավարտը Հոսքի ավարտը Հոսքի ստեկը Հոսքի ստեկը Հոսքերի առաջնայնությունը.
Name: Yogesh Mehla Website: Phone:
Պրոցեսների ստեղծումը Linux ՕՀ - ում. fork fork ֆունկցիան ստեղծում է նոր ( զավակ ) պրոցես : fork ֆունկցիան ստեղծում է նոր ( զավակ ) պրոցես : #include #include.
CREATE TABLE Ident_table ( ID int IDENTITY(1, 1), some_values varchar(50)); IDENTITY [ ( seed, increment ) ]
Выражения унарные (унарный минус) арифметические (+, -, *, /) сравнения (, =, =, , LIKE, BETWEEN...) конкатенации (||) логические (NOT, AND, OR)
Houses in England. Who owns houses in England? 2\3 of the people in England and the rest of Britain own or in the process of buying their own houses.
Minimum spanning trees. Minimum Connector Algorithms Kruskals algorithm 1.Select the shortest edge in a network 2.Select the next shortest edge which.
БАЗЫ ДАННЫХ ЛЕКЦИЯ 12. тема: ОСНОВЫ ЯЗЫКА SQL Общие сведения SQL структурированный язык запросов (Structured Query Language)
PL/SQL Хранимые процедуры и функции. Процедуры [CREATE [OR REPLACE]] PROCEDURE procedure_name[(parameter[, parameter]...)] {IS | AS} [local declarations]
Ես խաղայնացնում եմ … Լսարանում, սոցիալական աշխատանքի պրակտիկում դասընթացի գործնական պարապմունքների ժամանակ.
I usually get up nearly 7 oclock. I do not like to get up early, but I have to, because I have a lot of work to do during the day.
Транксрипт:

Ենթահարցումներ (Subqueries)

Ենթահարցումը SQL հարցում է օգտագործված մեկ այլ հարցման մեջ : Ենթահարցումները կարող են օգտագործվել Select- ի ցուցակում,from- ի մեջ և wher- ի մեջ : Ենթահարցումը օգտագործվում է երբ անհրաժեշտ է հարցումում օգտագործել տվյալ, որը ստացվում է մեկ այլ հարցման արդյունքում :

Դիտարկենք Ships աղյուսակը : Գտնենք ամենաերիտասարդ նավերը, այսինք նավերը որոնք ամենաուշն են ջուր իջեցվել : Select * From Ships Where launched = (Select max(launched) From Ships) From Ships)

Կորրելացված հարցումներ (Correlated Subqueries) Ենթահարցումները, որոնք օգտագործում են արտաքին աղյուսակի սյուները կոչվում են կորրելացված հարցումներ : Այս հարցումները աշխատեցվում են արտաքին հարցումի յուրաքանչյուր տողի համար : կոչվում են կորրելացված հարցումներ : Այս հարցումները աշխատեցվում են արտաքին հարցումի յուրաքանչյուր տողի համար : Գտնենք այն նավերը Ships աղյուսակից, որոնք ամենաերտասարդը չեն տվյալ դասում : Select * From Ships sh1 Where launched < (Select max(launched) From Ships sh2 From Ships sh2 Where sh2.class = sh1.class) Where sh2.class = sh1.class)

Wher- ում օգտագործվող ենթահարցումների գործողություններ են համեմատման գործողություններ (=,<>, >,like, …) համեմատման գործողություններ (=,<>, >,like, …) in in between between exists exists not exists not exists any, some, or all

Exsist օգտագործվում է ենթահարցման գոնե մեկ տողի առկայությունը ստուգելու համար : Իսկ not exsist – ը ենթահարցուման դատարկ աղյուսակ վերադարձնելը : Օրինակ ` Ships աղյուսակից գտնենք այն նավերը, որոնք մասնակցել են գոնե մեկ մարտի : Select * From Ships Where exists (Select ship From Outcomes Where name = ship) Օրինակ ` Ships աղյուսակից գտնենք այն նավերը, որոնք չեն մասնակցել ոչ մի մարտի : Select * From Ships Where not exists (Select ship From Outcomes Where name = ship)

From- ում օգտագործվող ենթահարցումներ : Ենթահարցմանը, որը օգտագործվում է From- ում պետք է պարտադիր անուն տրվի : Նորից դիրկենք հետևյալ խնդիրը ` Գտնենք ամենաերիտասարդ նավերը, այսինք նավերը որոնք ամենաուշն են ջուր իջեցվել Select sh1.* From Ships sh1 join (Select max(launched) as maxlaunched From Ships ) sh2 on launched = maxlaunched

Select- ում օգտագործվող ենթահարցումներ : Դիտարկենք հետևյալ խնդիրը. Classes աղյուսակի յուրաքանչյուր class- ի համար գտնել ջուր իջեցման առաջին տարին : Select *, mixlaunched = (Select min(launched) From Ships sh Where sh.class = c.class) From Classes c Կամ Select *, (Select min(launched) From Ships sh Where sh.class = c.class) as mixlaunched From Classes c

Համեմատման գործողություններ ANY, SOME, or ALL օպերատորներով Դիտարկենք հետևյալ խնդիրը. Գտնենք մարտանավերը, որոնցից ավելի ուշ ջուր իջեցված նավեր կան : Select * from Ships s where launched < any (select launched from Ships s1 from Ships s1 where s1.name <> s.name) where s1.name <> s.name) SOME- ը համարժեք է ANY- ին (Some SQL-92 ստանդարտից է ) Այժմ դիտարկենք հետևյալ խնդիրը. Գտնենք մարտանավերը, որոնք ջուր են իջեցված առաջին տարում : Select * from Ships s where launched <= all (select launched from Ships s1 from Ships s1 where s1.name <> s.name) where s1.name <> s.name)

Case…when օպերատոր Դիտարկենք հետևյալ խնդիրը. Յուրաքանչյուր class- ի Classes աղյուսակից համապագասխանեցնել նոր գնահատական A,B կամ C կախված գլխավոր զենքերի քանակից (numGuns)` A եթե 12 հատ են գլխավոր զենքերի քանակը, B` եթե 9 h ատ է, C մնացած դեպքերում : Select *, R = case numGuns when 12 then 'A' when 12 then 'A' when 9 then 'B' when 9 then 'B' else 'C' else 'C' end end from Classes

Դիտարկենք նախորդ խնդիրը, բայց գնահատականը որոշենք սանդղակով կախված զենքի տրամաչափից ` C B 18 և ավելի - A Select *, R = case when bore >= 18 then 'A' when bore >= 18 then 'A' when bore >= 15 then 'B' when bore >= 15 then 'B' else 'C' else 'C' end end From Classes order by bore

Խնդիրներ 1. Գտնել մատակարաներին, որոնք մատակարարում են և գունավոր տպիչ և PC: 2. Գտնել մատակարաներին, որոնք մատակարարում են 500 և ավելի արագուտյուն ունեցող laptop- ներ, բայց չեն արտադրում տպիչներ :

3. Առանց join օգտագործելու գտնել ջրասուզ եղած նավի ջրասուզման ամսաթիվը : 4. Գտնել այն նավերը, որոնք իրենց առաջին ծովամարտին ջրասույզ են եղել : 5. Գտնել դասերը, որոնց նավերը ունեն ամենամեծ տրամաչափի գլխավոր զենք : 6. Գտնել առաջին ծովամարտի անունը : 7. Գտնել ավիաընկերությունները ( նաև անուները ), որոնք մինիմալ թվով չվերթներ ունեն :

Ինքնուրույն կատարման համար 1. Գտնել ընդունման կետը ( երը ), օրը ( երը ) և կոդը ( երը ), որտեղ և երբ կատարվել է ամենամեծ գումարի հումքի ընդունումը : 2. Գտնել մատակարարներին, որոնք մատակարարում են գունավոր տպիչ, բայց չեն մատակարարում անգույն տպիչ :

3. Գտնել մատակարարներին, որորնք մատակարարում են ամենաթանկ PC- ները : 4. Գտնել քաղաքները, ուր կարելի է հասնել մաքսիմալ թվով ավիաընկերությունների չվերթների միջոցով : 5. Գտնել ավիաընկերությունները ( նաև անունները ), որոնք սպասարկել են մաքսիմալ թվով ուղևորներ ( եթե մի ուղևորը նույն ավիաընկերության ծառայությունից օգտվել է մեկից ավելի անգամ, հաշվել մեկ ուղևոր ):

6. Գտնել ամենաշատ նավեր ունեցող երկրները : 7. Գտնել ամնամեծ ծովամարտերը ( որոնվում մաքսիմալ թվով նավեր են մասնակցել ): 8. Գտնել քաղաքները, ուր վայրէջք կատարել են մաքսիմալ թվով ուղևորներ : 9. Գտնել ամենաքիչ չվերթներ ունեցող ուղղությունները (town_from, town_to զույգերը ): Առաջադրանքները ուղարկել հասցեով մինչև հաջորդ դասը նախորդող օրվա 18:00 կամ դասին տետրի մեջ :