*SQL_Oracle*

DML <SELECT> 기본문법

깐부로부터 2021. 11. 2. 22:08

행(Row) / 열(컬럼)

 

<SELECT>

데이터를 조회하거나 검색할 때 사용되는 명령어

 

- Result Set : SELECT 구문을 통해 조회된 데이터의 결과물. 조회된 행돌의 집합

 

[표현법]

SELECT 조회하고자 하는 컬럼, 컬럼, 컬럼......

FORM 테이블명;

 

 -- EMPLOYEE 테이블의 전체 사원들의 모든 컬럼을 다 조회
        SELECT* 
        FROM EMPLOYEE;

-- EMPLOYEE 테이블의 전체 사원들의 사번, 이름, 급여 컬럼만을 조회
        SELECT EMP_ID, EMP

        FROM EMPLOYEE;


< 컬럼값을 통한 산술 연산>

조회하고자 하는 컬럼들을 나열하는 SELECT절에

산술연산(+-/*)을 기술해서 결과를 조회할 수 있다.

 

보너스가 없는 자들은 NULL


<컬럼명에 별칭 지정하기>

[표현법]

컬럼명 AS 별칭, 컬럼명 AS "별칭", 컬럼명 "별칭", 컬럼명 별칭

AS를 붙이던 안붙이던 상관X

별칭에 특수문자, 띄워쓰기 포함될 경우 반드시 "" 묶어서 표기해야 함


<리터럴>

실제 그 테이블에 존재하는 데이터처럼 조회가 가능하다.


<DISTINCT>

조회하고자 하는 컬럼의 중복된 값을 딱 한번씩만 조회할 때

해당 컬럼명 앞에 기술

 

[표현법]

DISTINCT 컬럼명

(SELECT절에 DISTINCT 구문은 단 한개만 가능하다!!)


<WHERE 절>

조회하고자하는 테이블에 특정 조건을 제시

그 조건에 만족하는 데이터만을 조회하고자 할 때 기술하는 구문

 

[표현법]

SELECT 조회하고자 하는 컬럼, 컬럼, ................

FORM XPDLQMFAUD

WHERE 조건식;

 

실행순서 FROM 절 => WHERE 절 => SELECT 절

 

 

- 조건식에 다양한 연산자 사용 가능

 <비교 연산자>

>,<, >=, <=

=(일치하는가? : 자바에서는 ==)
!=, ^=, <> (일치하지 않는가?)


<논리 연사낮>

여러개의 조건을 엮을 때 사용

 

AND(그리고, ~이면서) / OR(또는, ~이거나)


<BETWEEN AND>

몇 이상 몇 이하인 범위에 대한 조건을 제시할 때 사용

 

[표현법]

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


<LIKE '특정 패턴'>

비교하려는 컬럼값이 내가 지정한 특정 패턴에 만족될 경우 조회

 

[표현법]

비교대상컬럼명 LIKE '특정패턴'

 

- 특정패턴에 와일드카드인 '%', '_'를 가지고 제시할 수 있음

'%' : 0글자 이상

      비교대상컬럼명 LIKE '문자%' => 컬럼값 중에 '문자'로 시작되는 것을 조회

      비교대상컬럼명 LIEK '%문자' => 컬럼값 중에 '문자'로 나는 것을 조회

      비교대상컬럼명 LIKE '%문자%' = > 컬럼값 중에 '문자'가 포함되는 것을 조회

 

'_' : 1글자

     비교대상컬럼명 LIKE '_문자' => 해당 컬럼값 중에 '문자'앞에 무조건 1글자가 있을 경우 조회

     비교대상컬럼명 LIEK '__문자' => 해당 컬럼값 중에 '문자'앞에 무조건 2글자가 있을 경우 조회

 

※와일드카드※


<NULL>

 

[표현법]

비교대상컬럼 IS NULL : 컬럼값이 NULL일 경우

비교대상 컬럼 IS NOT NULL : 컬럼값이 NULL이 아닌 경우

 


<IN>

비교대상컬럼 값에 내가 제시한 목록들 중 일치하는 값이 있는지~?

 

[표현법]

비교대상컬럼 IN (값, 값, 값,........)


<연결 연산자 ||>

여러 컬럼값들을 마치 하나의 컬럼인것 처럼 연결시켜주는 연산자

컬럼과 리터럴(임의의 문자열)을 연결할 수 있다.

 

System.out.print("num : " + num);