Программирование >>  Преобразование значений null 

1 ... 5 6 7 [ 8 ] 9 10 11 ... 219


Извлечение записей

Данная глава посвящена основным принципам работы с выражением SELECT. Очень важно иметь четкое понимание основ: многие рассматриваемые в данной главе вопросы не только являются составляющей частью самых трудных рецептов книги, но постоянно возникают при каждодневной работе с SQL.

Извлечение всех строк и столбцов из таблицы Задача

Имеется таблица и требуется просмотреть все хранящиеся в ней данные.

Решение

Используйте выражение SELECT со специальным символом * :

1 select *

2 from emp

Обсуждение

В SQL символ * имеет специальное назначение. Его применение обусловливает извлечение всех столбцов заданной таблицы. Поскольку в данном случае предикат WHERE не задан, будут возвращены все строки таблицы. Альтернативный вариант - явно перечислить в выражении SELECT все столбцы:

select empno,ename,job,sal,mgr,hiredate,comm,deptno from emp

При разработке и/или отладке программ проще использовать SELECT *. Однако при написании запросов в приложениях лучше задавать каждый столбец в отдельности. Явное задание имен столбцов не влияет



на производительность, но при этом всегда точно известно, какие именно столбцы будут возвращены в результате запроса. Кроме того, такое задание делает запросы понятными и другим пользователям (которые могут не знать всех столбцов таблиц, присутствующих в запросе).

Извлечение подмножества строк из таблицы Задача

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

Решение

Условие выбора строк задается с помощью предиката WHERE. Например, для получения списка всех служащих 10-го отдела необходим следующий запрос:

1 select *

2 from emp

3 where deptno = 10

Обсуждение

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

Большинство производителей поддерживают обычные операторы, такие как =, <, >, <=, >=, !, <>. Кроме того, для выбора записей, отвечающих нескольким условиям, используются операторы AND (логическое И), OR (логическое ИЛИ) и круглые скобки, как показано в следующем рецепте.

Выбор строк по нескольким условиям Задача

Требуется выбрать строки, удовлетворяющие нескольким условиям.

Решение

Используйте предикат WHERE в сочетании с операторами OR и AND. Например, по следующему запросу будут выбраны все служащие 10-го отдела, а также служащие, получающие комиссионные, и служащие 20-го отдела, зарабатывающие не более $2000:

1 select *

2 from emp

3 where deptno = 10

4 or comm is not null

5 or sal <= 2000 and deptno=20



Обсуждение

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

Обсуждение

Чтобы выбрать строки, отвечающие нескольким условиям, используются операторы AND, OR в сочетании с круглыми скобками. В приведенном в Решении примере предикат WHERE фильтрует строки, для которых:

DEPTNO равен 10 или

COMM не NULL или

зарплата любого служащего, для которого DEPTNO равен 20, составляет не более $2000.

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

Например, посмотрим, как изменится результирующее множество, если использовать в запросе круглые скобки, как показано ниже:

select * from emp where ( deptno = 10

or comm is not null

or sal <= 2000

and deptno=20

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

7369 SMITH CLERK 7902 17-DEC-1980 800 20

7876 ADAMS CLERK 7788 12-JAN-1983 1100 20

Извлечение подмножества столбцов из таблицы Задача

Требуется выбрать из таблицы значения лишь определенных столбцов.

Решение

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

1 select ename,deptno,sal

2 from emp



1 ... 5 6 7 [ 8 ] 9 10 11 ... 219

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика