Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
work_2.doc
Скачиваний:
6
Добавлен:
09.11.2019
Размер:
291.84 Кб
Скачать
    1. Выборка без использования предложения where. Простая выборка данных

По запросу

SELECT “Название”, “Адрес”

FROM “Поставщики”

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

При необходимости получения полной информации о поставщиках запрос будет таким

SELECT “Код_поставщика”, “Название”, “Город”, “Адрес”, “Телефон”

FROM “Поставщики”

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

Для исключения дубликатов и одновременного упорядочения перечня необходимо дополнить запрос ключевым словом DISTINCT (различный, различные). Если после DISTINCT указывается несколько столбцов, то SELECT выдаст строки, уникальные для указанного набора столбцов: Например, по запросу

SELECT DISTINCT “Автор”, “Название”

FROM “ Книги”

будут выданы все уникальные значения пары автор-название из таблицы Книги.

Выборка с использованием выражений

Из синтаксиса фразы SELECT видно, что в ней может содержаться не только перечень столбцов таблицы или символ «*», но и выражения. Следует иметь в виду, что вычисляемые столбцы не сохраняются в базе данных, а формируются во временной таблице, создаваемой при выполнении инструкции SELECT. Например, чтобы выдать список всех книг, их цен, размер 10% надбавки к ценам и новые цены, надо ввести запрос

SELECT “Код_книги”, “Цена” , Цена*0.1, Цена*1.1

FROM “Книги”

Как видно из приведенных примеров, при выводе результата запроса каждый столбец выводится с заголовком, совпадающим с его именем в таблице, а вычисляемые столбцы — с заголовком (No column name). Эти заголовки можно изменять с помощью псевдонимов. Например, в результате выполнения запроса

SELECT “Код_книги”, “Цена” AS “Старая цена”, “Цена”*0.1 AS “Надбавка”,

“Цена”*1.1 AS "Новая цена", “Остаток” AS "Имеется в наличии"

FROM “Книги”

будут выведены значения столбца Цена под псевдонимом Старая_цена, столбца Остаток под псевдонимом Имеется в наличии и значения двух вычисляемых столбцов под псевдонимами Надбавка и Новая цена.

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

SELECT DISTINCT 'Книга', "Код_книги", 'Цена', "Цена", 'uah'

FROM "Книги" ”

Выборка null-значений

Если в какой-либо из вводимых строк таблицы отсутствует значение для какого-либо столбца и для этого столбца допустимы NULL-значения, то СУБД введет в такое поле NULL-значение. NULL-значение используется для того, чтобы представить единым образом "неизвестные значения" для любых типов данных. При выводе NULL-значения на экран или печатающее устройство его код воспроизводится каким-либо специально заданным символом или набором символов, например, < NULL > или сочетанием -0-.

Как правило, в современных СУБД с помощью специальной команды можно установить один из режимов представления NULL-значений при выполнении числовых расчетов: запрет или разрешение замены NULL-значения нулем. В первом случае любое арифметическое выражение, содержащее неопределенный операнд, будет также иметь неопределенное значение (обычно устанавливается по умолчанию). Во втором случае результат вычислений будет иметь численное значение (если это значение попадает в диапазон представления соответствующего типа данных). Для проверки текущих установок СУБД введите в таблицу Книги строку с нулевым значением столбца Цена и затем  запрос:

SELECT “Остаток” + 100

FROM “Книги”

Поскольку в SQL все NULL-значения рассматриваются обычно как равные (предикат NULL= NULL имеет значение «истина»), два неопределенных значения рассматриваются как дубликаты друг друга при исключении дубликатов и поэтому предложение SELECT DISTINCT даст в результате не более одного NULL-значения. Введите в таблицу Книги еще одну строку с нулевым значением столбца Цена и обратите внимание, сколько различных значений будут выведены при выполнении запроса:

SELECT DISTINCT “Цена”

FROM “Книги

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]