분류 전체보기 217

ORACLE SQL 2회독 문제 풀이

INSTR :  SELECT INSTR('AABAACAABBAA','B',1,2) FROM DUAL;              2 :  2번째 순번을 찾는다. SUBSTR과INSTR을 활용해서  -- 사원 정보 중 사원명, 이메일, 아이디 조회  -- [1] 이메일에서 '@'의 위치를 찾고 => INSTR 함수 사용  -- [2] 이메일의 컬럼의 값에서 1번째 위치부터 '@'위치(1에서 확인)전까지 추출  SELECT EMP_NAME, email, SUBSTR(email, '1',INSTR(EMAIL, '@') -1)  FROM EMPLOYEE; -- 연결 연산자 사용해서 ? SELECT EMP_NAME,EMP_NO,RPAD(SUBSTR(EMP_NO, 1,8),14,'*')  FROM EMPLOYEE;  ..

ORACLE SQL 2024.07.25

SQL 집합 연산자 , JOIN

* 집합 연산자             : 여러 개의 쿼리문을 하나의 쿼리문으로 만들어주는 연산자            - UNION : 합집합 OR(두 쿼리문을 수행한 결과값을 더해줌)      - INTERSECT : 교집합 AND (두 쿼리문을 수행한 결과값의 중복된 부분을 추출해준다.)      - UNION ALL : 합집합 + 교집합(중복되는 부분이 두번 표시될 수 있다)      - MINUS : 차집합(선행 결과값에 후행 결과값을 뺸 나머지)       집합 연산자 사용 시 주의사항                   1) 컬럼 갯수가 동일해야한다.          2) 컬럼 자리마다 동일한 타입으로 작성해야 함          3) 정렬하고자 한다면 ORDER BY절은 마지막에 작성해야한다.  ..

ORACLE SQL 2024.07.24

SQL_함수 모음 NULL 처리 함수, 선택 함수

NULL 처리 함수 :  NVL : 해당 컬럼의 값이 NULL일 경우 다른 값으로 사용할 수 있도록 변화해주는 함수이다  [표현법]         NVL(컬럼, 해당 컬럼의 값이 NULL인 경우 사용할 값)  NVL  사용 예 : SELECT EMP_NAME 사원이름, NVL(BONUS, 0) 보너스 FROM EMPLOYEE; -- BONUS가 NULL일 경우 0으로 변화 시켜준다.   SELECT EMP_NAME 사원이름, SALARY*12 연봉 ,(SALARY +(SALARY * NVL(BONUS, 0)))* 12 "보너스 포함 연봉" FROM EMPLOYEE; NVL2 : 해당 컬럼의 값이 NULL일 경우 표시할 값을 지정하고 NULL이 아닐 경우(데이터가 존재하는 경우) 표시할 값을 지정     ..

ORACLE SQL 2024.07.23

SQL 함수_ 형변환

* 형변환 함수 : 데이터타입 변경해주는 함수                   - 문자 / 숫자 / 날짜         TO_CHAR : 숫자 또는 날짜 타입의 값을 문자 타입으로 변환시켜주는 함수         [표현법]            TO_CHAR(숫자|날짜[, 포맷])      -- 숫자타입 --> 문자타입   SELECT TO_CHAR(1234),TO_CHAR(1234, '999999') "포맷데이터" FROM DUAL;-- '9' : 개수만큼 자리수를 확보하고. 오른쪽 정렬. 빈칸은 공백으로 채움.   SELECT EMP_NAME, SALARY, TO_CHAR(SALARY*12, 'L9,999,999,999')FROM employee;    SELECT sysdate, TO_CHAR(sys..

ORACLE SQL 2024.07.22

SQL 함수_2 숫자 타입의 데이터 처리 함수 및 날짜

ABS : 숫자의 절대값을 구해주는 함수  MOD :  두 수를 나눈 나머지 값을 구해주는 함수  MOD  사용 예 :SELECT MOD(10,3) FROM DUAL; ROUND : 반올림한 값을 구해주는 함수 CEIL : 올림처리한 값을 구해주는 함수 TRUNC : 버림처리한 값을 구해주는 함수(위치 지정 가능)FLOOR : 날짜 관련 함수 : SYSDATE : 시스템의 현재 날짜 및 시간을 반환  MONTHS_BETWEEN : - >  두 날짜 사이의 개월 수를 반환  SELECT CEIL(MONTHS_BETWEEN(SYSDATE, '24/06/11')) ||  '개월차' 공부시작한지  SELECT FLOOR(MONTHS_BETWEEN('24/11/25', sysdate)) || '개월 남음' 수료까..

ORACLE SQL 2024.07.21

SQL 함수 모음_1 문자 관련 함수.

LENGTH - > 글자수를 구해주는 연산자 LENGTHB -> 바이트수를 구해주는 연산자  LENGTH 활용 예)    -- 이름이 두 글자인 사람을 구하는 방식으로도 사용될 수 있다  SELECT * FROM customer WHERE LENGTH(NAME) = 2; INSTR -> 문자열로부터 특정 문자의 시작 위치를 반환  - 음수값을 시작값으로 제시하면 뒤에서부터 찾는다. -다만 위치에 대한 값은 앞에서부터 읽어서 결과를 반환한다 . SELECT INSTR('AABAACAABBAA','B',1,2) FROM DUAL;      SUBSTR : 문자열에서 특정 문자열을 추출해서 반환한다 SELECT SUBSTR('ORACLE SQL DEVELOPER', 10)   남자 사원만 추출 SELECT E..

ORACLE SQL 2024.07.20

SQL 관련 문제 풀이

-- 3. EMPLOYEE테이블에서 사원명, 입사일-오늘, 오늘-입사일 조회 --     (단, 각 별칭은 근무일수1, 근무일수2가 되도록 하고 모두 정수(내림), 양수가 되도록 처리) SELECT EMP_NAME 사원명, FLOOR(ABS(HIRE_DATE - SYSDATE )) + 1 "근무일수1" , TRUNC(ABS(sysdate - HIRE_DATE ))+ 1 "근무일수2" FROM eMPLOYEE; -- 4. EMPLOYEE테이블에서 사번이 홀수인 직원들의 정보 모두 조회 SELECT * FROM employee WHERE MOD(EMP_ID, 2) != 0;  SELECT * FROM employee WHERE   EXTRACT(YEAR FROM sysdate) - EXTRACT(YEAR F..

ORACLE SQL 2024.07.19

SQL 정리 연산자 모음

WHERE절 :  검색할 컬럼의 조건을 설정하여 행을 결정  SELECT EMP_NAME, DEPT_CODE, SALARY FROM EMPLOYEEWHERE DEPT_CODE = 'D6' AND SALARY > 2000000; -- EPLOYEE 테이블에서 사원이름과 부서코드, 급여를 조회 단 부서코드가 D6이고 급여를 2000000보다 많이 받는 직원 연결 연산자  : ||  || 을 사용하여 여러 컬럼을 하나의 컬럼인 것처럼 연결하거나 컬럼과 리터럴을 연결한다  예시 :SELECT EMP_NAME || '의 월급은' || SALARY || '원 입니다' FROM employee; 선동일의 월급은8000000원 입니다  논리 연산자 :  AND : 여러 조건이 동시에 TRUE일 경우에만 TRUE값을 반..

ORACLE SQL 2024.07.19

SQL 4일차 형변환

TO_CHAR : 숫자 또는 날짜 타입의 값을 문자 타입으로 변환 시켜주는 함수  TO_CHAR(숫자|날짜[, 포맷])SELECT TO_CHAR(1000000, 'L9,999,999') "포맷데이터" FROM DUAL;   * TO_DATE : 숫자타입 또는 문자타입을 날짜타입으로 변경하는 함수 * SELECT TO_DATE(020222) FROM DUAL;- 오류가 나는 이유는 숫자는 0으로 시작하면 안된다.  TO_NUMBER : 문자 타입의 데이터를 숫자타입으로 변경시켜주는 함수   NULL 처리 함수 :  NVL : 해당 컬럼의 값이 NULL일 경우 다른 값으로 사용할 수 있도록 해주는 변화해주는 함수 [표현법]        NVL (컬럼, 해당 컬럼의 값이 NULL인 경우 사용할 값)  NVL2..

ORACLE SQL 2024.07.19

SQL 함수 정리 (FUNCTION) 3일차

SELECT LENGTH('오라클'),  LENGTHB('오라클')FROM DUAL;  LENGTH  : 글자수 LENGTHB : 바이트수  표현법 * INSTR : 문자열로부터 특정 문자의 시작 위치를 반환 컬럼    INSTR(컬럼 | '문자열', '찾고자하는 문자')[, 찾을 위치의 시작값, 순번1] SELECT INSTR ('AABAACAABBAA', 'B') -- 앞쪽에 있는 첫번째 B의 위치 : 3FROM DUAL; SELECT INSTR('AABAACAABBAA','B',-1) FROM DUAL; -1  : 뒤에서부터 찾음   SELECT EMAIL, INSTR(email, '_', 1,1)"_ 위치", INSTR(email, '@', 1,1)"@ 위치" FROM employee;  * S..

ORACLE SQL 2024.07.19