Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Использование условий отбора




DQL. Запросы

DQL – Data Query Language – язык запросов, составная часть SQL. Состоит из единственной команды SELECT. По поводу этой команды можно написать целую книгу, здесь мы кратко на примерах рассмотрим ее основные возможности. За более подробной информацией обращайтесь к Books Online и справочной литературе.

Обязательные ключевые слова команды– SELECT и FROM.

 

Выборка из одной таблицы

Тривиальная выборка всех полей и всех строк одной таблицы.

Получить полную информацию обо всех предприятиях:

SELECT * FROM k_firm

Выбор отдельных полей таблицы.

Получить названия и адреса всех предприятий:

SELECT firm_name, firm_addr FROM k_firm

Результат:

firm_name firm_addr

----------------------

Альфа Москва

Бета Казань

Гамма Париж

Дельта Лондон

Омега Токио

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

SELECT firm_name AS "Название предприятия",

firm_addr AS "Адрес предприятия"

FROM k_firm

Результат:

Название предприятия Адрес предприятия

-----------------------------------------------------------Альфа Москва

Бета Казань

Гамма Париж

Дельта Лондон

Омега Токио

 

В списке полей выборки можно использовать выражения. В этом случае часто приходится преобразовывать данные из одного типа в другой с помощью функции CONVERT. Строковые константы следует помещать в одинарные кавычки. Операция + означает сцепление строк.

Распечатать информацию о счетах:

SELECT 'Счет № '+CONVERT(CHAR(6),bill_num)+

' от '+ CONVERT(CHAR(12),bill_date)+

' на сумму '+CONVERT(CHAR(9),bill_sum)

FROM k_bill

Результат:

------------------------------------------------

Счет № 1 от Jan 2 2006 на сумму 1000

Счет № 2 от Feb 1 2006 на сумму 2000

Счет № 3 от Mar 3 2006 на сумму 2000

Счет № 4 от Feb 1 2006 на сумму 6000

Счет № 5 от Mar 3 2006 на сумму 2000

Счет № 6 от Mar 3 2006 на сумму 2500

Счет № 7 от Feb 1 2006 на сумму 1500

Счет № 8 от Feb 1 2006 на сумму 1200

Счет № 9 от Mar 3 2006 на сумму 10000

 

Для того чтобы исключить дубликаты строк, нужно использовать ключевое слово DISTINCT.

Напечатать список городов, в которых находятся предприятия-клиенты:

SELECT DISTINCT firm_addr FROM k_firm

Результат:

firm_addr

----------

Казань

Лондон

Москва

Париж

Токио

Для выбора отдельных строк по критерию используется ключевое слово WHERE

Получить список предприятий, расположенных в Москве:

SELECT firm_name as "Название предприятия"

FROM k_firm

WHERE firm_addr='Москва'

Результат:

Название предприятия

--------------------

Альфа

Для сравнения поля со значением NULL нельзя использовать операции = и!=, вместо них нужно использовать выражения IS NULL и IS NOT NULL.

Получить список постоянно работающих сотрудников, т.е., таких, у которых staff_termdate равно NULL:

SELECT staff_name FROM k_staff

WHERE staff_termdate IS NULL

Результат:

staff_name

-----------

Иванов

Петров

Сидоров

 

Условия могут быть сложные. В них можно использовать логические связки AND и OR, а также отрицание NOT.

Получить список предприятий, расположенных в Москве или Казани:

SELECT firm_name as "Название предприятия"

FROM k_firm

WHERE firm_addr='Москва' OR firm_addr='Казань'

Результат:

Название предприятия

---------------------

Альфа

Бета

Если условие заключается в сравнении поля со списком значений, удобно использовать ключевое слово IN.

Получить список предприятий, расположенных в Москве или Казани:

SELECT firm_name as "Название предприятия"

FROM k_firm

WHERE firm_addr IN ('Москва','Казань')

Результат:

Название предприятия

---------------------

Альфа

Бета

Если условие заключается в сравнении поля с диапазоном значений, удобно использовать ключевое слово BETWEEN.

Получить список договоров, заключенных в феврале 2006 г.:

SELECT * FROM k_contract

WHERE contract_date BETWEEN '03/01/2006' AND '03/31/2006'

(заметим, что по умолчанию в SQL Server даты записываются в американском формате: месяц/день/год).

Результат:

contract_num contract_date contract_type firm_num staff_num

----------------------------------------------------------

1 2006-03-03 16:42:55.170 A 1 1

2 2006-03-03 16:42:55.190 B 1 2

3 2006-03-03 16:42:55.190 C 1 1

4 2006-03-03 16:42:55.190 A 2 2

5 2006-03-03 16:42:55.190 B 2 2

6 2006-03-03 16:42:55.190 C 3 1

7 2006-03-03 16:42:55.190 A 4 1

 

Для полей строкового типа можно применять сравнение с подстрокой.

Получить список сотрудников, фамилия которых начинается на И:

SELECT staff_name FROM k_staff

WHERE staff_name LIKE 'И%'

(рассмотрите более подробно использование LIKE в Book s Online )

Результат:

staff_name

----------

Иванов




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 380; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.