SQL 57

SQL 7(IF문을 SQL로 구현하기 DECODE)

1.부서 번호가 10번이라면 300, 20번이라면 400, 해당되지 않는다면 0을 출력하는 쿼리를 작성하려한다. IF문으로 작성 한다면 어떻게 짜야할까? if deptno = 10 then 300 -> 만약 부서 번호 10이면 300출력 elif deptno = 20 then 400 -> 그렇지 않고 부서 번호 20이면 400출력 else 0 -> 위 모두 해당이 안된다면 0 출력 맨 마지막 0 은 default값 ▶DECODE 위 IF문을 SQL에 DECODE를 통해 작성 할 수 있다. 사원 번호와 사원 번호가 짝수인지 홀수인지 출력하는 쿼리를 작성하려 한다. 위의 쿼리와 다르게 defaut 값은 존재하지 않고, 홀수 / 짝수를 출력한다 나머지를 구하는 함수 mod 를 사용하여, 2로 나눴을 때 나머지..

SQL 2023.05.01

SQL 6(암시적 형 변환 / NULL 값 대신 다른 데이터 출력하기 NVL,NVL2)

sal(월급)은 숫자형 데이터 컬럼인데, "3000"을 문자형으로 비교한다. sal = '3000'으로 잘 못 비교해 오류가 날 것 같지만, 오라클이 알아서 '숫자형'='문자형' 을 '숫자형'='숫자형'으로 암시적 형 변환을 해여 비교해 실행해줘 결과가 나타난다. 1. 이름과 커미션 출력하는데, 커미션이 NULL인 사원들은 0으로 같이 출력하기 select 이름, 커미션 from emp null값인 사원을 0으로 어떻게 출력해야하나? comm(커미션)이 0이 아닌 사원들은 그대로 출력, 커미션이 NULL인 사원들은 NULL 대신 0이 출력된다 실제 데이터가 바뀌는것이 아닌, 출력값만 0으로 출력되는 것이다. 다른 값 데이터를 넣느것이 필요한 이유는 NULL값이 들어가게 되면 NULL 값이 포함된 컬럼도 ..

SQL 2023.04.28

SQL 5 [문자형으로 데이터 유형 변환 TO_CHAR / 날짜형으로 데이터 유형 변환 TO_DATE ]

●문자형으로 데이터 유형 변환하기(TO-CHAR) 1.이름이 scott인 사원의 이름과 입사한 요일을 출력하고 scott의 월급에 천 단위를 구분 할 수 있는 콤마 붙여 출력하기 먼저 select -ename, hiredate을 요일로 변환 + 월급에 천단위 // from -emp // where ename= 'scott' 요일을 변환 하려면? 월급에 천 단위를 입력하려면? -> TO-CHAR ▶TO_CHAR TO_CHAR은 숫자형 데이터 유형을 문자형으로 변환하거나 날짜형 데이터 유형을 문자형으로 변환 할 때 사용 ex) TO_CHAR(hiredate, 'RRRR') as 연도, TO_CHAR(hiredate, 'MM') as 달, TO_CHAR(hiredate, 'DD') as 일 2. 1981년도에..

SQL 2023.04.27

SQL4 (날짜간 개월 수 출력 MONTHS_BETWEEN / 개월 수 더한 날짜 출력 ADD_MONTHS / 특정 날짜 뒤 오는 날짜 출력 NEXT_DAY)

●날짜 간 개월 수 출력하기 1. 이름을 출력하고, 입사한 날짜부터 오늘까지 총 몇달 근무했는지 출력해보기 sysdate : 오늘 날짜 확인하는 함수 MONTHS_BETWEEN: 날짜를 다루는 함수, 날짜 값 입력받아 숫자 값을 출력 MONTHS_BETWEEN(최신 날짜, 예전 날짜) MONTHS_BETWEEN 함수를 사용하지 않을 시 SELECT TO_DATE('yyyy-mm-dd' , 'RRRR-MM-DD') - TO_DATE('yyyy-mm-dd' , 'RRRR-MM-DD') FROM dual; TO_DATE 함수가 yyyy.mm.dd 의 연도, 달, 일 - RRRR.MM.DD 으로 명시 ●개월 수 더한 날짜 출력하기 2. 현재 날짜로부터 100달 뒤의 날짜 출력하기 ADD_MONTHS 함수 사용 ..

SQL 2023.04.25

SQL 3 ( 대소문자 변환 함수 [UPPER, LOWER, INTCAP] / 특정철자 추출 SUBSTR / 문자열 길이 추출 LENGTH / 특정 철자 위치 출력 INSTR / 철자 변경 REPLACE / 특정철자 N개 채우기[LPAD, RPAD] / 특정 철자 잘라내기[T..

●대소문자 변환 함수 배우기(UPPER,LOWER,INTCAP) 1.사원들의 이름을 출력하는데 첫번째 컬럼 이름을 대문자로 출력, 두번째 컬럼 소문자로 출력, 세번째 컬럼 이림의 첫번째 철자는 대문자, 나머지 소문자 출력하기 ●문자에서 특정 철자 추출하기 (SUBSTR) 영단어 SMITH에서 SMI만 출력하기 ●문자열 길이 출력하기(LENGTH) 이름 출력하고, 그옆에 철자 개수 출력하기 ●문장서 특정 철자의 위치 출력하기(INSTR) 사원이름에서 알파벳 철자 M이 몇번째 위치에 있는지 출력 ●특정 철자를 다른 철자로 변경하기 (REPLACE) 이름과 월급 출력시 숫자 0을 *로 대체 *REGEXP_REPLACE 함수는 정규식 함수 일반함수보다 더 복잡한 형태의 검색패턴으로 데이터 조회할 수 있도록 해줌..

SQL 2023.04.24

SQL 2 ( 비교연산자 [BETWEEN AND, LIKE, IS NULL, IN] / 논리연산자 [AND, OR, NOT])

-산술 연산자 사용하기 1.연봉이 36000 이상 사원들의 이름과 연봉 출력 2.부서 번호가 10번인 사원들의 이름, 월급,커미션,월급+커미션 -> 커미션에 데이터가 없다 이 상태를 NULL값이라 칭함 산술식의 컬럼 값이 NULL 인 경우 결과값도 NULL NULL=알수없음 NVL 이떄 NVL 함수 사용(NULL 데이터 처리하는 함수) NVL(comm,0) 은 comm 출력시 comm이 NULL이면 0을 출력하는 함수 -비교 연산자 배우기 3.월급이 1200 이하인 사원들의 이름과 월급, 직업, 부서 번호 출력 4.월급이 1000에서 3000 사이인 사원들의 이름과 월급 출력 *BETWEEN 하한값 AND 상한값 순서로 작성해야함 5.이름의 첫글자가 'S' 로 시작하는 사원들의 이름과 월급 출력 *% :..

SQL 2023.04.24