Back-end
Database 기본2
calvin9150
2021. 2. 26. 20:06
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | ----------------------- 2021-02-26 --RESULT SET에서 ROW 필터링 가져오려면 WHERE SELECT * FROM EMPLOYEE WHERE SALARY<=3500000; --DB에선 대부분 SELECT 문 안에서 이루어진다 -> 함수실행, 산술연산 등 --컬럼명이 들어가는 곳에서 산술연산 가능. SELECT 10+20 FROM DUAL; --ORACLE이 제공하는 테스트용 테이블 SELECT SALARY, BONUS, SALARY+SALARY*BONUS FROM EMPLOYEE; --EMPLOYEE 테이블에서 각 사원의 연봉 조회 --컬럼명 AS 변경할컬럼명 (AS 생략하고 띄워쓰기로가능) "변경할컬럼명" -> ""안에 넣으면 띄워쓰기나 특수기호 사용 가능 SELECT EMP_NAME 사원명, SALARY*12 연봉, (SALARY+SALARY*BONUS)*12 AS 성과금포함연봉 FROM EMPLOYEE; --없는 컬럼명은 추가가 된다 SELECT EMP_NAME, '님', 100 FROM EMPLOYEE; SELECT DISTINCT DEPT_CODE --컬럼 중복값을 제거하고 출력 FROM EMPLOYEE; SELECT DISTINCT DEPT_CODE, JOB_CODE -- 여러 컬럼을 적으면 해당 컬럼들끼리 ROW에서 겹치는 거만 삭제 FROM EMPLOYEE; SELECT EMP_NAME||'님', SALARY||'원' --컬럼을 연결 FROM EMPLOYEE; --EMPLOYEE 테이블에서 사원명 송종기의 전체 컬럼 조회 SELECT * FROM EMPLOYEE WHERE EMP_NAME='송종기'; --코드가 D5인 사원 조회 SELECT* FROM EMPLOYEE WHERE DEPT_CODE='D5'; --급여가 2백만원 이상인 사원 조회 SELECT * FROM EMPLOYEE WHERE SALARY>2000000; --코드가 D5 혹은 D6인 사원의 사원명,급여,코드 조회 SELECT EMP_NAME, SALARY, DEPT_CODE FROM EMPLOYEE WHERE DEPT_CODE='D5' OR DEPT_CODE='D6'; --부서코드가 D5가 아닌 사원을 조회 SELECT * FROM EMPLOYEE WHERE NOT DEPT_CODE='D5'; --EMPLOYEE 테이블에서 급여 300~500만의 사원의 이름, 급여, 부서코드 조회 SELECT EMP_NAME, SALARY, DEPT_CODE FROM EMPLOYEE WHERE SALARY>3000000 AND SALARY<5000000; --WHERE 컬럼 BETWEEN 값 AND 값 사용 SELECT EMP_NAME, DEPT_CODE, SALARY FROM EMPLOYEE WHERE SALARY BETWEEN 3000000 AND 5000000; DESC EMPLOYEE; --테이블에 어떤 컬럼이 있는지 조회 --고용일이 00/01/01 이전에 입사한 사원의 이름, 부서, 고용일 조회 SELECT EMP_NAME, DEPT_CODE, HIRE_DATE FROM EMPLOYEE WHERE HIRE_DATE<'00/01/01'; --고용일이 09/01/01~00/01/01 사이에 입사한 사원의 이름, 부서, 고용일 조회 SELECT EMP_NAME, DEPT_CODE, HIRE_DATE FROM EMPLOYEE WHERE HIRE_DATE BETWEEN '90/01/01' AND '00/01/01'; --LIKE : 특정 패턴의 문자값 조회 -- 와일드카드를 사용해서 조회 %, _ -- % : 0개 이상의 임의의 문자 표시 -- _ : 1개의 임의의 문자 표시 -- 1) 앞자리가 ze로 시작 : ze% (앞에는 ze로 시작하는걸 모조리 가져와라) -- 2) 뒷자리가 com으로 끝남 : %com (com으로 끝나는걸 모조리 가져와라) -- 3) 문장중에 a와 n을 포함 : %a%n% (어느 위치에 있는지는 모르지만 문장중에 a 와 n을 포함하는걸 모조리 가져와라) --전씨 성을 가진 사언의 이름, 코드, 급여 조회 SELECT EMP_NAME, DEPT_CODE, SALARY FROM EMPLOYEE WHERE EMP_NAME LIKE '전_%'; --이름에 이 가 포함된 사원 조회 SELECT EMP_NAME, DEPT_CODE, SALARY FROM EMPLOYEE WHERE EMP_NAME LIKE '%이%'; --특수기호를 조건으로 쓰려면 ESCAPE 사용 SELECT* FROM EMPLOYEE WHERE EMAIL LIKE '___A_%' ESCAPE 'A'; --이 씨가 아닌 사원 조회 SELECT * FROM EMPLOYEE WHERE NOT EMP_NAME LIKE '이%'; --NULL 은 연산처리가 안된다. --IS NULL : NULL 값인 것 찾음 --보너스 못받는 사람 조회...... SELECT * FROM EMPLOYEE WHERE BONUS IS NULL; --부서 미지정자 조회 SELECT * FROM EMPLOYEE WHERE DEPT_CODE IS NULL; --IN/ NOT IN : 포함됐는지 안됐는지 SELECT * FROM EMPLOYEE WHERE (JOB_CODE='J7' OR JOB_CODE='J2') AND SALARY>2000000; | cs |