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

 
[기초강좌] [SQL] 문자열조작
 작성자 : rootman
Date : 2002-04-10 17:46  |  Hit : 7,987  
<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 windows tips 노트북(PC)을 무선 AP로 만들기 - ADHoc 사용 rootman 07-24 8378
509 Doc/Faq [제로보드] 자동글등록방지(광고글 방지) rootman 04-22 8369
508 Network [Catalyst2950] 인터페이스 일괄 구성 (interface) rootman 09-02 8349
507 php [php] URL 함수 목록 rootman 12-21 8338
506 php [php] (함수) mysql_escape_string rootman 01-13 8335
505 mysql [mysql] mysql error code (48) rootman 04-01 8323
504 Doc/Faq ulimit 사용법 (46) rootman 10-18 8316
503 php [php] 암호화 알고리즘 종류 루트맨 03-12 8274
502 mod_security [FAQ] hash dos rule #1 rootman 01-09 8260
501 windows tips Console로 원격 데스크톱 연결 rootman 08-20 8259
500 mysql [mysql] MySQL 한글 깨짐 문제에 대한 문자셋 설정 rootman 06-24 8244
499 Doc/Faq Ethernet H/W 확인 및 설정 (46) rootman 10-15 8227
498 기초강좌 리눅스 쉘에서 html 메일 발송하기 rootman 01-27 8198
497 Doc/Faq [참고] 리눅스 부팅 시디 만들기 (46) rootman 04-30 8195
496 Network [Catalyst2950] 스위치 초기화하기 rootman 09-02 8174
 1  2  3  4  5  6  7  8  9  10    
AND OR