SELECT Фамилия, Имя, Отчество, Дата

FROM Покупка;

В результате выполнения этого запроса будет выведена вся информация по всем покупкам с указанием фамилии, имени, отчества покупателя и даты покупки.

Замечание. Имена полей, которые содержат пробелы или знаки препинания, необходимо заключать в квадратные скобки, например:

SELECT Фамилия, Имя, Отчество, [Дата покупки]

FROM Покупка;

Если необходимо вывести значения всех столбцов таблицы, то можно вместо перечисления их имён использовать символ «*».

Пример 2

SELECT *

FROM Покупка;

В этом случае результатом выполнения запроса будет вся таблица Покупка.

В примере 1 некоторые покупатели в списке, полученном в результате выполнения запроса, встречались несколько раз. Чтобы получить список всех покупателей без повторений нужно использовать ключевое слово DISTINCТ (отличный, уникальный).

Пример 3

SELECT DISTINCТ Фамилия, Имя, Отчество

FROM Покупка;

Предложение WHERE определяет, какие строки указанных таблиц должны быть выбраны. В таблицу, являющуюся результатом запроса, включаются только те строки, для которых условие, указанное в предложении WHERE, принимает значение истина.

Для записи условия отбора используются операции отношения: =, <, <=, >, >=, <> (не равно).

Пример 4

SELECT *

FROM Покупка

WHERE Дата = cdate(“15.04.2014”);

В результате выполнения этого запроса будет выведена таблица, содержащая информацию о всех покупках, совершённых 15 апреля 2014 года.

Замечание. Функция cdate(“15.04.2014”) приводит выражение, указанное в скобках к типу Дата/время.

При работе с множествами значений используется операция IN (операция проверки принадлежности значений поля некоторому множеству).

Пример 5

SELECT *

FROM Продукция

WHERE Баллы IN (5, 7);

Результатом этого запроса будет информация о продукции из прайс-листа, за которую клиенту начисляют 5 или 7 баллов.

Для объединения нескольких условий в одно используются логические операции AND(логическое умножение) иOR(логическое сложение). Для записи противоположного условия используется логическое отрицание NOT.

Пример 6

SELECT *

FROM Продукция

WHERE Баллы NOT IN (1, 3, 5);

В результате выполнения этого запроса из прайс-листа будет выведена вся информация о продукции, за исключением той, за которую клиенту при покупке начисляется 1, 3 или 5 баллов.

Для записи условий также используются операторы BETWEEN, LIKE.

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

Пример 7

SELECT *

FROM Продукция

WHERE Цена BETWEEN 250 AND 500;

Результатом этого запроса будет выведена из прайс-листа вся информация о продукции, цена которой находится в промежутке от 250 до 500 рублей.

Оператор LIKE используется для сравнения строкового выражения:

SELECT <Список полей>

FROM <Имя таблицы>

WHERE <Выражение> LIKE <”Образец”>;

При написании условия с помощью оператора LIKEмогут быть использованы символы:

*- означает любое количество любых символов.

? – означает, что на этом месте может стоять любой символ.

# - на этом месте может стоять любая цифра.

[a-z] - на этом месте может стоять любая буква из этого диапазона.

[!a-z]- на этом месте может стоять любой символ, кроме букв из этого диапазона.

[!0-9]- на этом месте может стоять любой символ, но не цифра.

Пример 8

SELECT *

FROM Покупка

WHERE Фамилия LIKE “А*”;

В этом запросе выводится таблица, отражающая все покупки покупателей, фамилии которых начинаются с буквы «А».

Итак, мы создали базу данных «Косметическая фирма», состоящую из двух таблиц Продукция и Покупка. При создании запросов в конструкторе, используя данные из нескольких таблиц, мы связывали таблицы между собой по ключевым полям. Давайте посмотрим, как это можно осуществить средствами языка SQL.

На фрагментах таблиц, представленных ниже, мы можем увидеть, как должно происходить соединение таблиц Продукцияи Покупка по полю КодТовара. Из таблицы Продукция выбирается строка с соответствующим названием продукта, например, Утро, и добавляется к каждой строке в таблице Покупка, в которой находятся данные о покупке этого продукта. Линии, используемые на рисунке – это не те линии, которые используются при соединении таблиц по ключевым полям, в данном случае они используются для того, чтобы проиллюстрировать, какие строки одной таблицы присоединяются к строкам другой таблицы:

Покупка

Номер Фамилия Имя Отчество Дата КодТовара Количество
Иванов Пётр Ильич 12.04.2014 SELECT Фамилия, Имя, Отчество, Дата - student2.ru 3
Петров Иван Петрович 14.04.2014
Соловьёв Алексей Петрович 15.04.2014
Семёнов Фёдор Иванович 15.04.2014 SELECT Фамилия, Имя, Отчество, Дата - student2.ru 5
Смирнов Пётр Ильич 19.04.2014
Уткин Семён Сергеевич 21.04.2014 SELECT Фамилия, Имя, Отчество, Дата - student2.ru 2
Орлов Лев Юрьевич 22.04.2014
Петухов Юрий Олегович 23.04.2014 SELECT Фамилия, Имя, Отчество, Дата - student2.ru 5

Продукция

КодТовара ВидТовара Наименование Производитель Баллы Цена
Мыло Утро  
Мыло Бархатное   2,5
Лосьон Огуречный  

Аналогично происходит со строкой, содержащей лосьон Огуречный и другими продуктами.

В SQL для такого соединения таблиц по ключевому полю используется оператор:

SELECT Поле 1, Поле 2, …, Поле n

FROM Таблица1 INNER JOIN Таблица2 ON Таблица1.Ключевое поле=Таблица2.Ключевое поле;

Операция INNER JOINобъединяет записи из двух таблиц, если связующие поля этих таблиц содержат одинаковые значения.

На примере наших таблиц это можно записать следующим образом:

Пример 9

Наши рекомендации