MS SQL-Server 2000. Сивохин А.В. - 43 стр.

UptoLike

Составители: 

R)Использование ключевых слов RIGHT OUTER JOIN для связывания двух таблиц:
SELECT titleauthor.au_ord, titleauthor.royaltyper, authors.au_lname, authors.au_fname
FROM titleauthor RIGHT OUTER JOIN authors
ON titleauthor.au_id = authors.au_id
WHERE (authors.state = 'CA') --19 строк
S)Использование ключевых слов FULL OUTER JOIN для связывания двух таблиц:
SELECT discounts.stor_id, discounts.discounttype, stores.stor_name
FROM discounts FULL OUTER JOIN stores
ON discounts.stor_id = stores.stor_id --8 строк
-- убедиться, что в примерах Q,R и S слово OUTER можно опустить
T)Использование раздела WHERE оператора SELECT:
Select * From authors Where 3=6 --0 строк
Select * From authors Where state <> 'CA' --Калифорния
Declare @@Var1 int
Set @@Var1 = 4095
Slect title_id, type, pub_id, price From titles
Where ((ytd_sales = @@Var1) OR
(price BETWEEN 5 AND 15)) --9 строк
-- заменить OR на AND и убедиться, что получится одна строка
Select discounts.stor_id, discounts.discounttype, stores.stor_name
From discounts, stores --здесь”,”-это CROSS JOIN
Where disscounts.stor_id = stores.stor_id --1 строка
--это уже INNER OUTER JOIN
-- Аналог этой команды следующий:
Select discounts/stor_id, discounts.discounttype, stores.stor_name
From discounts INEER JOIN stores
ON discounts.stor_id = stores.stor_id
-- этот запрос эффективнее предшествующего.
Select discounts.stor_id, discounts.discounttype, stores.stor_name
From discounts, stores
Where discounts.stor_id, *= stores.stor_id --3 строки
-- это - аналог LEFT OUTER JOIN:
Select discounts.stor_id, discounts.disconttype, stores.stor_name
From discounts LEFT OUTER JOIN stores
ON discounts.stor_id = stores.stor_id --3 строки
Select discounts.stor_id, discounts.discounttype, stores.stor_name
Where discounts.stor_id =* stores.stor_id
-- это - аналог RIGHT OUTER JOIN
Select discounts.stor_id, discounts.discounttype, stores.stor_name
From discounts RIGHT OUTER JOIN stores
ON discounts.stor_id = stores.stor_id --6 строк
U)Использование разделов GROUP BY и HAVING:
Select type, SUM(price), COUNT(*)
From titles -- type-тип изданий
Group By type --6 строк
-- выдается колонка type, колонка SUM и счетчик COUNT
Select type, SUM(price), count = COUNT(*) -- имя столбца
Form titles
Where type < 'ps'
Group BY type --3 строки
R)Использование ключевых слов RIGHT OUTER JOIN для связывания двух таблиц:
SELECT titleauthor.au_ord, titleauthor.royaltyper, authors.au_lname, authors.au_fname
FROM titleauthor RIGHT OUTER JOIN authors
ON titleauthor.au_id = authors.au_id
WHERE (authors.state = 'CA')                    --19 строк

S)Использование ключевых слов FULL OUTER JOIN для связывания двух таблиц:
SELECT discounts.stor_id, discounts.discounttype, stores.stor_name
FROM discounts FULL OUTER JOIN stores
ON discounts.stor_id = stores.stor_id          --8 строк
-- убедиться, что в примерах Q,R и S слово OUTER можно опустить

T)Использование раздела WHERE оператора SELECT:
Select * From authors Where 3=6                      --0 строк
Select * From authors Where state <> 'CA'            --Калифорния
Declare @@Var1 int
Set @@Var1 = 4095
Slect title_id, type, pub_id, price From titles
Where ((ytd_sales = @@Var1) OR
    (price BETWEEN 5 AND 15))                        --9 строк
-- заменить OR на AND и убедиться, что получится одна строка
Select discounts.stor_id, discounts.discounttype, stores.stor_name
From discounts, stores                       --здесь”,”-это CROSS JOIN
Where disscounts.stor_id = stores.stor_id --1 строка
                                                --это уже INNER OUTER JOIN
-- Аналог этой команды следующий:
Select discounts/stor_id, discounts.discounttype, stores.stor_name
From discounts INEER JOIN stores
ON discounts.stor_id = stores.stor_id
-- этот запрос эффективнее предшествующего.
Select discounts.stor_id, discounts.discounttype, stores.stor_name
From discounts, stores
Where discounts.stor_id, *= stores.stor_id--3 строки
                              -- это - аналог LEFT OUTER JOIN:
Select discounts.stor_id, discounts.disconttype, stores.stor_name
From discounts LEFT OUTER JOIN stores
ON discounts.stor_id = stores.stor_id                --3 строки

Select discounts.stor_id, discounts.discounttype, stores.stor_name
Where discounts.stor_id =* stores.stor_id
                             -- это - аналог RIGHT OUTER JOIN
Select discounts.stor_id, discounts.discounttype, stores.stor_name
From discounts RIGHT OUTER JOIN stores
ON discounts.stor_id = stores.stor_id              --6 строк

U)Использование разделов GROUP BY и HAVING:
Select type, SUM(price), COUNT(*)
From titles                                   -- type-тип изданий
Group By type                                         --6 строк
-- выдается колонка type, колонка SUM и счетчик COUNT
Select type, SUM(price), count = COUNT(*) -- имя столбца
  Form titles
  Where type < 'ps'
  Group BY type                               --3 строки