select version();

 

블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요

SELECT  regexp_substr(:ARG, '[^,]+',1, LEVEL) TXT -- ,가 아닌 String을 표시한다. LEVEL로 순서를 올린다.
FROM DUAL
CONNECT BY LEVEL <= length(regexp_replace(:ARG, '[^,]+',''))+1 
--글자에서 ,가 아닌 글자를 없에준다. ,의 갯수를 세어주고 1개를 더한다

 

블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요

SELECT  DECODE(
        REGEXP_COUNT( 
        :ARG
        , '^[0-9]{2}(?0[1-9]|1[0-2])(?0[1-9]|[1,2][0-9]|3[0-1])[1-4][0-9]{4}[1-9]['||LASTDATA||']$'
        ) 
        
        , '1'
        , 'TRUE'
        , '0'
        , 'FALSE'
        ) JUMIN
        FROM ( 
SELECT 
        11 - MOD(
        MIN (DECODE(LEVELK , '1', NUM * 2)) 
       + MIN (DECODE(LEVELK , '2', NUM * 3)) 
       + MIN (DECODE(LEVELK , '3', NUM * 4)) 
       + MIN (DECODE(LEVELK , '4', NUM * 5)) 
       + MIN (DECODE(LEVELK , '5', NUM * 6)) 
       + MIN (DECODE(LEVELK , '6', NUM * 7)) 
       + MIN (DECODE(LEVELK , '7', NUM * 8)) 
       + MIN (DECODE(LEVELK , '8', NUM * 9)) 
       + MIN (DECODE(LEVELK , '9', NUM * 2)) 
       + MIN (DECODE(LEVELK , '10', NUM * 3)) 
       + MIN (DECODE(LEVELK , '11', NUM * 4)) 
       + MIN (DECODE(LEVELK , '12', NUM * 5))  
       , 11 ) LASTDATA
FROM
( SELECT SUBSTR(:ARG, LEVEL , 1) NUM
        , LEVEL LEVELK
        , 'ORION' GRP
        FROM DUAL
       CONNECT BY LEVEL <= LENGTH(:ARG)
)
GROUP BY GRP
)

 

 

주민등록번호 오라클 처리 

블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요

문자만추출

 SELECT REGEXP_REPLACE(c, '[0-9]') 

 

숫자만추출

SELECT REGEXP_REPLACE(c, '[^0-9]')

 

TRANSLATE 방식

 

SELECT TRANSLATE ( '안1녕2하3세4요5 6H7 입8니9다' , '0123456789',' ' )  
        FROM DUAL

블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요

 

SELECT ABS(0)
        , FLOOR(3.9) --버림
        , CEIL(3.2) --올림
        , POWER(2,3) -- 제곱
        , SIGN(-9)
        , SIGN(4)
        , SIGN(0) -- 부호판정, -1 1 0
        , SQRT(7) -- 제곱근
        , TRUNC(1.64) -- 지정한 소수점 이하를 절삭
        , TRUNC(1.64, 1)
        , TRUNC(141.64, -2) --마이너스의 경우 정수의 자리수, 4를 절삭됨
        , TRUNC(SYSDATE, 'D')
        , TRUNC(SYSDATE, 'DD') 
        , TO_CHAR(SYSDATE, 'YYYYMMDD HH:SS' )
        , TO_CHAR(TRUNC(SYSDATE, 'DD'), 'YYYYMMDD HH:SS' )
        , TRUNC(SYSDATE, 'MM') --일까지 절삭
        , TRUNC(SYSDATE, 'YYYY') --월까지 절삭
        , TRUNC(TRUNC(SYSDATE, 'YYYY'), 'D')
        
        FROM DUAL

 

       
SELECT ADD_MONTHS(SYSDATE, 2)
       , LAST_DAY(SYSDATE)
       , MONTHS_BETWEEN(SYSDATE, TO_DATE('20190201',  'YYYYMMDD'))
       , FLOOR (MONTHS_BETWEEN(SYSDATE, TO_DATE('20190201',  'YYYYMMDD')))+1 --두달의 차
       , NEXT_DAY(SYSDATE, 2) -- 다음주 월요일 
       , EXTRACT(HOUR FROM SYSTIMESTAMP) +9 --GMT +9 : KST
       , TO_CHAR(SYSDATE + (INTERVAL '2' HOUR),'YYYYMMDD HH:SS')
       , TO_CHAR(SYSDATE, 'YYYYMMDD HH24:SS') 현재시각 -- 현재시각
       ,  TO_CHAR(SYSDATE + 1,'YYYYMMDD HH24:SS')
       ,  TO_CHAR(SYSDATE + 2/24 ,'YYYYMMDD HH24:SS') -- HH24:SS로 안보면 이상하다 
       ,  TO_CHAR(SYSDATE + 3/24 ,'YYYYMMDD HH24:SS')
        FROM DUAL
블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요

오라클에서 랜덤값(소수값, 1.9까지 안에서 ) : select (dbms_random.value(1,9) from dual

 

정수 랜덤값 (1,9까지) : select trunc(dbms_random.value(1,9) from dual

 

 

블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요

테이블명: 테이블이름

 

* select

 

select * from tablename

 

* update

 

update 테이블명 set 컬럼이름 = ?

where 컬럼이름 = ?

 

2개인 경우

update 테이블명 

set 컬럼이름 = ?, 

컬럼이름 = ?

where 컬럼이름 = ?

 

혹은 

 

update 테이블명 set A.컬럼이름 = (select 컬럼이름 from 테이블명2 B where B.컬럼이름 = A.컬럼이름 )

 

*delete

 

FROM 테이블명
WHERE 조건;

 

*create

 

create table 테이블명

( 컬럼글자 varchar(255), 컬럼숫자 INT , 컬럼날짜 DATE , 컬럼날짜기본데이터 DATE DEFAULT SYSDATE );

 

* insert

 

INSERT INTO 테이블명(컬럼1, 컬럼2, 컬럼3, ...)
VALUES(데이터1, 데이터2, 데이터3, ...)

 

* drop

 

DROP 테이블명

블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요

 - 단방향: md5, sha-1


단방향의 경우 사용한다.


 - 사용방법

md5('string')

sha1('string')


방식으로 저장한다.


이 경우 복호화(암호화된 것을 다시 오리지날로 복구하는것)는 안되기 때문에 true false로 처리를 한다.

지금은 취약점이 있는 관계(요즘 컴퓨터로 1분이면 뚫어버린다)로 패스워드 저장시 이건 사용하면 안된다.  다른용도로는 사용해도 되지만.


 - 양방향 : AES_ENCRYPT, AES_DECRYPT


- AES_ENCRYPT(암호화)
  : INSERT INTO 테이블명 VALUES (HEX(AES_ENCRYPT('문자열', '암호화 키')));
- AES_DECRYPT(복호화)
  : SELECT AES_DECRYPT(UNHEX(필드명), '암호화 키') FROM 테이블명;


암호화 키는 특정한 이름으로 정하면 된다. 복호화 암호화 둘다 같은 암호화 키로 지정을 해야 풀린다.


블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요


목적


간단함. mysql 보다 더 빠른 입출력때는 메모리에서 올려서 사용한다 이게 목적

캐시용으로 쓰거나 특히 모바일게임의 경우 유저가 금방 사라지는 일이 많아서 그쪽으로도 쓴다고 함.


암튼 mysql redis 조합은 요즘 실무에 많이 쓰는듯.

(중국에서는 아예 바이너리로 DB안사용하고 때려 박는다는데 뭐 그건 알바가 아니고.)


설치


윈도우용은 있긴 있는데 버전도 한참뒤고 비 공식이니 그냥 VirtualBox에 우분투 설치해서 Redis 설치하는게 답이다.

다들 그렇게 연습함. 



# sudo apt-get update sudo 

# apt-get install build-essential tcl


일단 기초적으로 업데이트를 하고


# apt-get install redis-server


이렇게 해서 설치.


설정 파일 보기는 다음과 같다.

# /etc/init.d/redis-server stop

# vi /etc/redis/redis.conf



no config file specified redis 에러시

-> # /etc/init.d/redis-server stop


보통 이미 실행되고 있으면 저런 에러가 뜬다.
https://stackoverflow.com/questions/14738512/redis-server-does-not-start


블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요

https://dev.mysql.com/downloads/windows/installer/



connector 받기

https://dev.mysql.com/downloads/connector/j/5.1.html



보통은 SERVER로 설치 



접속시


mysql -u 사용자명 -p

mysql -u root -p






블로그 이미지

LunaStratos

Stratosphere Stream

댓글을 달아 주세요