11546

Общая структура запроса SELECT

Лабораторная работа

Информатика, кибернетика и программирование

Разделы SELECT и FROM обязательно должны присутствовать в каждом запросе; остальные разделы могут присутствовать частично или отсутствовать вовсе...

Русский

2013-04-08

70 KB

6 чел.

1. Общая структура запроса SELECT

SELECT [DISTINCT] <список столбцов>

FROM <таблица(-ы) источников>

[WHERE <ограничения>]

[GROUP BY <столбцы из раздела SELECT или операция над этими столбцами>]

[HAVING <ограничения на результаты GROUP BY>]

[ORDER BY <список столбцов>]

[FOR XML …]

Разделы SELECT и FROM обязательно должны присутствовать в каждом запросе; остальные разделы могут присутствовать частично или отсутствовать вовсе.

2. Примеры запросов

--2.1. Выбрать название и вес деталей

SELECT detail_name, weight

FROM detail

--2.2. Выбрать всю информацию из таблицы материалов

SELECT *

FROM material

----------------------------------------------------DISTINCT----------------------------------------------------------

--2.3. Выбрать уникальные коды поставщиков из таблицы поставок

SELECT DISTINCT supplier_id

FROM supply

----------------------------------------------------WHERE-------------------------------------------------------------

--2.4. Выбрать количество и даты поставки детали с кодом 2

SELECT supply_quantity, supply_date

FROM supply

WHERE detail_id = 2

--2.5. Выбрать названия поставщиков с кодами 1, 2 и 6

SELECT supplier_name

FROM supplier

WHERE supplier_id = 1 OR supplier_id = 2 OR supplier_id = 6

--или

SELECT supplier_name

FROM supplier

WHERE supplier_id in (1, 2, 6)

--2.6. Выбрать всю информацию о поставках, сделанных до 1.10.2008

SELECT *

FROM supply

WHERE supply_date <= '1.10.2008'

--2.7. Выбрать всю информацию о деталях, не начинающихся на букву «В» (в любом регистре) и чей вес меньше 50

SELECT *

FROM detail

WHERE UPPER (detail_name) NOT LIKE 'В%' AND weight < 50

--2.8. Выбрать название и код материала для деталей с весом между 5 и 10 или имеющих в названии букву «н» в третьей позиции

SELECT detail_name, material_id

FROM detail

WHERE (weight BETWEEN 5 AND 10) OR (detail_name LIKE '__н%')

--2.9. Выбрать названия поставщиков длиной не больше 15-и символов

SELECT supplier_name

FROM supplier

WHERE LEN (supplier_name) <= 15

--2.10. Выбрать месяца и годы поставок деталей

SELECT MONTH (supply_date) AS 'Месяц', YEAR (supply_date) AS 'Год'

FROM supply

------------------------------------------ORDER BY-------------------------------------------------------------------

--2.11. Упорядочить поставки сначала по коду поставщика, а затем по дате поставки

SELECT *

FROM supply

ORDER BY supplier_id, supply_date

--2.12. Выбрать названия поставщиков с кодами 2, 3 и 6, упорядоченных по алфавиту в обратном порядке

SELECT supplier_name

FROM supplier

WHERE supplier_id in (2, 3, 6)

ORDER BY supplier_name DESC

---------------------------------------Агрегация, GROUP BY-------------------------------------------------------

--2.13. Посчитать количество деталей, для которых задан вес

SELECT COUNT (*) AS 'Количество'

FROM detail

WHERE weight IS NOT NULL

--или

SELECT COUNT (weight) AS 'Количество'

FROM detail

--2.14. Определить средний вес деталей из материала с кодом 2

SELECT AVG (weight) AS 'Средний вес'

FROM detail

WHERE material_id = 2

--2.15. Из поставок, совершенных до 1.10.2008, выбрать самую крупную поставку и самую мелкую

SELECT MAX (supply_quantity) AS 'Крупная поставка', MIN (supply_quantity) AS 'Мелкая поставка'

FROM supply

WHERE supply_date < '1/10/2008'

--2.16. Для поставщиков с кодами 1 и 2 посчитать суммарное количество поставленных ими деталей

SELECT supplier_id, SUM (supply_quantity) AS 'Всего поставлено деталей'

FROM supply

WHERE supplier_id BETWEEN 1 AND 2

GROUP BY supplier_id

--2.17. Посчитать количество поставленных деталей в каждом месяце каждого года; результаты упорядочить в порядке убывания года и месяца

SELECT MONTH (supply_date) AS 'Месяц', YEAR (supply_date) AS 'Год',

COUNT (detail_id) AS 'Количество'

FROM supply

GROUP BY YEAR (supply_date),  MONTH (supply_date)

ORDER BY 2, 1

---------------------------------------------------HAVING-------------------------------------------------------------

--2.18. Выбрать материалы, для которых суммарный вес выполненных из них деталей не больше 20

SELECT material_id, SUM (weight) AS 'Вес'

FROM detail

GROUP BY material_id

HAVING SUM (weight) !> 20

--2.19. Из поставок 2008-го года выбрать детали, поставлявшиеся более одного раза

SELECT detail_id, COUNT (*)

FROM supply

WHERE supply_date >= '1.01.2008'

GROUP BY detail_id

HAVING COUNT (*) >1

------------------------------------------Преобразование типов (CAST)----------------------------------------------

--2.20. Получить сведения о датах поставок в текстовом виде

SELECT CAST (supply_date AS varchar) AS 'Дата поставки'

FROM supply

--2.21. Получить сведения из таблицы деталей в виде строк «Деталь X имеет вес Y»

SELECT 'Деталь ' + detail_name + ' имеет вес ' + CAST (weight AS varchar)

FROM detail

----------------------------------------------Функция CASE-------------------------------------------------------------

--2.22. Разделить детали на легкие (весом до 20), средние (между 20 и 50) и тяжелые

SELECT detail_name, CASE WHEN weight < 20 THEN 'Легкая деталь'

                                               WHEN weight >= 20 AND weight <50 THEN 'Средняя деталь'

                                               ELSE 'Тяжелая деталь'

                                     END AS weight

FROM detail

---------------------------------------Обработка NULL-значений-----------------------------------------------------

-- 2.23. Получить сведения о деталях и их весах, причем если у некоторой детали вес не задан, то вместо NULL-значения написать -100

SELECT detail_name, CASE WHEN weight IS NULL THEN -100

                                                ELSE weight

                                    END AS weight

FROM detail

--или

SELECT detail_name, ISNULL (weight, -100)

FROM detail

--------------------------------------------------------EXISTS-------------------------------------------------------------

--2.24. Выбрать название и код материала только тех деталей, которые когда-либо поставлялись

SELECT detail_name, material_id

FROM detail d

WHERE EXISTS (SELECT *

                              FROM supply s

                              WHERE s.detail_id = d.detail_id)

--2.25. Выбрать названия тех материалов, из которых не изготовлена ни одна деталь

SELECT material_name

FROM material m

WHERE NOT EXISTS (SELECT material_id

                                       FROM detail d

                                       WHERE d.material_id = m.material_id)

--------------------------------------------------------Подзапросы-------------------------------------------------------

--2.26. Получить сведения о самой последней (по дате) поставке

SELECT *

FROM supply

WHERE supply_date = (SELECT MAX (supply_date) FROM supply)

--2.27. Получить все поставки деталей из материала с кодом 2

SELECT *

FROM supply

WHERE detail_id IN (SELECT detail_id from detail WHERE material_id = 2)

--2.28. Для каждого поставщика получить сведения о самой первой (по дате) его поставке

SELECT *

FROM supply s1

WHERE s1.supply_date = (SELECT MIN (s2.supply_date)

                                           FROM supply s2

                                           WHERE s1.supplier_id = s2.supplier_id)

--2.29. Для каждого поставщика получить его имя и дату последнего заказа

SELECT supplier_name, (SELECT MAX (supply_date)

                                         FROM supply

                                         WHERE supply.supplier_id = supplier.supplier_id)

FROM supplier

---------------------------------------------Объединения таблиц-------------------------------------------------------

--2.30. Получить таблицу вида: название детали, название материала, из которого выполнена эта деталь

SELECT detail_name, material_name

FROM detail INNER JOIN material

ON detail.material_id = material.material_id

--или

SELECT detail_name, material_name

FROM detail CROSS JOIN material

WHERE detail.material_id = material.material_id

--или

SELECT detail_name, material_name

FROM detail, material

WHERE detail.material_id = material.material_id

--2.31. Получить таблицу вида: название поставщика, название детали, количество и дата поставки для деталей, у которых задан вес

SELECT supplier_name, detail_name, supply_quantity, supply_date

FROM supplier sr JOIN supply s

ON sr.supplier_id = s.supplier_id

JOIN detail d

ON d.detail_id = s.detail_id

WHERE weight IS NOT NULL

--2.32. Выбрать всю информацию о тех деталях, которые когда-либо поставлялись

SELECT DISTINCT d.detail_id, detail_name, weight, material_id

FROM detail d JOIN supply s ON d.detail_id = s.detail_id

--2.33. Для каждого поставщика посчитать суммарную величину его поставок

SELECT supplier_name, SUM (supply_quantity)

FROM supplier LEFT JOIN supply

ON supplier.supplier_id = supply.supplier_id

GROUP BY supplier_name

--2.34. Получить названия всех материалов и выполненных из них деталей

SELECT material_name, detail_name

FROM detail d RIGHT JOIN material m

ON d.material_id = m.material_id

--2.35. Получить все данные о поставщиках, поставках и деталях

SELECT *

FROM supplier s1 FULL JOIN supply s2

ON s1.supplier_id = s2.supplier_id

 FULL JOIN detail d

 ON s2.detail_id = d.detail_id

--2.36. Получить таблицу названий и весов деталей, причем последняя строка таблицы должна содержать итоги в виде суммарного веса всех деталей

SELECT detail_name, weight

FROM detail

UNION

SELECT 'Итого', SUM (weight)

FROM detail

ORDER BY weight

--2.37. Получить таблицу из двух полей, где первое поле – название детали, материала, поставщика или дата поставки, а второе поле – длина строки из первого поля

SELECT material_name, LEN (material_name)

FROM material

UNION

SELECT detail_name, LEN (detail_name)

FROM detail

UNION

SELECT supplier_name, LEN (supplier_name)

FROM supplier

UNION

SELECT CAST (supply_date AS varchar), LEN (supply_date)

FROM supply


 

А также другие работы, которые могут Вас заинтересовать

80249. Особенности предпринимательства в агропромышленном комплексе 65.5 KB
  Аграрные отношения это составная часть экономических отношений которые складываются в сельском хозяйстве в связи с владением и использованием земли как главного средства производства в сельскохозяйственной отросли. Это обусловлено использованием в производстве земли как специфического искусственно невоспроизводимого средства производства различающегося по плодородию места расположению. Эти свойства наоборот даже могут улучшаться что приведет к росту ценности земли. Тесная зависимость земли от природноклиматических условий сезонный...
80250. ДЕНЕЖНОЕ ОБРАЩЕНИЕ. ФИНАНСОВАЯ СИСТЕМА И ФИСКАЛЬНАЯ ПОЛИТИКА 78 KB
  Особенности рынка денег. Особенности рынка денег. Сущность денег состоит в том что они: обладают всеобщей обмениваемостью; представляют собой кристаллизацию меновой стоимости; являются воплощением всеобщего рабочего времени. С развитием общества изменялись функции и виды денег.
80251. МИРОВОЕ ХОЗЯЙСТВО И ЕГО ЭВОЛЮЦИЯ 73.5 KB
  Постсоциалистические страны переходят от плановораспределительной к рыночной экономике. В соответствии с этими критериями в мировой системе хозяйства выделяется промышленноразвитые и новые индустриальные страны; высокодоходные государства экспортирующие сырье и энергоносители; наименее развитые и бедные страны мира. Кроме того различают страны с развитой развивающейся рыночной экономикой и страны с нерыночной экономикой. Используя абсолютные преимущества в специализации производства страны обмениваются избыточной продукцией и...
80252. МИРОВАЯ ВАЛЮТНАЯ СИСТЕМА 71.5 KB
  Международные валютные отношения это совокупность экономических отношений между странами юридическими и частными лицами международными экономическими и финансовокредитными организациями по поводу образования и движения валюты. в этот период имели место стабильные золотые валюты и другие международные ликвидные ресурсы в большинстве развитых стран был четкий механизм определения взаимных валютных паритетов курсов международный валютный рынок согласованный порядок взаимных международных платежей на основе вексельного обращения оно...
80253. ЭКОНОМИЧЕСКИЕ АСПЕКТЫ ГЛОБАЛЬНЫХ ПРОБЛЕМ 73.5 KB
  Причины возникновения и сущность глобальных проблем Основные пути демилитаризации экономики Пути решения глобальных проблем Причины возникновения и сущность глобальных проблем Понятие глобальные проблемы происходит от франц. К таким проблемам относятся предотвращение мировой ядерной войны и обеспечение стабильного мира необходимость эффективной и комплексной охраны окружающей среды ликвидация отсталости развивающихся стран преодоление болезней рациональное использование глубин Мирового...
80254. ОБЩЕСТВЕННОЕ ВОСПРОИЗВОДСТВО. ОСНОВНЫЕ МАКРОЭКОНОМИЧЕСКИЕ ПОКАЗАТЕЛИ 85 KB
  Источником расширенного воспроизводства является часть созданного чистого продукта. Закон накопления указывает на причинно следственные связи между процессами накопления и потребления а именно: часть чистого продукта в составе годового продукта используется для расширения производства т. Последний разработал теорию накопления экономического роста экономических кризисов совокупного общественного продукта и его реализации экономической пропорциональности. Марксом проблемы совокупного общественного продукта его структуры и измерения.
80255. ПОТРЕБЛЕНИЕ, ИНВЕСТИЦИИ (НАКОПЛЕНИЕ) И СБЕРЕЖЕНИЯ В МАКРОЭКОНОМИКЕ 64.5 KB
  Инвестиции норма накопления и ее факторы. Рост потребления осуществляется на основе накопления инвестиций. Соотношение потребления и накопления выражает проблему структуры и динамики чистого продукта или его денежного выражения национального дохода. Национальный доход используемый определяется как сумма фондов потребления и накопления.
80256. ЭКОНОМИЧЕСКИЙ РОСТ И МАКРОЭКОНОМИЧЕСКАЯ НЕСТАБИЛЬНОСТЬ 152 KB
  Проблема экономического роста занимает центральное место в экономических дискуссиях где речь идет об основах социальноэкономической жизни народов. Обеспечение стабильного роста без кризисов при условии полной занятости актуальная задача экономической науки экономической политики и хозяйственной практики. Количество экономического роста выражается в его темпах. Темпы экономического роста прирост за определенный промежуток времени произведенной в народном хозяйстве продукции по отношению к ее базисному уровню.
80257. Экономическая теория: предмет, метод, функции. Экономическая политика 68.5 KB
  Обмениваясь результатами своего труда субъекты хозяйственной деятельности индивиды и коллективы вступают в определённые экономические отношения которые являются объектом изучения экономических наук и в частности экономической теории. Методологической основой всех экономических наук является экономическая теория как система научных взглядов на хозяйственную деятельность людей. Она изучает причинно-следственные связи с закономерностями развития экономических процессов экономические отношения возникающие между субъектами в процессе их...