sometimes with aliases on colums.
If this is not a frequent requirement, and that only sometimes your application requires to have column aliases, then create a VIEW. Use the view instead of the table whenever you need different column names, i.e. whenever you need the aliases.
For example,
SQL> SELECT empno, deptno, sal FROM emp WHERE ROWNUM <= 5;
     EMPNO     DEPTNO        SAL
---------- ---------- ----------
      7369         20        800
      7499         30       1600
      7521         30       1250
      7566         20       2975
      7654         30       1250
SQL>
SQL> CREATE OR REPLACE VIEW emp_view AS
  2  SELECT empno AS employee_id,
  3  deptno AS department_no,
  4  sal AS salary
  5  FROM emp;
View created.
SQL>
SQL> SELECT * FROM emp_view WHERE ROWNUM <=5;
EMPLOYEE_ID DEPARTMENT_NO     SALARY
----------- ------------- ----------
       7369            20        800
       7499            30       1600
       7521            30       1250
       7566            20       2975
       7654            30       1250
SQL>