Coding/데이터베이스

[데이터베이스 ] 6장 예제

찡콩찡 2022. 3. 21. 13:51
--31.사원의 이름, 사원명을 대문자로, 사원명을 소문자로, 사원명의 첫자는 대문자 나머지 그대로 출력
SELECT ENAME,UPPER(ENAME),LOWER(ENAME),INITCAP(ENAME) FROM EMP;

SELECT INITCAP('korea')FROM DUAL; --Korea
SELECT INITCAP('KOREA')FROM DUAL; --Korea
SELECT INITCAP('kOREA')FROM DUAL; --Korea

--32. 이름이 scott인 사원의 정보 (찾는 이름이 대문자,소문자 인걸 모를때)
SELECT * FROM EMP WHERE UPPER(ENAME)=upper('scott');

--33.사원의 이름 중 scott이 들어 있는 사원의 정보
select * from emp where upper(ename) like upper('%scott%');

--34. 사원의 이름과 이름의 글자수
SELECT ENAME,LENGTH(ENAME) FROM EMP;

--35.사원의 이름과 이름의 글자수를 출력하되 길이가 5이상인것만 출력
SELECT ENAME,LENGTH(ENAME) FROM EMP WHERE LENGTH(ENAME)>=5;

--36.한글이라는 글자의 문자수와 바이트수를 출력 --2/6/5/5
SELECT LENGTH('한글'),LENGTHB('한글'), LENGTH('KOREA'),LENGTHB('KOREA')
FROM DUAL; 

--37.직책,직책의 첫자부터 두글자,직책의 세번째 글자부터 두글자.직책의 5번째 글자부터 끝까지
SELECT JOB,SUBSTR(JOB,1,2),SUBSTR(JOB,3,2),SUBSTR(JOB,5) FROM EMP;

--38. 
SELECT JOB,                             --직책
     SUBSTR(JOB, -LENGTH(JOB)),  --직책의 첫자부터 끝까지
     SUBSTR(JOB, -LENGTH(JOB),2),--직책의 첫자부터 두글자 
     SUBSTR(JOB,-3)                   --직책의 오른쪽 세글자
FROM EMP;

--39. INSTR(문자열,찾을 문자, 찾기 시작할 위치, 찾은 결과의 순번)
SELECT INSTR('HELLO, ORACLE!','L') AS INSTR_1,   --답:3 문자열에서 첫번째 나오는 L의 위치
       INSTR('HELLO, ORACLE!','L',5) AS INSTR_2,  --답:12 문자열에서 L을 찾는데 5칸 이후에서 찾기
       INSTR('HELLO, ORACLE!','L',2,2) AS INSTR_3  --답:4 문자열에서 L을 찾는데 2칸 이후에서 두번째 L을 찾기                  FROM DUAL;

--40. 사원의 이름에 S가 있는 사원의 정보를 출력
SELECT * FROM EMP WHERE ENAME LIKE '%S%';

--40.2 INSTR 사용
SELECT * FROM EMP WHERE INSTR(ENAME,'S')>0;

--41. REPLACE(문자열,특정문자,대체문자) 함수: 문자열 중 특정 문자를 다른 문자로 대체
SELECT '010-1234-5678' AS REPLACE_BEFORE,
REPLACE('010-1234-5678','-',' ') AS REPLACE_1, -- -를 공백으로 바꾸고 싶다
REPLACE('010-1234-5678','-') AS REPLACE_2 -- -를 삭제
FROM DUAL;

--42.PAD(문자열,전체자릿수,채울문자) 세번째 문자 생략하면 빈칸채움
SELECT 'Oracle',
      LPAD('Oracle', 10, '#') AS LPAD_1, 
      RPAD('Oracle', 10, '*') AS RPAD_1,
      LPAD('Oracle', 10) AS LPAD_2,
      RPAD('Oracle', 10) AS RPAD_2
FROM DUAL;

--43.본인의 주민번호 앞 6자리와 -를 찍고 나머지는 *로 출력,
  -- 본인의 폰번호 제일 뒷자리 4자리는 *로 출력
SELECT RPAD('011203-',14,'*') AS RPAD_JUMIN,
       RPAD('010-6435-',13,'*') AS RPAD_PHONE
       FROM DUAL;
       
--44. 사원번호와 이름을 붙여서 출력하되, EX)7788SCOTT 7788:SCOTT 이런식으로 출력
SELECT CONCAT(CONCAT(EMPNO,':'),ENAME) FROM EMP;

--45.사원의 이름:관리자번호 붙여서 출력
SELECT CONCAT(CONCAT(ENAME,':'),MGR) AS "사원명: 관리자번호" FROM EMP;

--46. 사원명 : 관리자 출력하기
SELECT ENAME || ':' || MGR FROM EMP;

--47.사원번호 - 사원명 출력하기
SELECT EMPNO || '-' || ENAME FROM EMP; 

--48.
SELECT '[' || TRIM(' - -Oracle- - ') || ']' AS TRIM,
'[' || TRIM(LEADING FROM ' - -Oracle- - ')
    || ']' AS TRIM_LEADING,
'[' || TRIM(TRAILING FROM ' - - Oracle - - ')
    || ']' AS TRIM_TRAILING,
'[' || TRIM(BOTH FROM ' - - Oracle - - ')  
    || ']' AS TRIM_BOTH
FROM DUAL;