관리 메뉴

프로그래밍 삽질 중

SQL 함수 문자 함수 타입 설명 및 예제 본문

카테고리 없음

SQL 함수 문자 함수 타입 설명 및 예제

평부 2021. 3. 16. 18:36

※ 문자 함수 1

- UPPER() : 괄호 안 문자 데이터를 모두 대문자로 바꿈

- LOWER() : 괄호 안 문자 데이터를 모두 소문자로 바꿈

- INITCAP() : 괄호 안 데이터 중 첫 글자는 대문자, 나머지는 소문자

- LENGTH() : 괄호 안 문자열 길이를 구함

 

[예제1]

- 사원의 이름 출력하기(각각 UPPER, LOWER, INITCAT 이용하기)

1
2
SELECT FIRST_NAME, UPPER(FIRST_NAME), LOWER(FIRST_NAME),
INITCAP(FIRST_NAME) FROM Employees;
cs

[예제 2] 

- 대소문자 관계 없이 JOHN인 성 찾기

1
2
3
4
5
6
7
//1번 방법
SELECT * FROM Employees 
WHERE UPPER(LAST_NAME) = UPPER('%john%');
 
//2번 
SELECT * FROM Employees 
WHERE UPPER(LAST_NAME) = UPPER('john');
cs

[예제 3]

- 성이 6글자 이상인 경우 출력

1
2
SELECT LAST_NAME, LENGTH(LAST_NAME) FROM Employees
WHERE LENGTH(LAST_NAME) >= 6;
cs

 

※ 문자 함수 2

- SUBSTR(문자열 데이터, 시작위치, 추출길이) : 문자열 데이터의 시작 위치부터 추출 길이만큼 출력

- SUBSTR(문자열 데이터, 시작위치) : 문자열 데이터의 시작 위치부터 문자열 데이터 끝까지 추출

- INSTR() : 특정 문자 위치를 찾아 추출

- REPLACE() : 특정 문자를 다른 문자로 바꿔 추출

- LPAD() & RPAD() : 데이터의 빈 공간을 특정 문자로 채움

- CONCAT() : 두 문자열 데이터를 합침

- || () : CONCAT()과 유사하게 열이나 문자열 연결

- TRIM() : 특정 문자를 지움

- LTRIM() & RTRIM() : 특정 문자열을 지움

 

[예제4]

1) 이메일의 첫 번째 3글자 추출하기

2) 이메일의 시작 위치가 음수일 경우 마지막 위치까지 거슬러감(끝자리부터 1자리 까지 출력)

3) hello this is oracle에서 c 찾기

4) 성에 'K'가 있는 행 구하기(INSTR 이용)

5) 성에 'K'가 있는 행 구하기(LIKE 이용)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 1)
SELECT EMAIL, SUBSTR(EMAIL, 3FROM Employees;
 
// 2)
SELECT EMAIL, SUBSTR(EMAIL, -LENGTH(EMAIL), 1FROM Employees;
 
// 3)
SELECT INSTR('hello this is oracle''c') AS INSTR FROM DUAL;
 
// 4
SELECT LAST_NAME FROM Employees WHERE INSTR(LAST_NAME, 'K')>0;
 
// 5)
SELECT LAST_NAME FROM Employees WHERE LAST_NAME LIKE '%K%';
cs

 

 

[예제 5]

6) 'ASIA-AMERICA-EU' 문장에서 '-'를 공백("")으로 바꾸기(전의 값은 BEFORE로 표시)

7) 'COFFEE' 의 문장에 'STARBUCKS' 삽입하기(LPAD 이용)

8) COFFEE' 의 문장에 'STARBUCKS' 삽입하기(RPAD 이용)

9) 직업 ID와 매니저 ID를 연결하기(CONCAT 이용, 가운데 공백 삽입)

10) 직업 ID와 매니저 ID를 연결하기(|| 이용)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 6)
SELECT 'ASIA-AMERICA-EU' AS "BEFORE", REPLACE('ASIA-AMERICA-EU''-'' '
AS AFTER FROM DUAL;
 
// 7)
SELECT 'COFFEE', LPAD('COFFEE'15'STARBUCKS') AS LPAD
FROM DUAL;
 
// 8)
SELECT 'COFFEE', LPAD('COFFEE'15'STARBUCKS') AS RPAD
FROM DUAL;
 
// 9)
SELECT CONCAT(JOB_ID, CONCAT(' ', MANAGER_ID)) FROM Employees;
 
// 10)
SELECT JOB_ID || ' ' || MANAGER_ID FROM Employees;
cs