Միավորում, հատում, հանում
ՄԻԱՎՈՐՈՒՄ (UNION, UNION ALL) Դիցուք ունենք հետևյալ `T1 և T2 աղյուսակները. AB 1C 2E 3KAB 1C 7D Select A,B From T1 Union Select A,B From T2 AB 1C 2E 3K 7D T1T2 Նշված հարցման արդյունքում կստանաք հետևյալ աղյուսակը `
Select A,B From T1 Union All Select A,B From T2 AB 1C 2E 3K 1C 7D
ՀԱՏՈՒՄ (INTERSECT) Դիցուք ունենք հետևյալ `T1 և T2 աղյուսակները. AB 1C 2E 3KAB 1C 7D Select A,B From T1 Intersect Select A,B From T2 AB 1C T1T2 Նշված հարցման արդյունքում կստանաք հետևյալ աղյուսակը `
ՀԱՆՈՒՄ (EXCEPT) Դիցուք ունենք հետևյալ `T1 և T2 աղյուսակները. AB 1C 2E 3KAB 1C 7D Select A,B From T1 except Select A,B From T2 AB 2E 3K T1T2 Նշված հարցման արդյունքում կստանաք հետևյալ աղյուսակը `
Գործողությունների առաջնայնությունը IntersectExcept Union (all) Գործողությունների հերթականությունը նշելու համար օգտագործվում են փակագծերը
Օրինակ Գտնել այն ոչ գլխավոր նավերի աննունները, որոք մասնակցել են որևէ ծովամարտի և այդ նավերի մասին տվյալ կա Ships- ում : (select ship from Outcomes except select class from Classes) intersect select name from Ships
With With- ը ժամանակավոր անուն է դնում հարցմանը ( կոչվում է common table expression (CTE) ): Այս անունը մասնակցում է միայն հարցման մեջ : With- ի օգնությամբ մի ենթահարցումը կարելի է օգտագործել մեկից ավելի անգամ և կարելի է գրել ռեկուրսիվ հարցումներ :
Գրելաձևը [ WITH [,...n ] ] ::= ::= expression_name [ ( column_name [,...n ] )] expression_name [ ( column_name [,...n ] )] AS AS ( CTE_query_definition ) ( CTE_query_definition )
Օրինակ ` Գտնել այն դասերը, որոնք ունեն մաքսիմալ թվով նավեր ( դիտարկել միայն Ships- ի նավերը ) with qntShips as ( select class, count(*) as cnt from Ships from Ships group by class) group by class) select class from qntShips where cnt = (select max(cnt) as maxcnt from qntShips ) from qntShips )
Խնդիրներ 1. Գտնել մատակարաներին, որոնք մատակարարում են և գունավոր տպիչ և PC ( ենթահարցում չօգտագործել ): 2. Գտնել մատակարաներին, որոնք մատակարարում են 500 և ավելի արագուտյուն ունեցող laptop- ներ, բայց չեն արտադրում տպիչներ ( ենթահարցում չօգտագործել ):
3. Առանց join օգտագործելու գտնել բոլոր նավերի անունները, որոնց մասին տվյալ կա աղյուսակներում : 4. Գտնել մատակարարների մատակարարած յուրաքանչյուր մոդելի միջին գինը ( և PC, և laptop, և printer, outer join չօգտագործել ): 5. Գտնել բոլոր մոդելները, նրանց կոդերը և գները :
Ինքնուրույն կատարման համար 1. Գտնել ընդունման կետը ( երը ), օրը ( երը ) և կոդը ( երը ), որտեղ և երբ կամ հումքի ընդունում է կատարվել կամ գումարի ստացում (outer join չօգտագործել ): 2. Գտնել մատակարարներին, որոնք մատակարարում են գունավոր տպիչ, բայց չեն մատակարարում անգույն տպիչ ( ենթահարցում չօգտագործել ):
3. Գտնել մատակարարներին, որորնք մատակարարում են և PC և laptop(join չօգտագործել ): 4. Գտնել մաքսիմալ թվով մատակարարված մոդելները : 5. Գրել հարցում, որը կվերադարձնի թվերը : Առաջադրանքները ուղարկել հասցեով մինչև հաջորդ դասը նախորդող օրվա 18:00 կամ դասին տետրի մեջ