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

Задача

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

Решение

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

select *
from emp

Обсуждение

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

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


EMPNO ENAME      JOB        SAL MGR HIREDATE  COMM DEPTNO
----- ---------- ---------- --- --- --------- ---- ------
 7369 SMITH      CLERK      800 7902 17-DEC-80          20
 7499 ALLEN      SALESMAN   1600 7698 20-FEB-81  300     30
 7521 WARD       SALESMAN   1250 7698 22-FEB-81  500     30
 7566 JONES      MANAGER    2975 7839 02-APR-81          20
 7654 MARTIN     SALESMAN   1250 7698 28-SEP-81 1400     30
 7698 BLAKE      MANAGER    2850 7839 01-MAY-81          30
 7782 CLARK      MANAGER    2450 7839 09-JUN-81          10
 7788 SCOTT      ANALYST    3000 7566 09-DEC-82          20
 7839 KING       PRESIDENT  5000     17-NOV-81          10
 7844 TURNER     SALESMAN   1500 7698 08-SEP-81    0     30
 7876 ADAMS      CLERK      1100 7788 12-JAN-83          20
 7900 JAMES      CLERK      950 7698 03-DEC-81          30
 7902 FORD       ANALYST    3000 7566 03-DEC-81          20
 7934 MILLER     CLERK      1300 7782 23-JAN-82          10

 14 rows selected

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

На самом деле SELECT пишут с использованием псевдонимов. Где-то я уже давал описание как что и почему. В дальнейшем в коде будут использоваться только такой вариантов написания запросов, не смотря на то, что кода вроде как становится больше.

select e.*
from emp e


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