--함수
select substr('hello', 1,3) from dual;
select substrb('hello', 1,3) from dual;
select * from member;
select substrb(name, 4) from member;
select name, substr(birthday,6,2) month from member; --6번째부터 2글자만
select name, birthday from member;
select * from member where substr(phone,1,3) = '010'; -- 010인 사람들의 모든정보,
select * from member where phone like '010%';
select * from member where substr(birthday, 6,2) = '01' or substr(birthday, 6,2) = '12'; -- 좀 아님
select * from member where substr(birthday,6,2) in ('07','12');
select * from member where substr(birthday,6,2) not in ('07','12');
select * from (select * from member where substr(birthday,6,2) in ('07', '08', '09'))
where phone is null ;
select * from member where phone is null and substr(birthday, 6,2) in ('07', '08', '09');
select * from member;
update member set birthday='2020-12-12' where id = 'newlect';
--substr의 반대 문자열 합치는연산
select concat('김','길동') from dual;
select trim(' hi ') from dual;
--대소문자 구분없이 조회할때 쓰인다
select upper('ewf') from dual;
select lower('REF') from dual;
--replace
select replace('where we are', 'we', 'hey') from dual;
select translate('where he is', 'he', 'you') from dual;
select birthday from member;
select * from notice;
select writer_id, replace(title, ' ', '') from notice;
select * from member;
select LPAD('hello', 3) from dual;
select LPAD('hello', 5, '0') from dual;
select LPAD('hello', 10, '0') from dual;
select Rpad('hello', 10, '0') from dual;
select lpad(select name from member, 3, '_') from member;
select Rpad(name, 6, '땡') from member;
select initcap('the mos important thing is ...') from dual;
select * from member;
select instr(phone, '-',1,2) from member;
select instr(phone,'-',1,2) - instr(phone, '-',1,1) -1 from member;
select substr(phone, 5, instr(phone, '-', 1, 2)-instr(phone,'-', 1, 1)-1) from member;
--절대값을 구하는 함수
select abs(35), abs(-10) from dual;
--음수 양수 알려줌
select sign(31123), sign(-4123), sign(0) from dual;
--숫자의 반올림
select round(234.2342342) from dual;
select round(12.432432,4) from dual;
--숫자의 제곱 제곱근
select power(2 ,5), sqrt(25) from dual;
select sysdate, current_date, systimestamp, current_timestamp from dual;
ALTER SYSTEM SET sysdate = current_date;
alter session set time_zone = '09:00';
alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
select extract(year from sysdate) ||'년' from dual;
select extract(day from sysdate) from dual;
select * from member where extract(month from regdate) in (2,3,11,12);
select * from member;
select add_months(sysdate, 1) from dual;
select * from member where add_months(sysdate, -6);
select * from member where add_months(sysdate, -6) < regdate;
select * from member where months_between(sysdate, regdate) < 6;
select months_between(sysdate, regdate) from member;
select sysdate from dual;
--요일 날자 출력
select next_day(sysdate, 'sat') from dual;
select last_day(sysdate) from dual;
select last_day(add_months(sysdate, 1)) from dual;
select to_char(1244) || 'hi' from dual;
select to_char(1244, '1232123133312') || 'hi' from dual;
select trim(to_char(1234567.438432, '9,999,999,999.99')) || 'won' from dual;
select to_char(sysdate, 'YY/MM/dd HH24:MI:SS') from dual;
select to_date('2012-01-29') from dual; -- error
select to_date('2012-01-29 12:11:03', 'YYYY-MM-DD HH:MI:SS') from dual;
--null일때 처리
select nvl(age,0) from member;
select age from member;
select trunc(age/10) * 10 from member; -- trunc소수점 날리기, 연령대별 출력
select nvl2(age, trunc(age/10) * 10, 0) from member;
select nullif(age,16) from member; -- 16살을 널로 만들겠다
--조건에 따라서 값 선택
select gender from member;
select decode(gender, '남성', 1,2) from member; --남성일 결우 1 아니면 2
select phone from member;
select decode(substr(phone,1,3),
'010','sk',
'','널입니다') from member;
select decode(substr(phone,1,3),
'010','sk',
'','널입니다',
'기타') || ',' || PHONE from member;
select phone from member;
위 내용은 유튜브 뉴렉쳐 www.youtube.com/user/newlec1 채널 oracle 내용을 들으면서 필기하였습니다.
'- 코딩 공부 > SQL' 카테고리의 다른 글
[ORACLE] NVL, COALESCE 의 NULL 처리 법 (0) | 2022.08.29 |
---|---|
Row Chaining, Row Migration 이해 (0) | 2022.08.26 |
DDL, DML, DCL 정리 (0) | 2022.08.16 |
[Oracle] 기본 개념, 명령어 정리 (0) | 2021.02.28 |
[Oracle] SQL이란 도대체 무엇인가? (0) | 2021.02.15 |