SQL

    [Oracle] IS NULL / IS NOT NULL

    컬럼값에 NULL 이 있을 경우 NULL값 비교에 사용되는 연산자 보너스를 받지 않는 사원 (BONUS 값이 NULL) 들의 사번, 이금, 급여, 보너스 조회 SELECT EMP_ID, EMP_NAME, SALARY, BONUS FROM EMPLOYEE --WHERE BONUS = NULL; 정상적으로 조회 안됨 WHERE BONUS IS NULL; 보너스를 받는 사원 (BONUS 값이 NULL이 아닌) 들의 사번, 이름, 급여, 보너스 조회 SELECT EMP_ID, EMP_NAME, SALARY, BONUS FROM EMPLOYEE --WHERE BONUS != NULL; 안됨 WHERE BONUS IS NOT NULL; -- 관례적으로 많이씀 --WHERE NOT BONUS IS NULL; -- 되..

    [Oracle] LIKE

    비교하고자 하는 컬럼값이 내가 제시한 특정 패턴에 만족될 경우 조회 [표현법] 비교대상컬럼 LIKE '특정패턴' - 특정패턴 제시시 '%', '_'를 와일드 카드로 사용할 수 있음 >> '%' : 0글자 이상 EX) 비교대상칼럼 LIKE '문자%' => 비교대상의 컬럼값이 문자로 "시작" 되는 걸 조회 비교대상컬럼 LIKE "%문자" => 비교대상의 컬럼값이 문자로 "끝" 나는 걸 조회 비교대상컬럼 LIKE "%문자%" => 비교대상의 컬럼값에 문자가 "포함" 되는 걸 조회 (키워드 검색) >> '_' : 1글자 이상 EX) 비교대상컬럼 LIKE '_문자' => 비교대상의 컬럼값에 문자앞에 무조건 한글자만 올 경우 조회 비교대상컬럼 LIKE '__문자' => 비교대상의 컬럼값에 문자앞에 ..

    [Oracle] BETWEEN A AND B

    조건식에서 사용되는 구문 몇 이상 몇 이하인 범위에 대한 조건을 제시할 때 사용되는 연산자 [표현법] 비교대상컬럼 BETWEEN A(값1) AND B(값2) => 해당 컬럼값이 A(값1) 이상이고 B(값2) 이하인 경우 SELECT EMP_NAME, EMP_ID, SALARY FROM EMPLOYEE WHERE SALARY BETWEEN 3500000 AND 6000000; -- 위의 쿼리 범위 밖의 사람들 조회하고 싶다면? 350 미만 + 600 초과 SELECT EMP_NAME, EMP_ID, SALARY FROM EMPLOYEE --WHERE SALARY 6000000; --WHERE NOT SALARY BETWEEN 3500000 AND 6000000; WH..

    [Oracle] WHERE 절

    조회하고자 하는 테이블로부터 특정 조건에 만족하는 데이터만을 조회하고자 할 때 사용 이때 WHERE절에 조건식을 제시 하게 됨 조건식에서는 다양한 연산자를 사용 가능! [표현식] SELECT 컬럼1, 컬럼2, ... FROM 테이블명 WHERE 조건식; [비교연산자] >, =, 대소비교 = --> 동등비교 !=, ^=, --> 동등하지 않은지 비교 EMPLOYEE 에서 부서코드가 "D9"인 사원들만 조회(이때, 모든 컬럼 조회) SELECT * FROM EMPLOYEE WHERE DEPT_CODE = 'D9'; EMPLOYEE에서 부서코드가 'D1'인 사원들의 사원명, 급여, 부서코드만 조회 SELECT EMP_NAME, SALARY, DEPT_CODE FROM EMPLOYEE WHERE DEPT_COD..

    [Oracle] DISTINCT

    컬럼에 중복된 값들을 한 번씩만 표현하고자 할 때 사용 현재 우리회사에 어떤 직급의 사람들이 존재하는지 궁금함. SELECT JOB_CODE FROM EMPLOYEE; -- 현재는 23명의 직급이 전부다 조회가 됨. EMPLOYEE에 직급코드 (중복제거) 조회 SELECT DISTINCT JOB_CODE FROM EMPLOYEE; -- 중복 제거 돼서 7행만 조회 사원들이 어떤 부서에 속해있는지 궁금하다. SELECT DISTINCT DEPT_CODE FROM EMPLOYEE; -- NULL : 아직 부서배치 안된 사람 유의 사항 : DISTINCT는 SELECT절에 딱 한번만 기술 가능 SELECT DISTINCT JOB_CODE, DISTINCT DEPT_CODE-- 구문오류 ..

    [Oracle] 연결 연산자 : ||

    여러 컬럼값들을 마치 하나의 컬럼인 것 처럼 연결하거나, 컬럼값과 리터럴을 연결할 수 있음 System.out.println("num의 값 : " + num); 사번, 이름, 급여를 하나의 컬럼으로 조회 SELECT EMP_NO || EMP_NAME || SALARY FROM EMPLOYEE; 컬럼값과 리터럴값 연결 XXX의 월급은 XXX원 입니다. => 컬럼명 별칭 : 급여정보 SELECT EMP_NAME || '의 월급은 ' || SALARY || '원 입니다.' AS "급여정보" FROM EMPLOYEE;

    [Oracle] 리터럴

    임의로 지정한 문자열 ('') SELECT 절에 리터럴을 제시하면 마치 테이블상에 존재하는 데이터 처럼 조회 가능 조회된 RESULT SET의 모든 행에 반복적을 같이 출력 EMPLOYEE 테이블의 사번, 사원명, 급여 조회 SELECT EMP_NO, EMP_NAME, SALARY, '원' AS "단위" FROM EMPLOYEE;

    [Oracle] 컬럼명에 별칭 지정하기

    산술연산을 하게되면 컬럼명 지저분함 ... 이때 컬럼명으로 별칭 부여해서 깔끔하게 보여줌 [표현법] 컬럼명 별칭 / 컬러명 AS 별칭 / 컬럼명 "별칭" / 컬럼명 AS "별칭" AS 붙이든 안붙이든 부여하고자 하는 별칭에 띄어쓰기 혹은 특수문자가 포함될 경우 반드시 쌍따옴표로 묶어야한다. SELECT EMP_NAME 사원명, SALARY AS 급여, SALARY * 12 AS "연봉(원)", (SALARY + SALARY * BONUS) * 12 AS "총소득(보너스포함)" FROM EMPLOYEE;