Published 2022. 11. 14. 17:20

SELECT : 데이터 조회 시 사용되는 구문 
RESULT SET : SELECT 문에 의해 조회된 결과물( 즉, 조회된 행들의 집합을 의미)

[표현법] 
SELECT 조회하고자하는 컬럼, 컬럼, ...
FROM 테이블명 ; 

SELECT EMP_NAME,EMAIL,PHONE,HIRE_DATE,SALARY
FROM EMPLOYEE;

 

1. 컬럼값을 통한 산술연산

: SELECT절 컬럼명 작성부분에 산술연산식 기술 가능 ( => 해당컬럼값이 산술연산된 결과로 조회) 

예시)  EMPLOYEE의 사원명, 급여, 보너스, 연봉(급여*12), 보너스포함된 연봉((급여+ (보너스*급여))*12)

SELECT EMP_NAME,SALARY,BONUS,SALARY*12, (SALARY+SALARY*BONUS)*12 
FROM EMPLOYEE;

 

** DATE 형식끼리도 연산가능
예시 ) EMPLOYEE 의 사원명, 입사일, 근무일수(오늘날짜 - 입사일))
SYSDATE : 오늘날짜(현재 시스템 날짜)

SELECT SYSDATE FROM DUAL; -- 오라클에서 제공하는는 가상테이블(더비테이블)
SELECT EMP_NAME,HIRE_DATE,SYSDATE - HIRE_DATE
FROM EMPLOYEE;

 

2. 컬럼명에 별칭 정하기 

: 조회시 컬럼명 또는 산술식 뒤에 별칭을 부여해서 깔끔하게 조회가능

[표현법] 4가지
컬럼명 별칭 / 컬럼명 AS 별칭 / 컬럼명 "별칭" / 컬럼명 AS "별칭"

**유의사항 : AS가 있던 없던간에 별칭에 띄워쓰기, 특수문자가 포함된 경우 반드시 쌍따옴표로 묶어서 표기

SELECT EMP_NAME 사원명, SALARY AS 급여, SALARY * 12 "연봉(원)" , (SALARY+SALARY*BONUS)*12 AS "총 소득"
FROM EMPLOYEE;

 

3. 리터럴 

임의로 지정한 문자열값(' ') 
SELECT 절에 리터럴을 제시하면 마치 테이블상에 존재하는 데이터처럼 조회가능 
조회된 RESULT SET의 모든 행에 반복적으로 같이 출력

 SELECT EMP_ID, EMP_NAME, SALARY,'원' AS 단위
 FROM EMPLOYEE;

 

4. 연결 연산자( || )

여러 컬럼값들을 마치 하나의 컬럼인 것처럼 연결하거나, 컬럼값과 리터럴을 연결할 수 있음

-> 자바에서의 +와 값은 느낌( System.out.println("num : " + num);

예시)XXX의 월급은 XXXXX원 입니다.  의 형식으로 조회

SELECT EMP_NAME ||'의 월급은 '|| SALARY ||'원 입니다.' AS "급여 정보"
FROM EMPLOYEE;

 

5. DISTINCT 

컬럼에 중복된 값들을 한번식만 조회하고자 할 때 사용 

-- 부서코드 조회 
SELECT DEPT_CODE
FROM EMPLOYEE;  --23개 행 조회
-- 중복제거 조회
SELECT DISTINCT DEPT_CODE
FROM EMPLOYEE; --7개 행 조회

**유의사항 : SELECT 절에 DISTINCT 구문은 딱 한번만 기술 가능 

6. WHERE절 
: 조회하고자 하는 테이블로 부터 특정 조건에 만족하는 데이터만을 조회하고자 할 때  WHERE절에 조건식을 제시 

[표현법]

SELECT 조회하고자하는 컬럼명, 컬럼, 산술연산, AS "별칭", ...
FROM 테이블명 
WHERE 조건식;

<비교연산자>

> , < , >= , < =    대소비교
=                         같은지 비교
!=, ^=, <>            같지않은지 비교

예시) 부서코드가 'D9'가 아닌 사원들의 사번, 사원명, 부서코드 조회

SELECT EMP_ID,EMP_NAME,DEPT_CODE
FROM EMPLOYEE
--WHERE DEPT_CODE != 'D9';
--WHERE DEPT_CODE ^= 'D9';
WHERE DEPT_CODE <> 'D9'; -- 18명 조회 --> NULL값은 조회안됨

 

7. 논리연산자 

여러개의 조건을 엮어서 제시하고자 할 때 사용 

AND ( ~이면서, 그리고)

OR (~이거나, 또는)

예시) 급여가 350만원 이상 600만원 이하를 받는 사원들의 사원명, 급여 조회

SELECT EMP_NAME, SALARY
FROM EMPLOYEE
WHERE SALARY >= 3500000 AND SALARY<=6000000;

 

8. BETWEEN  AND

몇 이상, 몇이하인 범위에 대한 조건을 제시할 때 사용되는 연산자 

[표현법]

비교대상컬럼 BETWEEN 하한값 AND 상한값 

예시 1) 급여가 350만원 이상 600만원 이하를 받는 사원들의 사원명, 급여 조회

SELECT EMP_NAME, SALARY
FROM EMPLOYEE
WHERE SALARY BETWEEN 3500000 AND 6000000; --6명 조회

예시2) 급여가 350만원 미만, 600만원 초과를 받는 사원들의 사원명, 급여 조회 (위의 경우와 반대일경우)

SELECT EMP_NAME,SALARY
FROM EMPLOYEE
WHERE NOT SALARY BETWEEN 3500000 AND 6000000;  
--WHERE SALARY NOT BETWEEN 3500000 AND 6000000;

** NOT : 논리부정 연산자 (자바에서  !와 같은존재)
               컬럼명 앞 또는 BETWEEN 앞에 기입

- DATE 타입끼리도 대소비교 가능 
예시)  입사일이 '90/01/01' 이상 '01/01/01'  이하인 사원들 조회 

SELECT *
FROM EMPLOYEE
--WHERE HIRE_DATE >= '90/01/01' AND HIRE_DATE <= '01/01/01'; --DATE타입 끼리도 대소비교 연산 가능
WHERE HIRE_DATE BETWEEN '90/01/01' AND '01/01/01';

 

복사했습니다!