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;