Извлечение всех строк и столбцов из таблицы
Задача
Имеется таблица и требуется просмотреть все хранящиеся в ней данные.
Решение
Используйте выражение 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