--함수 
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 내용을 들으면서 필기하였습니다.  

+ Recent posts