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>