리눅스, 자료실, 성경검색, 추억의게임, 고전게임, 오락실게임, rootman, http://www.rootman.co.kr
* 18.204.48.40 *
| Home | Profile | Linux | 자료실 | zabbix | Mysql 5.6 | 갤러리 | 성경검색 | 해피니스 | 자유게시판 | 게시물검색 | L | O | R |    

 
[기초강좌] [SQL] 문자열조작
 작성자 : rootman
Date : 2002-04-10 17:46  |  Hit : 7,285  
<b>문자열 조작</b>


<b>1) LENGTH </b>
  문자열 길이 결정
  예) SELECT ename, LENGTH( ename ) FROM BONUS ;
    --> ename의 문자열의 길이를 Return합니다.


<b>2) SUBSTR </b>
  문자열 추출
  사용법 : SUBSTR (string, starting point, number of character)
  예) SELECT ename, SUBSTR( ename, 1, 6) FROM BONUS ;
  --> ename이 marcellino라면 marcel을 Return합니다.
  SUBSTR 내에 함수를 사용할 수 있습니다.
  예) SELECT SUBSTR( ename, LENGTH( ename ) - 6, 7) FROM BONUS ;
  --> ename이 marcellino라면 "length( ename ) - 6 "는 "4"이므로,
      cellino를 Return합니다.


<b>3) REPLACE </b>
  문자열 교체
  사용법 : REPLACE (string, existing string, replacement string)
  예) UPDATE std_db SET remark = REPLACE( remark, 'Inch (키)', 'cm (키)' ) ;
  --> Inch라는 문자열을 모두 cm로 바꾸게 됩니다.
 
  문자열 삭제
  사용법 : REPLACE (string, removement string)
  예) UPDATE std_dbSET remark = REPLACE( remark, 'marcel' );
  --> std_db TABLE의 remark 열에서 marcel이라는 학생의 이름이 삭제됩니다.


<b>4) RTRIM, LTRIM </b>
  공백 제거
  RTRIM : 문자열 내의 후미 공백( Trailing Blank ) 제거
  LTRIM : 문자열 내의 선행 공백( Leading Blank ) 제거
  사용법 : RTRIM (column name), LTRIM (column name)
  예) UPDATE std_db SET ename = RTRIM( ename ) WHERE ename like '%' ;
 
  문자열 제거
  사용법 : RTRIM (column name, 트리밍될 문자열), LTRIM (column name, 트리밍될 문자열)
  예) UPDATE std_db SET remark = LTRIM( remark, 'abc' ) ;
  --> a, b, c가 문자열의 왼쪽에 있다면 a, b, c를 제거합니다.
      RTRIM을 이용한다면 후미 문자를 제거할 수 있습니다.
  위의 후미 공백 제거 SQL 예에서 WHERE절에 like %를 사용했는데,
  이것이 열의 후미에 공백이 있는지 없는지 검사하는 방법중의 하나입니다.


<b>5) LPAD, RPAD  </b>
  원하는 문자열을 선행이나 후미에 Padding
  LPAD : 문자열을 선행에 Padding
  RPAD : 문자열을 후미에 Padding
  사용법 : LPAD (string, n, pad_string), RPAD (string, n, pad_string)
  예) SELECT LPAD( ename, 10 ) FROM std_db ;
  --> 공백을 왼쪽에 Padding합니다.
      SELECT LPAD( remark, LENGTH( remark ) + 20,
    'I would like to say ' ) FROM std_db ;
  --> 열의 왼쪽에 "I would like to say "라는 문자열을 추가합니다.


<b>6) INITCAP, LOWER, UPPER </b>
  INITCAP : 각 단어의 첫 번째 문자를 대문자로 변환
  LOWER : 모든 문자를 소문자로 변환
  UPPER : 모든 문자를 대문자로 변환
  사용법 : INITCAP (column name), LOWER (column name), UPPER (column name)
  예) SELECT UPPER( ename ) FROM std_db ;
  --> 모두 대문자로 디스플레이가 되겠죠? INITCAP, UPPER도 동일합니다.


<b>7) DECODE </b>
  암호화된 CODE를 서술할 때 사용한다...  고 해야하나요?
  사용법 : DECODE (expression, value1, returned value1 ... valueN,
  returned valueN, [default returned value] )
  예) SELECT ename, eng_score, kor_score,
            DECODE ( average,
                      'A', '90 ~ 100',
                      'B', '80 ~ 90',
                      'C', '70 ~ 80',
                      'D', '60 ~ 70',
                      'F', '0 ~ 60',
                      'Unknown Code' )
      FROM std_db ;
  --> 만약 average가 "A"이면 "90 ~ 100"이 디스플레이되고, "B"이면 "80 ~ 90"...
      이런 식으로 디스플레이하게 됩니다. 만약 "P" 등과 같이 정의되지 않은 문자가 오면
      "Unknown Code"를 Return하게 되죠.


<b>8) ASCII </b>
  한 개의 문자( 첫 번째 문자)를 ASCII 값으로 나타냅니다.
  사용법 : ASCII (char or varchar2 type column name )
  예) SELECT ASCII( ename ), ename FROM std_db ;
  --> ename의 첫 자를 ASCII값으로 변경합니다.
  만약 ename이 "Marcel"이면 "M"에 대한 ASCII 값인 "77"을 Return합니다.


<b>9) INSTR </b>
  특정 문자열을 포함한 COLUMN에서의 문자열 위치 찾기
  사용법 : INSTR (string1, string2, [starting position, [occurrence number]] )
  starting position : string1 내에서 검색을 시작할 위치
  occurrence number : string1 내에서 찾는 string2의 어커런스 수
  예) SELECT remark, INSTR( remark, 'marcel' ) FROM std_db ;
  --> std_db TABLE의 remark COLUMN에서 "marcel"의 첫 번째 어커런스를 Return한다.
  "marcel"을 포함하지 않은 COLUMN에 대해서는 "0"을 Return하게 된다.
  이 부분은 그냥 이런 게 있구나

 
 

Total. 645
번호 분류 제목 작성자 등록일 조회수
510 기초강좌 리눅스 쉘에서 html 메일 발송하기 rootman 01-27 7439
509 기초강좌 [ddos] 한 IP당 동시 접속량 제한과 자동차단 rootman 07-26 7434
508 Doc/Faq Fingerprinting을 이용한 80 포트(웹서버) 공격법들 (17) rootman 06-17 7428
507 기초강좌 하드디스크 온도 측정하기(smartctl 이용) rootman 12-31 7421
506 mysql [mysql] LOCK TABLES/UNLOCK TABLES rootman 12-22 7421
505 Doc/Faq Ethernet H/W 확인 및 설정 (46) rootman 10-15 7419
504 Doc/Faq [출처/linux.co.kr] 4/4 Sendmail의 보안 (47) rootman 03-14 7417
503 Shell 문자열 조각 대치(Substring Replacement) (16) rootman 10-16 7417
502 기초강좌 [dmraid] rootman 08-12 7396
501 qmail [qmail] qmail control 디렉터리 파일 설명 rootman 05-24 7362
500 qmail (스팸필터링) qmail + clamav 연동 rootman 06-03 7355
499 qmail [qmail] qq 451 crashed 오류 원인과 답 rootman 02-05 7350
498 php [php] 암호화 알고리즘 종류 루트맨 03-12 7318
497 windows tips [썬더버드] 모질라 썬더버드(Thunderbird) 백업과 복구 rootman 07-16 7315
496 Doc/Faq ucspi-tcp 란 무엇인가? (1) rootman 10-19 7310
 1  2  3  4  5  6  7  8  9  10    
AND OR