DML SELECT

2021. 10. 28. 14:57Oracle

반응형

<SELECT>

데이터 조회

 

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

[테이블의 모든 컬럼 조회]
SELECT *
  FROM 테이블명;
  

[컬럼값을 통한 산술연산]
SELECT NAME, SALARY*12
  FROM EMPLOYEE;
  
  
[컬럼명 별칭 지정]
컬럼명 별칭 / 컬럼명 AS 별칭 / 컬럼명 "별칭" / 컬럼명 AS "별칭"
-- 별칭에 띄어쓰기나 특수문자가 포함될 경우 반드시 쌍따옴표 안에 기술


[리터럴]
임의로 지정한 문자열
SELECT NAME, SALARY, '원' AS 단위
  FROM EMPLOYEE;
-- 단위라는 컬럼이 없지만 임의로 지정되어 출력


[연결]
-- 컬럼-컬럼 / 컬럼-리터럴을 연결
-- 연결 연산자: ||
SELECT NAME || '님의 월급은 ' || SALARY || '원 입니다'
  FROM EMPLOYEE;
  
  
[중복된 값 제거]
-- DISTINCT
-- 유의) SELECT절에 딱 한번만 기술 가능
SELECT DISTINCT DEPT_CODE
  FROM EMPLOYEE;
-- 부서코드 중복 제거해서 조회


[WHERE]
-- 조건식
-- WHERE절에서는 SELECT절에 작성된 별칭 사용불가
-- 실행순서) FROM-> WHERE절-> SELECT절
SELECT 조회하려는 컬럼, 컬럼, ..
  FROM 테이블명
 WHERE 조건식;
 
SELECT NAME, SALARY
  FROM EMPLOYEE
 WHERE STATUS='Y'
 
 
[BETWEEN AND]
-- N 이상 N 이하인 범위에 대한 조건식
SELECT NAME, SALARY
  FROM EMPLOYEE
 WHERE HIRE_DATE BETWEEN '10/01/01' AND '21/01/01';
-- WHERE HIRE_DATE >= '10/01/01' AND HIRE_DATE <= '21/01/01';
 
 
[LIKE]
-- 비교대상컬럼 LIKE '특정패턴'
-- 특정패턴: '%', '_' 와일드카드로 사용
	>> '%' : 0글자 이상
    EX) 비교대상컬럼 LIKE '문자%'   => 비교대상의 컬럼값이 '문자로 시작'되는 것 조회
        비교대상칼럼 LIKE '%문자'   => 비교대상의 컬럼값이 '문자로 끝'나는 것 조회
        비교대상컬럼 LIKE '%문자%'  => 비교대상의 컬럼값에 '문자가 포함'된 것 조회 (키워드 검색)
        
    >> '_' : 1글자 이상
    EX) 비교대상컬럼 LIKE '_문자'   => 비교대상의 컬럼값에 '문자앞 한글자가 오는'것 조회
        비교대상칼럼 LIKE '__문자'  => 비교대상의 컬럼값에 '문자앞 두글자가 오는'것 조회
        비교대상컬럼 LIKE '_문자_'  => 비교대상의 컬럼값에 '문자앞과 뒤에 한글자씩 오는'것 조회
        
SELECT *
  FROM EMPLOYEE
 WHERE NAME LIKE '%하%';

   
[IS NULL / IS NOT NULL]
SELECT *
  FROM EMPLOYEE
 WHERE BONUS IS NULL;
   
  
[IN]
-- 비교대상컬럼값이 제시한 목록 중에 일치하는 값 
-- 비교대상컬럼 IN ('값1', '값2', '값3', ..)
SELECT *
  FROM EMPLOYEE
 WHERE DEPT_CODE IN ('D1', 'D3', 'D5');
   
   
[ORDER BY]
SELECT 조회할컬럼, 컬럼, 산술연산식 AS "별칭", ...
  FROM 조회하고자하는테이블명
 WHERE 조건식
 ORDER 
    BY 정렬기준의컬럼명|별칭|컬럼순번 [ASC/DESC] [NULLS FIRST|NULLS LAST]
    
    - ASC : 오름차순 정렬 (생략 시 기본 값)
    - DESC : 내림차순 정렬
    
    - NULLS FIRST : 정렬하고자 하는 컬럼값에 NULL이 있을 경우 해당 데이터를 맨 앞 배치
    - NULLS LAST : 정렬하고자 하는 컬럼값에 NULL이 있을 경우 해당 데이터를 맨 뒤 배치 
 
 SELECT * 
   FROM EMPLOYEE
  ORDER
     BY BONUS DESC, SALARY ASC;

 

반응형

'Oracle' 카테고리의 다른 글

SUBQUERY  (0) 2021.11.08
JOIN  (0) 2021.11.03
GROUP BY, HAVING, 집합연산자  (0) 2021.11.02
오라클 SQL 계정 생성 및 권한 부여  (0) 2021.10.20