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 | ------------------ 2021-03-02 --ORDER BY : 데이터 순서 정렬 -- ASC : 오름차순, DESC : 내림차순 --ORDER BY 구문은 항상 맨 마지막에 작성 SELECT * FROM EMPLOYEE -- ORDER BY SALARY DESC; --내림차순 ORDER BY DEPT_CODE DESC NULLS LAST; -- NULLS LAST, NULLS FIRST 추가 가능 -- ORDER BY 3 DESC -- 3번째 COLUMN 선택, 별칭도 사용가능 --LENGTH(문자열||컬럼명) : 문자열 길이 반환 SELECT LENGTH(EMAIL) FROM EMPLOYEE; -- EMAIL 길이가 16이상인 사원의 전체 컬럼 조회 SELECT * FROM EMPLOYEE WHERE LENGTH(EMAIL)>=16; -- LENGTHB(문자열||컬럼명) : 문자열 BYTE 크기 -- INSTR(대상 문자열||컬럼, 찾을 문자[, 시작위치, 횟수]) : 지정한 위치부터 지정한 횟수번째에 나타난 문자열 인덱스 반환 SELECT INSTR('KH정보교육원KH', 'KH',1,1) FROM DUAL; -- 1, 한번 찾으면 끝 // 지정위치가 음수면 뒤에서 부터 찾는다는 뜻 --EMAIL에서 @위치, 두번째 . 의 위치 찾기 SELECT INSTR(EMAIL,'@'), INSTR(EMAIL,'.',1,2) FROM EMPLOYEE; -- LPAD(왼) / RPAD(오른) : 특정 길이의 여백이 생기면 그 공간을 대체문자로 채움. --LPAD(대상문자열, 지정길이[,대체문자]) SELECT '안녕', LPAD('안녕', 10) FROM DUAL; -- 대체문자 지정없으면 띄어쓰기로 대체 -- LTRIM/RTRIM(대상문자||컬럼[,문자) : 공백이나 특정 기호 제거 // TRIM 은 양쪽 제거 SELECT LTRIM(' 무야호') FROM DUAL; -- SUBSTR('문자열', 시작인덱스[,길이]) : 지정한 위치를 제외한 문자열을 잘라내는 기능 SELECT SUBSTR('HELLO FUNCTION', 6) FROM DUAL; -- 이름에서 성만 출력 SELECT SUBSTR(EMP_NAME,1,1) FROM EMPLOYEE; --LOWER/UPPER/INICAP : 소문자로,대문자로, 띄어쓰기 다음을 대문자로 출력 --REPLACE(대상컬럼, 대상 문자열[, 대체문자열]) SELECT REPLACE(EMAIL, '@', '!!!!!!') FROM EMPLOYEE; --REVERSE : 문자열 거꾸로 SELECT REVERSE('MUYAHO~ HE IS GOING CRAZY') FROM DUAL; --YZARC GNIOG SI EH ~OHAYUM --TRANSLATE(대상문자열,치환대상,치환문자열) SELECT TRANSLATE('무~야~호~','무야호','신난다') FROM DUAL; SELECT * FROM EMPLOYEE; --EMPLOEE테이블에서 사원번호, 사원명, 주민번호, 연봉조회 -- 주민번호는 생년월일 제외한 나머지는 * 로 표시 SELECT EMP_ID, EMP_NAME, SUBSTR(EMP_NO, 1, 7)||'*******' FROM EMPLOYEE; --MOD(A, B) // A와B의 나머지 반환 SELECT MOD(10,3) FROM DUAL; -- 1 --ROUND(실수, 소수점 자리 수) : 실수의 소수점 자리수까지 남기고 그 뒤는 반올림 // 음수 가능 SELECT ROUND(1.12345, 2) FROM DUAL; -- 1.12 --FLOOR : 소수점 삭제 SELECT FLOOR(1.2345) FROM DUAL; -- 소수점자리 삭제 --TRUC : 지정 위치 뒤 소수점 자리 버림 SELECT TRUNC(1.234, 2) FROM DUAL; -- SYSDATE : 현재날짜 반환 SELECT SYSDATE FROM DUAL; -- +, - 로 하루더하고빼기 가능 --ADD_MONTHS : 개월수 증가 SELECT ADD_MONTHS(HIRE_DATE, 3) -- 3개월 증가 FROM EMPLOYEE; --MONTHS_BETWEEN : 두 날짜의 개월 수 차이 반환 --EMPLOYEE 테이블에서 사원의 근무개월수를 구하시오 SELECT EMP_NAME, DEPT_CODE, SALARY, FLOOR(MONTHS_BETWEEN(SYSDATE, HIRE_DATE)) AS 근무개월수 FROM EMPLOYEE; -- NEXT_DAY : 지정 요일이 가장 가까운 날짜 반환 -- LAST_DAY : 그 달의 마지막 날 출력 -- EXTRACT : 년월일시분초 를 따로 숫자형으로 반환 SELECT EXTRACT(YEAR FROM SYSDATE) FROM DUAL; -- 시분초 SELECT EXTRACT(HOUR FROM CAST(SYSDATE AS TIMESTAMP)) FROM DUAL; -- 사원명, 입사날(요일) 출력 SELECT EMP_NAME, TO_CHAR(HIRE_DATE, 'YYYY/MM/DD (DY)') FROM EMPLOYEE; SELECT SYSDATE AS "입대", ADD_MONTHS(SYSDATE, 18) AS "전역" ,TO_CHAR((ADD_MONTHS(SYSDATE,18)-SYSDATE)*3,'999,999,999') AS 짬밥먹은횟수 FROM DUAL; --NVL : NULL 값을 다른 값으로 바꿀 때 사용하며, 모든 데이터 타입에 적용이 가능하다. -- NVL2(expr, expr1, expr2) : expr의 값이 NULL이 아닐 경우에는 expr1의 값을 반환 , NULL일 경우에는 expr2의 값을 반환 한다. -- DECODE(기준값, 조건1, 결과1, 조건2, 결과2,,,,,,결과DEFAULT) // 자바 SWITCH문과 비슷 SELECT EMP_NAME, EMP_NO, DECODE(SUBSTR(EMP_NO,8,1),'1','남자','여자') -- 주민번호로 남여 구별해서 출력 FROM EMPLOYEE; | cs |
'KH정보교육원_웹 프로그래머 과정 > Oracle DB' 카테고리의 다른 글
Database 기본6 (0) | 2021.03.09 |
---|---|
Database 기본5 (0) | 2021.03.08 |
Database 기본4 (0) | 2021.03.07 |
SQL Developer (0) | 2021.02.25 |
Database 기본1 (0) | 2021.02.25 |