dexaboud3@naver.com Heesang kim PL/SQL 3 dexaboud3@naver.com Heesang kim
Oracle 문자 함수 CONCAT INITCAP, UPPER, LOWER LPAD, RPAD SUBSTR LENGTH REPLACE INSTR TRIM, LTRIM, RTRIM NVL
CONCAT CONCAT(char1, char2) 두 문자를 결합, “||” 연산자와 같은 역할을 함
INITCAP, UPPER, LOWER INITCAP(char), LOWER(char), UPPER(char)
LPAD, RPAD LPAD(char1, n [,char2]), RPAD(char1, n [,char2])
SUBSTR SUBSTR(char, m ,[n]) m 번째 자리부터 길이가 n개인 문자열을 반환 m이 음수일 경우에는 뒤에서 m 번째 문자부터 n개의 문자를 반환
LENGTH LENGTH(char) 문자열의 길이를 반환
REPLACE REPLACE(char1, str1, str2) REPLACE는 문자열의 특정 문자를 다른 문자로 변환
INSTR INSTR (char1, str1, m, n) 문자열이 포함되어 있는지를 조사하여 문자열의 위치를 반환 지정한 문자열이 발견되지 않으면 0이 반환 char1 : 지정문자, str1 : 검색문자, m:시작위치, n:검색순위
TRIM, LTRIM, RTRIM TRIM (char1[,char2]), LTRIM (char1[,char2]), RTRIM (char1[,char2]) TRIM : 특정한 문자를 제거 제거할 문자를 입력하지 않으면 기본적으로 공백이 제거 LTRIM : 왼쪽부터 문자를 제거 제거할 문자를 입력하지 않으면 기본적으로 왼쪽 공백이 제거 RTRIM : 오른쪽부터 문자를 제거 제거할 문자를 입력하지 않으면 기본적으로 오른쪽 공백이 제거
NVL NULL 값을 다른 값으로 바꾸며, 모든 데이터 타입에 적용 가능 NVL(컬럼명, ‘대체할 값‘) SELECT * FROM tbl_customer; SELECT CUSTID, NAME, ADDRESS, NVL(PHONE, '000-0000-0000') PHONE FROM tbl_customer;
myTable 스키마 myTable.sql 참조 500개 데이터
실습 MYTABLE을 이용하여 다음 문제를 풀어주세요. (SQL 작성) NAME의 길이보다 FAMILY의 수가 적은 사람의 수를 구하시오. NAME에 A(a)또는 B(b)가 들어가는 사람의 수를 구하시오. (A, a, B, b) 모두 포함되어야 함 NAME과 CITY가 같은 글자로 시작하는 사람들의 NAME와 CITY를 출력하시오. (24명) EMAIL의 마지막 도메인을 잘라(.com, .uk, .org …) 각 항목별로 COUNT하시오. 마지막 도메인은 2~3 글자 Group by를 이용하여 그룹핑
실습 MYTABLE을 이용하여 다음 문제를 풀어주세요. (SQL 작성) 각 연도별 인원수와 최대 SALARY를 구하고, 연도별로 정렬하시오. (2000 ~ 2018, 19개) Family 수에 따른 가장 최근 generatedate를 구하시오. Family로 정렬하시오. 문자열 숫자로 변환 : TO_NUMER()