본문 바로가기
DATABASE/SQL

[ Oracle SQL ] SELECT문/실습문제

by haeun 하은 2022. 1. 28.
728x90

SELECT * FROM emp;
--전체 컬럼 나와라

SELECT ename,sal FROM emp;
--emp테이블에서 이름,급여 내용 가져와


empno     사번
ename      이름
job          직업
mgr         관리자 번호
hiredate    입사일
sal           급여
comm      커미션
deptno     부서번호



DUAL 은 함수 및 계산의 결과를 볼 때 사용할 수 있는 공용(public) 테이블
SELECT SYSDATE FROM dual;
  오늘 (년도/월/일) 출력

->읽어올때 2자리만 읽어오고 년도 4자리이다.
   시분초는 함수를 이용해야함.

연산(아스키 함수)
SELECT 7+10 FROM dual;


SELECT ASCII (0) FROM dual;



연산 
SELECT ename,sal,sal+300 FROM emp;

emp에서 저장되어 있는 이름,급여,(가상컬럼) 데이터를 가져와라!
-> 연산으로 테이블에 없는 (가상컬럼)데이터를 가져옴
가공된 컬럼은 테이블에 없고 메모리에만 존재 

SELECT ename,sal,(sal+300)*12 FROM emp;


<null>
- 사용할 수 없거나,할당되지 않았거나,알 수 없거나, 적용할 수 없는 값
-*주의* oracle null은 입력값/저장된 값이 없다.
->null을 포함한 연산(산술)은 결과가 null/ 공백과 0과는 의미가 아니다! 
-java에서는 객체를 생성하지 않아서 주소가 없다는 의미

SELECT ename,sal,comm,comm+100 FROM emp;

1) 열 이름(sal*12) 바로 뒤에 공백+알리아스를 표시
SELECT sal*12 ASal FROM emp;
컬럼명,알리아스는 대소문자를 구분하지 않는다.

2)열 이름과 알리아스 사이에 as 키워드 명시
SELECT sal*12 AS ASal FROM emp;


SELECT ename AS name,comm AS commission FROM emp;

3)알리아스를 ""로 감싸기
대소문자 구별을 원할 때
공백을 포함하고 싶을 때
_,# 등 특수문자 사용시
숫자로 시작할 경우
SELECT sal*12 "Annual Salary" FROM emp;
>오라클 단독으로 사용할때만 사용, 자바와 연동 하면 안쓴다.


연결연산자 
열이나 문자열을 다른 열에 연결 
두 개의 세로선 (||) 으로 나타냄
결과 열로 문자식을 생성 
SELECT ename || ' has $'sal FROM emp;

문자열은 작은 따음표로 표시
SELECT ename || job AS "Employees" FROM emp;

연결 연산자와 NULL값 : 문자열에 NUll값을 결합할 경우 결과는 문자열
SELECT ename || comm FROM emp;

DISTINCT :중복행 삭제 
SELECT deptno FROM emp;

SELECT DISTINCT(deptno) FROM emp;


[실습문제]
1)emp 테이블에서 사원번호,사원이름,월급을 출력하시오.
SELECT empno,ename,sal FROM emp;
2)emp 테이블에서 사원이름과 월급을 출력하는데 컬럼명은 "이 름","월 급" 으로 바꿔서 출력하시오.
SELECT ename AS "이 름", sal AS "월 급" FROM emp;
3)emp 테이블에서 사원번호,사원이름,월급,연봉을 구하고 각각 컬럼명은 "사원번호","사원이름","월급","연봉" 으로 표시하시오.
SELECT empno 사원번호,ename 사원이름,sal 월금,sal*12 연봉 FROM emp;
4)emp 테이블의 업무(job)를 중복되지 않게 표시하시오.
SELECT DISTINCT job FROM emp;
5)emp 테이블의 사원명과 업무를 쉼표(,)로 연결해서 표시하고 컬럼명은 Employee and job 으로 표시하시오.
SELECT ename ||','|| job AS "Emplyee and job" FROM emp;

 

728x90
반응형

'DATABASE > SQL' 카테고리의 다른 글

sql 회원관리  (0) 2022.08.29
[ mysql ] inner join 예제  (0) 2022.07.14
[ mySql ] 테이블 만들기 / select문 / 함수  (0) 2022.07.11
[ Oracle SQL ] 인덱스(INDEX)  (0) 2022.05.11
[ Oracle SQL ] 실습문제  (0) 2022.04.19

댓글