데이터베이스 구조 (humanlist)
name |
age |
gender |
job |
홍길동 |
21 |
M |
soldier |
김춘자 |
33 |
F |
CEO |
방태순 |
18 |
F |
student |
윤호상 |
23 |
M |
nurse |
장지태 |
27 |
M |
doctor |
nvl()
- nvl(속성 or 값, 치환할 값)
- null 값을 다른 값으로 치환하는 함수
nvl2()
- nvl2(속성 or 값1, null 값이 아닐 경우 출력 값, null 값일 경우 출력 값)
decode()
- if문의 역할
- decode(a, b, '1', null) = a가 b일 경우 1을 출력, 아닐 경우 null을 출력
- select name, age, decode(gender, 'F', '여자') from human_list;
: gender가 F일 경우 여자를 출력, 아닐 경우 아무것도 출력하지 않음
- select name, decode(age, 18, 'student', 27, 'senior', 23, 'univ', 'etc') "grade" from human_list;
: age가 18일 경우 student, 27일 경우 senior 등 조건대로 출력 모두 해당 안되면 etc 출력
case()
- case 조건 when 결과1 then 출력1 when 결과2 then 출력2 else 출력3 end "속성명"
- select job, case(name) when '홍길동' then '홍성훈' when '김춘자' then '김유빈' when '방태순' then '방효연'
else name from human_list;
: 조건에 따른 출력
- select case when age between 10 and 20 then 'student' when age between 21 and 30 then 'senior' end "grade"
from human_list;
: age가 10이상 20이하면 'student', 21이상 30이하면 'senior'라고 "grade" 속성에 출력
정규식
- ^ (캐럿) : 해당 문자로 시작하는 line 출력 (ex : '^김춘자' => 김춘자로 시작하는 line 출력)
- $ : 해당 문자로 끝나는 line 출력
- . : ~로 시작하여 ~로 끝나는 line 출력 (ex : '김...자' => 김으로 시작해서 자로 끝나는 5글자 line)
- * : 모든 (ex : '[a-z]*')
- [] : 해당 문자에 해당하는 한 문자 (ex : '[Ppq]ower' => P 혹은 p 혹은 q에 해당하는 문자)
(ex : '[a-zA-Z]' => 알파벳 소문자와 대문자 모두 포함)
(ex : '[a-z] ' => 알파벳 소문자로 시작하고 공백한 칸)
(ex : '[a-z] [0-9]' => 알파벳 소문자로 시작하고 공백한 칸에 숫자를 포함)
(ex : '[[:space:]]' 공백이 있는 모든 행)
- [^] : 해당 문자에 해당하지 않는 한 문자 (ex : ^[a-m]attern => a부터 m까지는 해당하지 않음)
regexp_like()
- 문자열의 특정 패턴 출력
- regexp_like(속성 or 문자열, 패턴)
- select * from human_list where regexp_like(age, '[1-25]');
: age가 1에서 25인 데이터 출력
- regexp_like(text, '[A-Z]{2}')
: 대문자가 연속으로 2글자 이상 있는 행
- regexp_like(text, '[[:upper:]]')
: 대문자가 포함되어 있는 모든 행
- regexp_like(text, '...r.')
: 4번째 자리에 r이 있는 행
regexp_replace()
- 패턴에 해당하는 문자열을 다른 문자로 대체
- regexp_replace(문자열, '[패턴]' , 대체할 문자)
- select regexp_replace('aaa bbb', 'a{3}','') from dual;
: REGEXP
------
bbb
: 'a{3}' = aaa
: '( ){1,}' = 1번 이상 반복되는 공백
: 'ab{3,5}' = aaabbbbb
'Database > MySQL' 카테고리의 다른 글
SQL - JOIN의 종류 (inner join, outer join) (0) | 2020.12.15 |
---|---|
SQL - 복수행 함수 (0) | 2020.12.15 |
SQL - 단일행 함수 (2) : 숫자 함수, 날짜 함수, 형변환 함수 (0) | 2020.12.14 |
SQL - 단일행 함수 (1) : 단일행 함수와 사용법 (0) | 2020.12.14 |
SQL - 데이터와 select (0) | 2020.12.14 |