반응형
반응형
반응형

데이터베이스 환경 설정.
 - show variables like 'char%';

테이블 환경 설정.(Collation 확인)
 - show table status from [데이터베이스 명] like '[테이블명]%';


환경 변수 설명.
character_set_client
 - 클라이언트로부터 전달되는 명령문용 문자 셋.
 - 클라이언트에서 문장이 떠날 때 해당 문장은 어떤 문자셋으로 이루어져있는가의 문제.

character_set_connection
 - 클라이언트에서 넘어온 문장을 서버에서는 어떤 문자셋을 기준으로 해석해야하는가의 문제.
 - 문자 셋 인트로듀서 (introducer)를 갖고 있지 않는 리터럴 (literal) 및 숫자-문자 (number-to-string) 변환을 위해 사용되는 문자 셋.
모든 문자 스트링 리터럴은 문자 셋과 콜레션을 가지고 있다.
문자 스트링 리터럴은 하나의 문자 셋 인트로듀서 (introducer)와 COLLATE 구문을 옵션으로 가질 수도 있다:
[_charset_name]'string' [COLLATE collation_name]

예문:
SELECT 'string';
SELECT _latin1'string';
SELECT _latin1'string' COLLATE latin1_danish_ci;
간단한 명령문 SELECT 'string'의 경우, 스트링은 character_set_connection 과 collation_connection 시스템 변수가 정의하는 문자 셋과 콜레션을 갖는다.
_charset_name 수식은 일반적으로 인트로듀서 (introducer)라고 불린다. 이것은 파서 (parser)에게 “뒤에 따라오는 스트링은 문자 셋 X를 사용한다”라고 전달한다. 과거에는 이로 인해 사용자들이 혼란이 있었기 때문에, 인트로듀서는 어떠한 변환 (conversion)도 일으키지 않는다는 점을 강조한다; 엄밀히 말한다면, 이것은 스트링 값을 변경하지 않는 신호 (signal)이다. 또한, 인트로듀서는 표준 헥스 리터럴 (hex literal)과 헥스 리터럴 표기법 (x'literal' 및 0xnnnn) 보다 앞선 규칙이다.

character_set_database
 - 디폴트 데이터 베이스가 사용하는 문자 셋. 서버는 디폴트 데이터 베이스가 변할 때 마다 이 변수를 설정한다.
   디폴트 데이터 베이스가 없다면, 이 변수는 character_set_server와 같은 값을 가지게 된다.

character_set_filesystem
 - 파일 시스템 문자 셋.
   이 변수는 LOAD DATA INFILE 과 SELECT ... INTO OUTFILE 명령문 그리고 LOAD_FILE() 함수와 같은 파일 이름을 참조하는 스트링 리터럴을 해석하는데 사용된다.
   이러한 파일 이름은 파일을 오픈 하려는 시도가 있기 전에 character_set_client에서 character_set_filesystem으로 변환된다. 디폴트 값은 binary인데, 이것은 이무런 변환이 없다는 것을 의미한다. 멀티 바이트 파일 이름을 사용할 수 있는 시스템에서는 서로 다른 값을 사용하도록 한다. 예를 들면, 시스템이 UTF-8를 사용해서 파일 이름을 표시한다면, character_set_filesytem을 'utf8'로 설정한다. 이 변수는 MySQL 5.1.6에서 추가 되었다.

character_set_results
 - 쿼리 결과를 클라이언트에 리턴하기 위해 사용되는 문자 셋.
 - 서버에서 클라이언트로 응답을 넘겨줄때 어떤 문자셋으로 넘겨야하는가의 문제.

character_set_server
 - 서버의 디폴트 문자 셋

character_set_system
 - T 식별자 (identifier)를 저장하기 위해 서버가 사용하는 문자 셋. 그 값은 항상 utf8이 된다.

character_sets_dir
 - 문자 셋이 설치되어 있는 디렉토리.



문자 셋이란....
문자 셋이란 심볼과 인코딩 (encoding)을 의미한다. 콜레션은 하나의 문자 셋에 있는 문자들을 비교하기 위한 규칙 셋을 의미한다. 가상의 문자 셋을 사용해서 설명을 보다 명확히 하도록 하자.
 
4개의 문자를 사용하는 알파벳이 있다고 가정하자: ‘A’, ‘B’, ‘a’, ‘b’. 각각의 문자에 숫자를 하나씩 부여한다: ‘A’ = 0, ‘B’ = 1, ‘a’ = 2, ‘b’ = 3. 문자 ‘A’는 심볼이고, 숫자 0 은 ‘A’에 대한 인코딩이며, 네 개의 문자를 각각의 인코딩과 결합한 것이 문자 셋이 되는 것이다.
 
두 개의 스트링 값을 비교하는 경우를 가정하자: ‘A’ 와 ‘B’. 가장 간단하게 비교하는 방법은 각 문자의 인코딩을 살펴 보는 것이다: ‘A’의 0 과 ‘B’의 1. 0 이 1보다 작기 때문에, ‘A’가 ‘B’보다 작다고 말할 수 있다. 이와 같은 방법이 문자 셋에 대해서 콜레션을 적용한 것이다. 콜레션은 규칙 셋이다 (이와 같은 경우에는 한 가지 규칙만 있음): “인코딩을 비교한다.” 위와 같이 콜레션 방법 중에 가장 간단한 방법을 우리는 바이너리 콜레션이라고 부른다.

반응형
반응형
반응형

'Database > Mysql' 카테고리의 다른 글

port 지정하여 접속하기.  (0) 2012.02.09
캐릭터셋 환경 변수  (3) 2010.12.01
MySQL Start, Stop  (0) 2010.10.29
[MySQL] java 에서 사용시 한글 깨짐현상 해결하기  (0) 2010.06.21
mysql reload.  (0) 2009.04.08
반응형
반응형

'Database > Oracle' 카테고리의 다른 글

캐릭터셋 확인.  (0) 2011.10.20
오라클 구동 방법  (0) 2011.01.05
[오라클] 버전 확인.  (0) 2009.08.31
with as 문.  (0) 2009.07.28
백업 받은 파일로 복구하기.  (1) 2009.07.28
반응형
MySQL Start, Stop 명령
- Start : mysql/bin/mysqld_safe &
- Stop : mysql/bin/mysqladmin --user=userid --password=pwd shutdown
(root권한을 가진 user계정으로 실행)
반응형

'Database > Mysql' 카테고리의 다른 글

캐릭터셋 환경 변수  (3) 2010.12.01
[Link] Managing Hierarchical Data in MySQL  (0) 2010.11.09
[MySQL] java 에서 사용시 한글 깨짐현상 해결하기  (0) 2010.06.21
mysql reload.  (0) 2009.04.08
between  (0) 2009.02.11
반응형

MySQL과 JAVA를 연동하기 위해서는 JDBC를 이용하여 할 수 있다.
이렇게 JAVA와 연동을 하여 데이터를 저장, 삭제, 검색 등을 할 수 있는데,
여기서 문제점이 발생했었다. 영문은 아무 탈 없이 저장이 되는데 유독 :한글: 입력 시 깨짐현상이 발생된다.

이 부분에 있어서 여러 사이트를 보고, 책도 보고 했지만 결론을 내지 못했었는데, 오늘 그 현상을 해결해버렸다.

※ Java는 기본적으로 모든 문자열을 Unicode로 취급한다. 하지만 MySQL은 기본적으로 ISO-8859-1(latin1)로 인식해버린다. 이런 차이점이 있기에 한글에 깨져보이는 것이다.

여러가지 방법이 있는데 2가지 방법을 소개하겠다.

1. MySQL의 my.ini 수정하기

현재 나는 MySQL Server 5.0을 사용하고 있다.
C드라이브에 깔려진 MySQL폴더에 보면 my.ini 라는 파일이 있을 것이다.
이 파일을 열어 보면 Client Section에
[mysql]
default-character-set=latin1 <- 이부분의 latin1값을 euckr으로 바꾼다.가끔 어떤 블로그를 보면 euc-kr로 하라고 하는데 그렇게 변경하고 난 후 MySQL을 실행하면 창이 그냥 죽어버리는것을 알 수 있다, 오류메시지를 보면 euc-kr을 컴파일 할 수 없다는 내용이다. 그 내용을 찾아 MySQL\share\charsets 폴더에 들어가면 index.xml 파일이 있는데 그 안에 euckr로 명시 되어 있다. 그러니 euckr로 설정하기 바란다.

그런 후 역시나 Server Section에서도
[mysql]
찾이보면 default-character-set=latin1 이 부분이 있을텐데 이것을 default-character-set=euckr로 바꾸면 된다.

이렇게 해주면 이제 MySQL에서 한글을 저장 할 수 있게 된다.

2. Java 코드로 변환하기

위에서 말했듯이 Java와 MySQL의 기본 문자열 형식이 틀리다.
그렇기에 Java 코드를 통해 변환을 해주면 된다.

아래와 같은 메소드를 만들어 사용하면 된다.

/// MySQL에서 불러온 데이터를 Java에서 사용할 수 있는 Unicode로 변환
private static String toUnicode(String str) throws Java.io.UnsupportedEncodingException{
    return new String(str.getBytes("ISO-8859-1"));
}

/// Java에서 저장 할 데이터를 MySQL에서 사용할 수 있는 Latin1로 변환
private static String toLatin1(String str) throws Java.io.UnsupportedEncodingException{
    return new String(str.getBytes(), "ISO-8859-1");


참고) 1번은 개인적으로 실패를 통해 얻은 것이며, 2번은 한빛미디어 - 뇌를 자극하는 Java 21장에서 참고했습니다.
참조 사이트 : http://acedon.egloos.com/1668830
반응형

'Database > Mysql' 카테고리의 다른 글

[Link] Managing Hierarchical Data in MySQL  (0) 2010.11.09
MySQL Start, Stop  (0) 2010.10.29
mysql reload.  (0) 2009.04.08
between  (0) 2009.02.11
UNIQUE KEY  (0) 2009.02.11
반응형

select * from v$version;

반응형

'Database > Oracle' 카테고리의 다른 글

오라클 구동 방법  (0) 2011.01.05
[Link] hierarchy query  (0) 2010.11.09
with as 문.  (0) 2009.07.28
백업 받은 파일로 복구하기.  (1) 2009.07.28
오라클 클라이언트 설치후 리스너 등록  (0) 2009.04.09
반응형

select 문을 가상 view 로 메모리에 저장.
보통 한방 쿼리에서 중복되는 select 문을 사용할때 이용.
(성능효과가 있을수 있음)


WITH
sss as
  (select '7' as s from dual),
eee as
  (select '8' as e from dual)
 
select s from sss where s not in (select e from eee)

반응형

'Database > Oracle' 카테고리의 다른 글

[Link] hierarchy query  (0) 2010.11.09
[오라클] 버전 확인.  (0) 2009.08.31
백업 받은 파일로 복구하기.  (1) 2009.07.28
오라클 클라이언트 설치후 리스너 등록  (0) 2009.04.09
사용자 추가  (2) 2009.04.09
반응형



백업 받아 놓은 파일 : backup.dmp
복구 실행 결과 로그 : log.txt 파일로 남김.

imp userid/passwd FILE=backup.dmp LOG=log.txt


반응형

'Database > Oracle' 카테고리의 다른 글

[오라클] 버전 확인.  (0) 2009.08.31
with as 문.  (0) 2009.07.28
오라클 클라이언트 설치후 리스너 등록  (0) 2009.04.09
사용자 추가  (2) 2009.04.09
테이블 사이즈 구하기  (0) 2009.02.11
반응형


Oracle Net Configuation Assistant


로컬 네트 서비스 이름 구성 -> 추가 -> 버전선택 -> 서비스 이름 작성(아래참조).

 -> TCP -> 호스트 이름 : 서버 주소, 표준 포트 번호 1521 사용 -> 로긴 테스트

 


: 서비스 이름 작성 방법.

오라클 설치 디렉토리/network/admin/listener.ora

에서 SID 또는 GLOBAL_DBNAME 을 입력한다.

반응형

'Database > Oracle' 카테고리의 다른 글

with as 문.  (0) 2009.07.28
백업 받은 파일로 복구하기.  (1) 2009.07.28
사용자 추가  (2) 2009.04.09
테이블 사이즈 구하기  (0) 2009.02.11
merge into = mysql 의 replace 와 비슷한 기능  (0) 2009.02.11
반응형


=======================================================================
============== 사용자 관리 : 관리자 권한으로 관리 =====================
=======================================================================

// 테이블 스페이스 생성.
CREATE TABLESPACE tablespace_name DATAFILE 'path/filename.dbf' SIZE (10M);

// 사용자 추가.
CREATE USER user_name IDENTIFIED BY password DEFAULT TABLESPACE tablespace_name
TEMPORARY TABLESPACE temp_name QUOTA UNLIMITED ON tablespace_name;

// 사용자 권한 추가.
GRANT CONNECT,RESOURCE TO user_name;

 

 

// 테이블 스페이스 보기.
SELECT * FROM DBA_TABLESPACES;

// 데이터 파일 보기.
SELECT * FROM DBA_DATA_FILES;

 

 


//테이블 스페이스 비활성화
ALTER TABLESPACE tablespace_name OFFLINE;

//테이블 스페이스 삭제
DROP TABLESPACE tablespace_name;

 

 

 

 

 


=======================================================================
============== 오라클 기본 사용법 =====================================
=======================================================================

// auto_increment 생성.
CREATE SEQUENCE sequence_name;

// 생성한 sequence 보기.
SELECT * FROM USER_SEQUENCES;

// sequence next 값 보기.
SELECT sequence_name.nextval FROM dual;


// auto_increment 사용.
INSERT INTO table_name VALUES(sequence_name.nextval, .....)

 

반응형

+ Recent posts