Программирование. Лекция №2. Операции выборки данных. Предыдущая лекция | Содержание | Следующая лекция Программирование. Лекция №2. Операции выборки данных. Операции выборки данных. Примеры запросов. Простая выборка "SELECT *"
Выдать полные характеристики для всех поставщиков:
SELECT * FROM Поставщики;
Результатом служит копия полной таблицы Поставщики:
Номер_Поставщика Фамилия Город 1 Смит Лондон 2 Джонс Париж 3 Блейк Париж 4 Кларк Лондон 5 Адамс Атенс
Здесь звезда или звездочка служит кратким обозначением списка всех имен полей в таблице (таблицах), указанной(ых) во фразе FROM (из) в том порядке, в котором эти поля определяются в соответствующем (их) предложении (ях) CREATE TABLE. Таким образом, записанное выше предложение SELECT эквивалентно следующему:
SELECT НОМЕР_ПОСТАВЩИКА, ФАМИЛИЯ, ГОРОД FROM Поставщики;
Отметим, наконец, что "*" может уточняться именем соответствующей таблицы. Допустима, например, следующая форма записи:
SELECT S.* FROM S; Выборка с исключением дубликатов
Выдать различные цвета для всех поставляемых деталей:
SELECT DISTINCT ЦВЕТ FROM Детали;
В этом случае результат таков:
Цвет зеленый красный голубой
Выборка вычисляемых значений
Выбрать названия деталей и вес в килограммах:
SELECT Название, Вес / 1000 FROM Детали;
Получаем результат:
Название Вес винт 0,017 болт 0,015 гайка 0,012 винт 0,015 шуруп 0,02
Фраза SELECT (и фраза WHERE) может включать арифметические выражения, а также простые имена полей. Можно, кроме того, осуществлять выборку просто констант. Например:
SELECT Название, 'Вес в граммах = ', Вес / 1000 FROM P;
Получаем результат:
Название Вес винт Вес в граммах = 0,017 болт Вес в граммах = 0,015 гайка Вес в граммах = 0,012 винт Вес в граммах = 0,015 шуруп Вес в граммах = 0,02
Заметим, что в этом результате три столбца.
В связи с этим примером возникает следующий вопрос: что произойдет, если вес какой-либо детали имеет неопределенное значение (NULL)? Напомним, что NULL представляет неизвестное значение. Предположим, например, что вес детали Гайка задан в базе данных как неопределенное значение вместо значения 12. Каково тогда значение выражения Вес/1000 для этой детали? Ответ состоит в том, что оно также является неопределенным значением. В общем случае фактически любое арифметическое выражение считается имеющим неопределенное значение, если какой-либо из его операндов сам имеет неопределенное значение. Неопределенные значения показываются на терминале как тире или дефис.
Ограниченная выборка
Выдать поставщиков, которые находятся в Лондоне и имеют номер больше, чем 3:
SELECT НОМЕР_ПОСТАВЩИКА FROM Поставщики WHERE ГОРОД = 'Лондон' AND Номер_Поставщика > 3;
Результат:
Номер_Поставщика Фамилия Город 4 Кларк Лондон
Условие, или предикат, следующий за ключевым словом WHERE, может включать операторы сравнения =, (неравно), >, > =,