버글버글
DataBase 수업 기록(16) 함수 - 문자 본문
반응형
▶ 문자열 함수
1. 대소문자 변환
1) UPPER(칼럼) : 칼럼의 데이터를 모두 대문자로 변환
2) LOWER(칼럼) : 칼럼의 데이터를 모두 소문자로 변환
3) INITCAP(칼럼) : INITAL CAPITAL, 첫 글자는 대문자 나머지는 소문자로 변환
예시)
-- 테이블 생성
CREATE TABLE SAMPLE(
EMAIL VARCHAR2(20 BYTE) NOT NULL
);
-- ROW 생성
INSERT INTO SAMPLE (EMAIL) VALUES ('sample@naver.com');
SELECT
EMAIL -- sample@naver.com
, UPPER(EMAIL) -- SAMPLE@NAVER.COM
, LOWER(EMAIL) -- sample@naver.com
, INITCAP(EMAIL) -- Sample@naver.com
FROM
SAMPLE;
예시2) HR계정 접속
-- FIRST_NAME 칼럼에서 'JAMES' 조회하기
SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME
FROM EMPLOYEES
WHERE FIRST_NAME = INITCAP('JAMES');
2. 길이
1) LENGTH(칼럼) : 칼럼 데이터의 글자 수 반환
2) LENGTH(칼럼) : 칼럼 데이터의 바이트 수 반환
SELECT
LENGTH('HELLO'), LENGTHB('HELLO') -- 5, 5
, LENGTH('안녕'), LENGTHB('안녕') -- 2, 6
FROM
DUAL;
3. 연결
1) || 연산자 (OR 아님)
2) CONCAT(A, B) : A와 B를 연결
(1) CONCAT 함수의 인수(arguments)는 2개만 지원
(2) A와 B와 C의 연결
① CONCAT(A, B, C) : 불가능함
② CONCAT(CONCAT(A, B), C) : 가능함
예시) HR계정 접속
SELECT
FIRST_NAME || ' ' || LAST_NAME AS FULL_NAME
, CONCAT(CONCAT(FIRST_NAME, ' '), LAST_NAME) AS FULL_NAME
FROM
EMPLOYEES;
- 둘다 같은 결과
4. 일부 반환
SUBSTR(칼럼, BEGIN, LENGTH)
칼럼 데이터에의 BEGIN 위치부터 LENGTH개만큼 반환
BEGIN은 인덱스가 아님(BEGIN은 1부터 시작함)
예시)
-- 테이블 생성
CREATE TABLE SAMPLE9(
NAME VARCHAR2(20 BYTE) NOT NULL
);
INSERT INTO SAMPLE9 (NAME) VALUES ('Chunsik');
SELECT
SUBSTR(NAME, 1, 3) -- 1번째 글자부터 3글자를 가져옴
FROM
SAMPLE9; -- Chu
5. 특정 문자열의 위치 반환
INSTR(칼럼, 찾을 문자열)
반환되는 위치는 인덱스가 아님(1부터 시작함)
찾는 문자열이 없으면 0을 반환
예시)
--테이블 생성
CREATE TABLE SAMPLE9(
NAME VARCHAR2(20 BYTE) NOT NULL,
EMAIL VARCHAR2(20 BYTE) NULL
);
-- 로우 생성
INSERT INTO SAMPLE9 (NAME, EMAIL) VALUES ('Chunsik', 'Chunsik@naver.com');
SELECT
INSTR(EMAIL, 'a') -- 'a'의 위치를 반환(대소문자 지켜줘야 함)
FROM
SAMPLE9; -- 10
6. 문자열 채우기(PADDING)
1) LPAD(칼럼, 전체폭, 채울문자)
2) RPAD(칼럼, 전체폭, 채울문자)
예시) HR계정 접속
SELECT
LPAD(DEPARTMENT_ID, 3, 0) -- 왼쪽에 0을 채워서 3자리로 조회
, LPAD(NVL(DEPARTMENT_ID, 0), 3, 0)
FROM
EMPLOYEES;
-- 090, 090
-- 110, 110
SELECT
RPAD(SUBSTR(EMAIL, 1, 2), 5, '*') -- 오른쪽에 *를 채워서 5자리로 조회
FROM
EMPLOYEES;
-- SK***
-- NK***
7. 공백 제거
1) LTRIM(칼럼) : 칼럼 데이터의 왼쪽 공백 제거
2) RTRIM(칼럼) : 칼럼 데이터의 오른쪽 공백 제거
3) TRIM(칼럼) : 칼럼 데이터의 양쪽 공백 제거
예시)
SELECT
LENGTH(LTRIM(' HELLO'))
, LENGTH(RTRIM('HELLO '))
, LENGTH(TRIM(' HELLO '))
FROM
DUAL; -- 5, 5, 5
반응형
'Database > database 수업 기록' 카테고리의 다른 글
DataBase 수업 기록(18) DQL그룹 (0) | 2022.09.13 |
---|---|
DataBase 수업 기록(17) 함수 - 기타 (0) | 2022.09.12 |
DataBase 수업 기록(15) 함수 - 날짜 (0) | 2022.09.10 |
DataBase 수업 기록(14) 함수 - 수학 (0) | 2022.09.09 |
DataBase 수업 기록(13) 함수 - NULL, 집계 (0) | 2022.09.08 |