오늘 소개할 프로그램은 회사에서 사용하고있는 데이타베이스 관리자 통합 SQL 에디터 입니다. 


Oracle 클라이언트로 SQL Developer와 DBeaver를 함께 사용하고 있습니다. ^^;;


이 프로그램은 통합이라는 말에서 눈치를 채셨는지 모르겠지만, 


Oracle 뿐 아니라 JDBC를 지원하는 다양한 데이타베이스를 지원 합니다. 


홈페이지에서  소개 하고 있는 내용은 아래와 같습니다.



Free multi-platform database tool for developers, SQL programmers, database administrators and analysts. Supports all popular databases: MySQL, PostgreSQL, SQLite, Oracle, DB2, SQL Server, Sybase, Teradata, MongoDB, Cassandra, Redis, etc.




워낙 많은 데이타 베이스를 지원하고, 거기다가 요즘 유행하고 있는 NoSQL 데이타베이스도 지원 합니다.


그리고, 가장 중용한 것은 무료이고, 오픈 소스 입니다.  ^^;;



커뮤니티 에디션과, 엔터프라이즈 에디션 두가지 버전을 제공 하고 있습니다. 


엔터프라이즈 에디션도 공짜 입니다. ^^;;


차이 점은 NoSQL을 지원하느냐 안하느냐 입니다. ^^;;


필요에 따라 선택 하시면 됩니다.


그리고, 개발자 즉 Database를 잘 다루시는 분은 아시겠지만, JDBC는 직접 해당 벤더에서 다운로드해서 사용하셔야 합니다. ^^;;


끝으로 다운로드 받으실 수 있는 주소는 


http://dbeaver.jkiss.org/download/


에서 다운로드 하시면 됩니다. 


참고로 저는 NoSQL 잘 사용하지 않기 때문에 커뮤니티 에디션을 다운로드 했습니다. ^^;;






글제 목이 너무 거창한데요. 


이것두 다음 팁에 답변을 단 내용입니다.


질문의 내용은 문헌정보학과를 다니는 학생분인데 가면 컴퓨터 과목을 어떤 것을 배우고 데이터베이스는 어렵나요 라는 질문이었습니다. ^^;;


제가 생각해도 답변을 너무 잘 단것 같아서 ㅋㅋㅋ


아래와 같이 달았습니다.



문헌정보학과에서 컴퓨터를 어떤 것을 배우는지는 저도 잘 모르겠습니다만,


데이터베이스는 어렵지 않습니다. ^^;;


그냥, 노트나 용돈 기입장을 생각하시면 됩니다.


저 내용을 컴퓨터로 옮긴다고 생각하고, 노트를 뒤져서 검색할 것을 컴퓨터로 검색을 한다고 생각하시면 됩니다.


좀더 깊이 들어가면 많은 개념을 더 아셔야 하지만,


INSERT 입력

SELECT 조회/출력

UPDATE 수정

DELETE 삭제


이 네개만 잘 쓰시면, 데이터베이스는 쉽습니다. ^^;;


아까 이야기 한대로 용돈 기입장에 용돈 쓴것을 기록 한다 INSERT


몇월 몇일날 썼던 용돈은 얼마인지 찾는다(SELECT)


어제 쓴 내용중에 틀린 부분이 있어서 수정한다.(UPDATE)


오늘 쓴 내용중에 세번째 줄을 지운다.(DELETE)


입니다. ^^;;


교수님께 설명을 잘 들으시면, 될것으로 생각 됩니다.


감사합니다.


여기까지가 답변 글이구요.


조금 더 이야기를 하면, 


데이터베이스는 자료를 다루는  기술과 그 자료를 저장하고 있는 저장소를 함게 이르는 말입니다.


그래서 우선 데이터베이스 서버로 많이 쓰이는 것이


Oracle - 상용입니다.


MySQL - 무료도 되고 상용도 됩니다.


MariaDB - 무료 이지만, 유료로 서비스를 받으실 수 있습니다. MySQL과 동일합니다.  ^^;; 심지어 서로 클라언트가 그대로 호환 됩니다. 


IBM DB2 - 상용입니다.


PostgreSQL - 무료도 되고 상용도 됩니다.


MSSQL - 상용입니다.


위 까지는 외국에서 만들어져 있는 것들이구요.


Cubrid 라는 국산 DB가 있습니다. 마찬가지로 무료와 유료 정책을 함께 가지고 있습니다.


다른 데이터베이스도 있겠지만, 제가 써본 녀석이라서 ^^;


즐거운 하루 되십시오.










우선 문자열을 날자(날짜)로 바꾸는 함수는 TO_DATE로 아래 문서를 참조 하십시오.



http://talkit.tistory.com/346



오늘 설명할 함수는 날짜나 숫자를 문자열로 바꾸는 함수이다.


기본적인 사용법은 



TO_CHAR(날자또는숫자[,형식]);



우선 숫자형일 때는 


9 : 숫자지만, 빈자리를 공백으로 채움.

0 : 숫자지만, 빈자리를 0으로 채움.

, : 천단위의 콤마 (외국의 경우 소수점 일 수 있음.)

. : 소숫점 (외국의 경우 천단위를 나타낼 수 있음.)


실제로 123456을 문자열로 치환해 보면,


SELECT TO_CHAR(123456,'999,999,999,999') FROM DUAL


이렇게 하시면 


123,456 이라는 결과를 얻을 수 있습니다.


숫자를 이용해서  PK등을 만들어야 할때 LPAD를 사용해도 되겠지만,


SELECT TO_CHAR(12345, '00000000') FROM DUAL


이렇게 하면


00012345 라는 결과를 얻을 수 있습니다.



이번에는 날짜를 문자열로 치환할때 사용하는 형식 입니다.


YYYY 년

RRRR 년

MM 월

DD 일

HH 시간(12시)

HH24 시간(24시)

MI 분

SS 초


의 형식을 이용해서 원하는 형식으로 치환 할 수 있습니다.


MEMBER Table의 REG_DT 라는 필드가 날짜 형일때 다음과 같이 사용할 수 있습니다.


SELECT TO_CHAR(REG_DT, 'YYYYMMDD HH24:MI:SS') FROM MEMBER;


2017010 09:09:09 식의 결과를 얻을 수 있습니다.



즐거운 한주 되십시오.




ORACLE(오라클)에는 날짜를 표시하는 형이 DATE 형 입니다. 


그런데, 문자열로도 날짜를 표시 합니다. 


이때 해당 날짜에서 몇일을 뺀다 든지, 몇일을 더한다든지 또는 몇시간을 빼려면 어떻게 해야할까요.


가장 좋은 방법은 DATE 형으로 바꿔서 DATE 연산을 하는 것이 최선이겠지요 ^^


그래서 사용하는 함수가 TO_DATE 입니다.


사용법은 


TO_DATE(문자열,날짜패턴) 


입니다.


여기서 문자열은 '20161010 11:11:11' 같은 문자로 된 년월일시분초 정보입니다.


날짜 패턴은


YYYY : 4자리 년도


MM : 2자리 월


DD : 2자리 일


HH24 : 24시간 단위 시간


MI : 분


SS : 초


등입니다. 


좀 더 상세 한 내용은 https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm#i170559 URL에서 확인 하실 수 있습니다. 



실제 위의 문자열을 TO_DATE로 DATE 형으로 변환해 보면 아래와 같습니다. 


SELECT TO_DATE('20161010 11:11:11' , 'YYYYMMDD HH24:MI:SS') FROM DUAL


로 하시면 됩니다.


MySQL STR_TO_DATE 함수는 http://talkit.tistory.com/268 을 참조 하시면 됩니다.


감사합니다.








오랫만에 블로그에서 글을 씁니다.


C나 PHP의 경우는 SUBSTR 함수가 문자열의 시작값이 0 입니다.


하지만, 데이타베이스의 경우 보통 ORACLE, MySQL 등에서 사용할 때는 1부터 시작 합니다.



SUBSTR(문자열,시작 Index[, 글자수]);


기본 적인 사용 방법은 위와 같습니다.


저기서 글자 수 넣지 않으셔도 됩니다.


실제로 사용을 해보면,



SELECT SUBSTR('가야태자의IT이야기', 1) FROM DUAL 


위와 같이 하면 모든 문자열을 다 가져 옵니다.



SELECT SUBSTR('가야태자의IT이야', 2,2) FROM DUAL 


두번째 자리부터 2자리를 가져 옵니다.


야태

를 뱉습니다. 


끝으로 시작 인덱스를 -로 넣으셔도 됩니다. 그러면 뒤에서 그 자리수만큰 가져 옵니다.


SELECT SUBSTR('가야태자의IT이야', -3) FROM DUAL 


이렇게 하시면 결과 값은 

   이야기 

를 뱉습니다.


즐거운 하루 되십시오.


감사합니다.






이번에는 CUBRID를 사용하는 프로젝트에서 NULL 처리할  일이 있어서 적어 둡니다.


CUBRID 의 경우 


IFNULL 을 사용할 수 있습니다.


IFNULL(필드명 또는 값, NUL일때원하는표현)


IFNULL(sample, 0)


sample 이라는 필드가 NULL이면 0으로 표현 입니다.


그리고 또한가지 


COALESCE(필드명 또는 값, NULL일때원하는표현)


COALESCE(sample,0)


IFNULL과 동일한 기능입니다.


그리고 CUBRID 외에 다른 데이터 베이스들은 


MySQL 

ifnull(필드,처리할 값)


Oralce
NVL(필드,처리할 값)


MSSQL

ISNULL(필드,처리할 값)

MySQL과 Oracle MSSQL에서 각각 NULL처리를 담당하는 함수들입니다.

전 주로 오라클을 써서 NVL로 알았는데요

다 다르네용 T.T


ADODB를 사용하시는 분들은 다 아시겠지만,

제가 ADODB를 잘 사용하지 않아서 적어 둡니다.

어제 오늘 삽질을 좀 했거든용

adFloat라는 DataType이 없네용

T.T

아래 표에 따르면 adDouble로 변경해 주어야 합니다.


DataType Enum Value Access SQLServer Oracle
adBigInt 20   BigInt (SQL Server 2000 +)  
adBinary 128   Binary
TimeStamp
Raw *
adBoolean 11 YesNo Bit  
adChar 129   Char Char
adCurrency 6 Currency Money
SmallMoney
 
adDate 7 Date DateTime  
adDBTimeStamp 135 DateTime (Access 97 (ODBC)) DateTime
SmallDateTime
Date
adDecimal 14     Decimal *
adDouble 5 Double Float Float
adGUID 72 ReplicationID (Access 97 (OLEDB)), (Access 2000 (OLEDB)) UniqueIdentifier (SQL Server 7.0 +)  
adIDispatch 9      
adInteger 3 AutoNumber
Integer
Long
Identity (SQL Server 6.5)
Int
 
Int *
adLongVarBinary 205 OLEObject Image Long Raw *
Blob (Oracle 8.1.x)
adLongVarChar 201 Memo (Access 97)
Hyperlink (Access 97)
Text Long *
Clob (Oracle 8.1.x)
adLongVarWChar 203 Memo (Access 2000 (OLEDB))
Hyperlink (Access 2000 (OLEDB))
NText (SQL Server 7.0 +) NClob (Oracle 8.1.x)
adNumeric 131 Decimal (Access 2000 (OLEDB)) Decimal
Numeric
Decimal
Integer
Number
SmallInt
adSingle 4 Single Real  
adSmallInt 2 Integer SmallInt  
adUnsignedTinyInt 17 Byte TinyInt  
adVarBinary 204 ReplicationID (Access 97) VarBinary  
adVarChar 200 Text (Access 97) VarChar VarChar
adVariant 12   Sql_Variant (SQL Server 2000 +) VarChar2
adVarWChar 202 Text (Access 2000 (OLEDB)) NVarChar (SQL Server 7.0 +) NVarChar2
adWChar 130   NChar (SQL Server 7.0 +)  

* In Oracle 8.0.x - decimal and int are equal to number and number(10).


출처 - http://www.w3schools.com/ADO/ado_datatypes.asp

MySQL

ifnull(필드,처리할 값)


Oralce
NVL(필드,처리할 값)


MSSQL

ISNULL(필드,처리할 값)

MySQL과 Oracle MSSQL에서 각각 NULL처리를 담당하는 함수들입니다.

전 주로 오라클을 써서 NVL로 알았는데요

다 다르네용 T.T




오랫만에 데이타베이스 분류에 글을 쓰네요 ^^;;

MSSQL MySQL Oracle을 번갈아 가면서 쓰다보니

햇깔리는 경우가 있어서 적어 둡니다. ^^;;



MSSQL

SELECT  필드명 + 필드명 + 필드명 FROM 테이블명

SELECT  필드명 +'내용'+ 필드명 FROM 테이블명

MySQL

SELECT CONCAT(필드명,필드명,필드명) FROM 테이블명

SELECT CONCAT(필드명,'내용', 필드명) FROM  테이블명

ORACLE

SELECT 필드명 || 필드명 || 필드명 FROM 테이블명

SELECT 필드명 || '내용' || 필드명 FROM 테이블명


오늘도 한 3시간 삽질을 했습니다.

프로그램을 한본 짰는데....

목록 프로그램인데

목록에 DATA가 안나오는 겁니다. ^^;;

T.T

분명히 smartSQL plus에서

DATA를 입력 했는데 말이죠

그런데 한 2시간쯤 뒤에

밑에 직원이

과장님 테이블 만들어 주세요

그리고, 값두 좀 넣어 주세요

라고 이야기를 했는데


그래서 제가 한것 하고 똑같이

값을 넣었습니다. ^^;;


그쪽에서도 안나온다는 것이 아니겠어요

혹시나 해서

smartSQL plus에서

SQL 창하나 더 열고

Commit;



이제 보인다는 겁니다.

혹시나 해서 제 목록 프로그램으로 갔습니다.



보이는 겁니다.


T.T

맨날 MySQL에 Informix만 다루다가

오랫만에 오라클을 다뤘더니

Commit

잊지 말자 Commit




'DATABASE > ORACLE' 카테고리의 다른 글

[ORACLE] 문자열 길이를 구해보자 LENGTH  (0) 2016.12.07
[ORACLE] 문자열을 잘라보자 SUBSTR  (0) 2016.12.06
[삽질기] 잊지말자 Commit 명령  (0) 2010.01.15
[ORACLE] LPAD 함수  (2) 2009.07.24
[ORACLE] RPAD 함수  (0) 2009.05.24
[ORACLE] 트리구조 만들기  (0) 2009.05.23
2009/05/24 - [DATABASE/ORACLE] - [ORACLE] RPAD 함수


사용법 : LPAD(변수,길이,변형자);

예)  SELECT LPAD('KOREA', 8, '*') FROM DUAL;
RESULT >>>>>>
***KOREA

좌측에 자리수 만큼 채워줍니다.

RPAD에서 써먹었던 예구용 ^^;;

LPAD는 솔직히

저 예 보다는

예2) SELECT LPAD('1', 8,'0') FROM DUAL
RESULT >>>>>>
00000001

이런식으로 써먹기 위한 것입니다. ^^;;

보통 제어번호 같은거 만들때 시퀀스로 순번을 만들고

char로 값을 채워넣는데 그때 0을 채워 주려면 프로그램을 써야 하지만,

DB에서 lpad를 사용하면 끝입니다.

^^;;

가끔 까먹어서 ^^;;

그리고, 이 글은 ㅋㅋㅋ

낚시성 글이기도 합니다.

요즘 유입 키워드에 RPAD가 있어서 ^^;;

ㅎㅎㅎ



'DATABASE > ORACLE' 카테고리의 다른 글

[ORACLE] 문자열을 잘라보자 SUBSTR  (0) 2016.12.06
[삽질기] 잊지말자 Commit 명령  (0) 2010.01.15
[ORACLE] LPAD 함수  (2) 2009.07.24
[ORACLE] RPAD 함수  (0) 2009.05.24
[ORACLE] 트리구조 만들기  (0) 2009.05.23
[ORACLE] 오라클 계정 만들기  (0) 2009.05.21
  1. SID 2009.12.23 18:21 신고

    LPAD, RPAD 쓸일이 갑자기 생겼는데..
    잘보고 갑니다 ㅎ


1호점에서 퍼왔습니다.

사용법 : RPAD(변수,길이,변형자);

예)  SELECT RPAD('KOREA', 8, '*') FROM DUAL;
RESULT >>>>>>
KOREA***

우측에 자리수 만큼 채워줍니다.

가끔 까먹어서 ^^;;

'DATABASE > ORACLE' 카테고리의 다른 글

[삽질기] 잊지말자 Commit 명령  (0) 2010.01.15
[ORACLE] LPAD 함수  (2) 2009.07.24
[ORACLE] RPAD 함수  (0) 2009.05.24
[ORACLE] 트리구조 만들기  (0) 2009.05.23
[ORACLE] 오라클 계정 만들기  (0) 2009.05.21
ORACLE scott 계정 활성화 하기  (0) 2009.05.20

1호점에서 가져왔습니다.

select level, lpad('>', level*2) || group_nm, group_exp
  from tpc_dept
start with dept_cd in (select dept_cd from tpc_dept where pre_dept_cd = '00000')
connect by  prior dept_cd = pre_dept_cd

오라클에서 지원하는 트리구조 함수 START WITH ~ CONNECT BY PRIOR  ~

^^;;

오늘 업무하다가 고객사의 과장님께 들은 것을 글로 옮겨 적는다. ^^;;

'DATABASE > ORACLE' 카테고리의 다른 글

[ORACLE] LPAD 함수  (2) 2009.07.24
[ORACLE] RPAD 함수  (0) 2009.05.24
[ORACLE] 트리구조 만들기  (0) 2009.05.23
[ORACLE] 오라클 계정 만들기  (0) 2009.05.21
ORACLE scott 계정 활성화 하기  (0) 2009.05.20
[ORACLE] 테이블 구조만 백업 하기  (0) 2009.05.19

1호점에서 가져왔습니다.

ORACLE 새로운 계정 만들기

0. ORACLE sysdba 아이디로 접속하기
서버에 접속후에 oracle 계정으로 전환한다.

su - oracle

sqlplus로 sysdba 계정에 접속한다.

sqlplus sys/oracle[@orcl4] "AS SYSDBA"

1. 계정의 테이블 스페이스 생성
명령어
create tablespace [tablespace_name]
datafile '/home/oracle/oradata/DANBEE/[file_name].dbf' size 500m;

예)

create tablespace jw1 datafile='/home/oracle/oracle/oradata/orcl4/jw1.dbf' size 500m;

저기서 orcl4와 jw1 을 원하는대로 바꾸면 됨

2. 오라클 유저 만들기
명령어
CREATE USER [user_name]
IDENTIFIED BY [password]
DEFAULT TABLESPACE [tablespace_name]
TEMPORARY TABLESPACE TEMP;
예)

CREATE USER jw1 IDENTIFIED BY  jw1 DEFAULT TABLESPACE jw1 TEMPORARY  TABLESPACE TEMP;


 

3. 생성한 USER에 권한주기

GRANT connect, resource, dba TO [user_name];

예)
GRANT connect, resource, dba TO jw1

4. 생성한 USER로 ORACLE에 접속하기

sqlplus jw1/jw1[@orcl4]

SQL>

프롬프트가 나오면 USER 생성에 성공한 것이다.

참고 문서 : http://kin.naver.com/db/detail.php?d1id=1&dir_id=10110&docid=918052

'DATABASE > ORACLE' 카테고리의 다른 글

[ORACLE] RPAD 함수  (0) 2009.05.24
[ORACLE] 트리구조 만들기  (0) 2009.05.23
[ORACLE] 오라클 계정 만들기  (0) 2009.05.21
ORACLE scott 계정 활성화 하기  (0) 2009.05.20
[ORACLE] 테이블 구조만 백업 하기  (0) 2009.05.19
[ORACLE] ORACLE Split 함수(Function)  (0) 2009.05.18
1호점에서 가져왔습니다.

 alter user scott identified by tiger account unlock;


오라클사는 보안 때문에 scott 계정을 비활성화 시켜 두었다

위와 같은 명령어를 사용하면 활성화 된 계정으로 사용할 수 있다.

tiger는 다른 비밀번호로 변경하면 된다. ^^;;

'DATABASE > ORACLE' 카테고리의 다른 글

[ORACLE] 트리구조 만들기  (0) 2009.05.23
[ORACLE] 오라클 계정 만들기  (0) 2009.05.21
ORACLE scott 계정 활성화 하기  (0) 2009.05.20
[ORACLE] 테이블 구조만 백업 하기  (0) 2009.05.19
[ORACLE] ORACLE Split 함수(Function)  (0) 2009.05.18
[ORACLE] 백업/복원하기  (0) 2009.05.17

1호점에서 가져왔습니다.

이문서는 << [ORACLE] 백업/복원하기 >> 에 추가 하는 문서 입니다.

오라클의 테이블 구조만 백업 하기 입니다.

exp userid=아이디/비밀번호@SID file=덤프파일명 rows=n log=로그파일명

이렇게 하면 DATA 없이 테이블 구조만 백업 됩니다.

'DATABASE > ORACLE' 카테고리의 다른 글

[ORACLE] 트리구조 만들기  (0) 2009.05.23
[ORACLE] 오라클 계정 만들기  (0) 2009.05.21
ORACLE scott 계정 활성화 하기  (0) 2009.05.20
[ORACLE] 테이블 구조만 백업 하기  (0) 2009.05.19
[ORACLE] ORACLE Split 함수(Function)  (0) 2009.05.18
[ORACLE] 백업/복원하기  (0) 2009.05.17
1호점에서 가져왔습니다.

우선 Table 타입을 선언합니다.

create or replace type split_tbl as table of varchar2(32767);
/

함수를 선언합니다.

create or replace function split
(
  p_list varchar2,
  p_del varchar2
) return split_tbl pipelined
is
  l_idx    pls_integer;
  l_list    varchar2(32767) := p_list;
  l_value    varchar2(32767);
begin
  loop
       l_idx := instr(l_list,p_del);
       if l_idx > 0 then
           pipe row(substr(l_list,1,l_idx-1));
           l_list := substr(l_list,l_idx+length(p_del));

       else
           pipe row(l_list);
           exit;
       end if;
  end loop;
  return;
end split;
/

사용법은

select * from table(split('1 2 3 4 5 6 7 8 9 10', ' '));

입니다.

출처 : http://builder.com.com/5100-6388-5259821.html

'DATABASE > ORACLE' 카테고리의 다른 글

[ORACLE] 트리구조 만들기  (0) 2009.05.23
[ORACLE] 오라클 계정 만들기  (0) 2009.05.21
ORACLE scott 계정 활성화 하기  (0) 2009.05.20
[ORACLE] 테이블 구조만 백업 하기  (0) 2009.05.19
[ORACLE] ORACLE Split 함수(Function)  (0) 2009.05.18
[ORACLE] 백업/복원하기  (0) 2009.05.17
1호점에서 옮겨 왔습니다.

오라클을 데이타 베이스로 사용하면서 백업하고 복원하는 방법입니다.

1. 백업하기 exp userid=사용자명/비밀번호@sid file=filename_date.dmp

  예) exp userid = scott/tiger@orcl file=scott_20070331.dmp

2 복원하기 imp userid=사용자명/비밀번호@sid file=filename_date.dmp [FULL=Y] [TABLE=table name]

  예) imp userid=scott/tiger@orcl file=scott_20070331.dmp FULL=Y

'DATABASE > ORACLE' 카테고리의 다른 글

[ORACLE] 트리구조 만들기  (0) 2009.05.23
[ORACLE] 오라클 계정 만들기  (0) 2009.05.21
ORACLE scott 계정 활성화 하기  (0) 2009.05.20
[ORACLE] 테이블 구조만 백업 하기  (0) 2009.05.19
[ORACLE] ORACLE Split 함수(Function)  (0) 2009.05.18
[ORACLE] 백업/복원하기  (0) 2009.05.17

+ Recent posts

티스토리 툴바