MyTetra Share
Делитесь знаниями!
Запросы к MS SQL Server. 10 примеров SELECT
Время создания: 27.12.2018 08:12
Автор: Рахматджон Хакимов
Раздел: Разные закладки - Microsoft SQL Server - Посмотреть
Запись: xintrea/mytetra_db_adgaver_new/master/base/15458875613xkc0sql7q/text.html на raw.githubusercontent.com

Примеры запросов MS SQL могут использованы для изучения и практикума написания запросов SQL в MS SQL Server.

В запросе SQL оператор SELECT используется для осуществления выборки из таблиц базы данных.


Запрос SQL Q001. Пример запроса для получения только нужных полей в нужной последовательности:


SELECT dt, product_id, amount

FROM [TestDB].[dbo].[m_income];


Запрос SQL Q002. В этом примере запроса SQL символ звездочки (*) использован для вывода всех столбцов таблицы m_product, иначе говоря, для получения всех полей отношения m_product:


SELECT *

FROM TestDB.dbo.m_product;


Запрос SQL Q003. Инструкция DISTINCT используется для исключения повторяющихся записей и получения множества уникальных записей:


SELECT DISTINCT product_id

FROM TestDB.dbo.m_income;


Запрос SQL Q004. Инструкция ORDER BY используется для сортировки (упорядочивания) записей по значениям определенного поля. Имя поля указывается за инструкцией ORDER BY:


SELECT *

FROM TestDB.dbo.m_income

ORDER BY price;


Запрос SQL Q005. Инструкция ASC используется как дополнение к инструкции ORDER BY и служит для определения сортировки по возрастанию. Инструкция DESC используется как дополнение к инструкции ORDER BY и служит для определения сортировки по убыванию. В случае, когда ни ASC, ни DESC не указаны, подразумевается наличие ASC (default):


SELECT *

FROM TestDB.dbo.m_income

ORDER BY dt DESC, price;


Запрос SQL Q006. Для отбора необходимых записей из таблицы пользуются различными логическими выражениями, которые выражают условие отбора. Логическое выражение приводится после инструкции WHERE. Пример получения из таблицы m_income всех записей, для которых значение amount больше 200:


SELECT *

FROM TestDB.dbo.m_income

WHERE amount>200;


Запрос SQL Q007. Для выражения сложных условий пользуются логическими операциями AND (конъюнкция), OR (дизъюнкция) и NOT (логическое отрицание). Пример получения из таблицы m_outcome всех записей, для которых значение amount равно 20 и значение price больше или равно 10:


SELECT dt, product_id, amount, price

FROM TestDB.dbo.m_outcome

WHERE amount=20 AND price>=10;


Запрос SQL Q008. Для объединения данных двух или более таблиц пользуются инструкциями INNER JOIN, LEFT JOIN, RIGHT JOIN. В следующем примере извлекаются поля dt, product_id, amount, price из таблицы m_income и поле title из таблицы m_product. Запись таблицы m_income соединяется с записью таблицы m_product при равенстве значения m_income.product_id значению m_product.id:


SELECT dt, product_id, title, amount, price

FROM TestDB.dbo.m_income INNER JOIN TestDB.dbo.m_product

ON m_income.product_id=m_product.id;


Запрос SQL Q009. В этом запросе SQL нужно обратить внимание на две вещи: 1) искомый текст заключен в одинарные кавычки ( ' ); 2) дата приведена в формате #Месяц/День/Год#, что верно для MS Access. В других системах формат написания даты может быть другим. Пример вывода информации о поступлении молока 12-го июня 2011 года. Обратите внимание на формат даты '2011-06-12':


SELECT dt, product_id, title, amount, price

FROM TestDB.dbo.m_income INNER JOIN TestDB.dbo.m_product

ON m_income.product_id=m_product.id

WHERE title='Молоко' And dt='2011-06-12';


Запрос SQL Q010. Инструкция BETWEEN используется для проверки принадлежности некоторому диапазону значений. Пример запроса SQL, выводящий информацию о товарах, поступивших между 1-м и 30-м июнем 2011 года:


SELECT *

FROM TestDB.dbo.m_income INNER JOIN TestDB.dbo.m_product

ON m_income.product_id=m_product.id

WHERE dt BETWEEN '2011-06-01' And '2011-06-30';


 
MyTetra Share v.0.65
Яндекс индекс цитирования