반응형

코딩시 표기법 '명명법'

   코딩 시 변수명, 클래스명, 함수명, View ID명 등등 이름 명명법에 쓰이는 표기법.

     대표적으로 3가지 "카멜 (camelCase) / 파스칼 (PascalCase) / 스네이크 (snake_case)"

 

1) 카멜 표기법 "camelCase"

  • 첫 문자 첫글자는 소문자로 표기, 그 이후 연결된 문자들은 첫글자 대문자로 표기
  • "단봉낙타 표기법" 
  • 변수명, 함수명에 사용
ex) 'helloWorld'	- 첫 문자 hello, 그 이후 문자 World
ex) 'personAgeNumber' - 첫 문자 person, 그 이후 문자 Age, Numbr

 

2) 파스칼 표기법 "PascalCase"

  • 모든 문자의 첫글자 대문자로 표기
  • "쌍봉낙타 표기법" 
  • 클래스명에 사용, 가끔 함수에도 사용
ex) 'HelloWorld'	- 첫 문자 Hello, 그 이후 문자 World
ex) 'PersonAgeNumber' - 첫 문자 Person, 그 이후 문자 Age, Numbr

 

3) 스네이크 표기법 "snake_case"

  • 모든 문자의 첫글자 소문자로 표기, 각 문자들을 '_' (언더바)로 이어서 사용 
  • 변수명, 함수명, 데이터 타입, 네임스페이스 등에 사용
ex) 'hello_world'	- 첫 문자 hello, 그 이후 문자 world
ex) 'person_age_number' - 첫 문자 person, 그 이후 문자 age, numbr
 
 
 
.

 

 

 

반응형
반응형

Tibero Function 확인 쿼리

--FUNCTION TEXT검색

--FUNCTION TEXT검색
SELECT *
FROM   USER_SOURCE
WHERE  1=1
AND TYPE = 'FUNCTION'
AND    TEXT LIKE  '%REG%'  
ORDER BY NAME
반응형
반응형

Mysql 자음 초성 추출 함수, 자음으로 검색, 초성 검색

함수를 만들어서 추출해보자. 

CREATE DEFINER=`gn`@`%` FUNCTION `fn_choSearch`(`str` varchar(20)) RETURNS varchar(20) CHARSET utf8 
 
BEGIN 
     declare returnStr varchar(100); 
     declare cnt int; 
     declare i int; 
     declare j int; 
     declare tmpStr varchar(10); 
 
     if str is null then 
         return ''; 
     end if; 
 
     set cnt = length(str)/3; 
     set i = 1; 
     set j = 1; 
 
     while i <=cnt DO 
           set tmpStr = substring(str,i,j); 
           set returnStr = concat(ifnull(returnStr,''), 
 
            case when tmpStr rlike '^(ㄱ|ㄲ)' OR ( tmpStr >= '가' AND tmpStr < '나' ) then 'ㄱ' 
                 when tmpStr rlike '^ㄴ' OR ( tmpStr >= '나' AND tmpStr < '다' ) then 'ㄴ' 
                 when tmpStr rlike '^(ㄷ|ㄸ)' OR ( tmpStr >= '다' AND tmpStr < '라' ) then 'ㄷ' 
                 when tmpStr rlike '^ㄹ' OR ( tmpStr >= '라' AND tmpStr < '마' ) then 'ㄹ' 
                 when tmpStr rlike '^ㅁ' OR ( tmpStr >= '마' AND tmpStr < '바' ) then 'ㅁ' 
                 when tmpStr rlike '^ㅂ' OR ( tmpStr >= '바' AND tmpStr < '사' ) then 'ㅂ' 
                 when tmpStr rlike '^(ㅅ|ㅆ)' OR ( tmpStr >= '사' AND tmpStr < '아' ) then 'ㅅ' 
                 when tmpStr rlike '^ㅇ' OR ( tmpStr >= '아' AND tmpStr < '자' ) then 'ㅇ' 
                 when tmpStr rlike '^(ㅈ|ㅉ)' OR ( tmpStr >= '자' AND tmpStr < '차' ) then 'ㅈ' 
                 when tmpStr rlike '^ㅊ' OR ( tmpStr >= '차' AND tmpStr < '카' ) then 'ㅊ' 
                 when tmpStr rlike '^ㅋ' OR ( tmpStr >= '카' AND tmpStr < '타' ) then 'ㅋ' 
                 when tmpStr rlike '^ㅌ' OR ( tmpStr >= '타' AND tmpStr < '파' ) then 'ㅌ' 
                 when tmpStr rlike '^ㅍ' OR ( tmpStr >= '파' AND tmpStr < '하' ) then 'ㅍ' 
            else 'ㅎ' end); 
           set i=i+1; 
     end while; 
  RETURN returnStr; 
END;

 

자바스크립트로 검색어가 초성인지 아닌지 체크

var keyword = $("#keyword").val().toUpperCase(); 
var choKeyword = choHangul($("#keyword").val()); 
 
//초성검색 구분 
 
if (keyword!="" && choKeyword==""){ 
    choDiv = 'Y'; 
}else{ 
    choDiv = 'N'; 
} 

/* 초성추출 */ 
function choHangul(str) { 
  cho = ["ㄱ","ㄲ","ㄴ","ㄷ","ㄸ","ㄹ","ㅁ","ㅂ","ㅃ","ㅅ","ㅆ","ㅇ","ㅈ","ㅉ","ㅊ","ㅋ","ㅌ","ㅍ","ㅎ"]; 
  result = ""; 
  for(i=0;i<str.length;i++) { 
      code = str.charCodeAt(i)-44032; 
    if(code>-1 && code<11172) result += cho[Math.floor(code/588)]; 
  } 
  return result; 
} 

 

 

쿼리에서 초성 추출하자.

WHERE 1=1 
<isEqual prepend='AND' property="choDiv" compareValue="N" > 
    S1.STOP_NAME LIKE concat('%',#keyword#,'%') OR S1.STOP_ID LIKE concat('%',#keyword#,'%') 
</isEqual> 
<isEqual prepend='AND' property="choDiv" compareValue="Y" > 
    fn_choSearch(S1.stop_name) LIKE concat('%',#keyword#,'%') OR S1.STOP_ID LIKE concat('%',#keyword#,'%') 
</isEqual> 

 

choDiv 값이 N 일 경우 일반검색
choDiv 값이 Y 일 경우 위의 oracle함수를 사용하여 초성검색


예를 들어
이렇게 구현을 하면 'ㄱㄴㄷ' 으로 검색을 하면
가나다
간난단
갇낟닫
...
등 초성이 ㄱ,ㄴ,ㄷ 인 데이터가 검색된다.

출처 : https://aljjabaegi.tistory.com/220

 

Mysql 자음 초성 추출 함수, 자음으로 검색, 초성 검색

Mysql 자음 초성 추출 함수, 자음으로 검색, 초성 검색 개발을 하다보면 자음으로만 검색할 수 있게 해달라는 요청이 들어오곤 한다. 그럴때마다 유용하게 사용하는 것이 아래의 함수이다. 그냥 복사 붙여넣고 실..

aljjabaegi.tistory.com

 

반응형
반응형

Tibero(티베로) 함수 Function

4. 함수
4.1. 개요
4.1.1. 단일 로우 함수
4.1.2. 집단 함수
4.1.3. 분석 함수
4.2. 함수 목록
4.2.1. ABS
4.2.2. ACOS
4.2.3. ADD_MONTHS
4.2.4. AGGR_CONCAT
4.2.5. APPENDCHILDXML
4.2.6. ASCII
4.2.7. ASCIISTR
4.2.8. ASIN
4.2.9. ATAN
4.2.10. ATAN2
4.2.11. AVG
4.2.12. BITAND
4.2.13. CAST
4.2.14. CEIL
4.2.15. CHARTOROWID
4.2.16. CHR
4.2.17. COALESCE
4.2.18. COMPOSE
4.2.19. CONCAT
4.2.20. CONVERT
4.2.21. CORR
4.2.22. COS
4.2.23. COSH
4.2.24. COUNT
4.2.25. COVAR_POP
4.2.26. COVAR_SAMP
4.2.27. CUME_DIST
4.2.28. CURRENT_DATE
4.2.29. CURRENT_TIME
4.2.30. CURRENT_TIMESTAMP
4.2.31. DBTIMEZONE
4.2.32. DECODE
4.2.33. DECOMPOSE
4.2.34. DELETEXML
4.2.35. DENSE_RANK
4.2.36. DUMP
4.2.37. EMPTY_BLOB
4.2.38. EMPTY_CLOB
4.2.39. EXISTSNODE
4.2.40. EXP
4.2.41. EXTRACT
4.2.42. EXTRACT(XML)
4.2.43. EXTRACTVALUE
4.2.44. FIRST
4.2.45. FIRST_VALUE
4.2.46. FLOOR
4.2.47. FROM_TZ
4.2.48. GREATEST
4.2.49. GROUPING
4.2.50. GROUPING_ID
4.2.51. GROUP_ID
4.2.52. HEXTORAW
4.2.53. INET_ATON
4.2.54. INET_NTOA
4.2.55. INITCAP
4.2.56. INSERTCHILDXML
4.2.57. INSERTCHILDXMLAFTER
4.2.58. INSERTCHILDXMLBEFORE
4.2.59. INSERTXMLAFTER
4.2.60. INSERTXMLBEFORE
4.2.61. INSTR
4.2.62. ISFRAGMENT
4.2.63. KURT
4.2.64. LAG
4.2.65. LAST_DAY
4.2.66. LAST
4.2.67. LAST_VALUE
4.2.68. LEAD
4.2.69. LEAST
4.2.70. LENGTH
4.2.71. LN
4.2.72. LNNVL
4.2.73. LOCALTIMESTAMP
4.2.74. LOG
4.2.75. LOWER
4.2.76. LPAD
4.2.77. LTRIM
4.2.78. MAX
4.2.79. MEDIAN
4.2.80. MIN
4.2.81. MOD
4.2.82. MONTHS_BETWEEN
4.2.83. NEW_TIME
4.2.84. NEXT_DAY
4.2.85. NLSSORT
4.2.86. NLS_INITCAP
4.2.87. NLS_LOWER
4.2.88. NLS_UPPER
4.2.89. NTILE
4.2.90. NULLIF
4.2.91. NUMTODSINTERVAL
4.2.92. NUMTOYMINTERVAL
4.2.93. NVL
4.2.94. NVL2
4.2.95. ORA_HASH
4.2.96. OVERLAPS
4.2.97. PERCENT_RANK
4.2.98. PERCENTILE_CONT
4.2.99. PERCENTILE_DISC
4.2.100. POWER
4.2.101. RANK
4.2.102. RATIO_TO_REPORT
4.2.103. RAWTOHEX
4.2.104. REGEXP_COUNT
4.2.105. REGEXP_INSTR
4.2.106. REGEXP_REPLACE
4.2.107. REGEXP_SUBSTR
4.2.108. REGR_AVGX
4.2.109. REGR_AVGY
4.2.110. REGR_COUNT
4.2.111. REGR_INTERCEPT
4.2.112. REGR_R2
4.2.113. REGR_SLOPE
4.2.114. REGR_SXX
4.2.115. REGR_SXY
4.2.116. REGR_SYY
4.2.117. REMAINDER
4.2.118. REPLACE
4.2.119. REVERSE
4.2.120. ROUND(number)
4.2.121. ROUND(date)
4.2.122. ROWIDTOCHAR
4.2.123. ROW_NUMBER
4.2.124. RPAD
4.2.125. RTRIM
4.2.126. SESSIONTIMEZONE
4.2.127. SIGN
4.2.128. SIN
4.2.129. SINH
4.2.130. SKEW
4.2.131. SQRT
4.2.132. STDDEV
4.2.133. STDDEV_POP
4.2.134. STDDEV_SAMP
4.2.135. SUBSTR
4.2.136. SUM
4.2.137. SYS_CONNECT_BY_PATH
4.2.138. SYS_CONTEXT
4.2.139. SYS_EXTRACT_UTC
4.2.140. SYS_GUID
4.2.141. SYSDATE
4.2.142. SYSTIME
4.2.143. SYSTIMESTAMP
4.2.144. TAN
4.2.145. TANH
4.2.146. TO_CHAR(character)
4.2.147. TO_CHAR(datetime)
4.2.148. TO_CHAR(number)
4.2.149. TO_CLOB
4.2.150. TO_DATE
4.2.151. TO_DSINTERVAL
4.2.152. TO_LOB
4.2.153. TO_MULTI_BYTE
4.2.154. TO_NCHAR
4.2.155. TO_NUMBER
4.2.156. TO_SINGLE_BYTE
4.2.157. TO_TIME
4.2.158. TO_TIMESTAMP
4.2.159. TO_TIMESTAMP_TZ
4.2.160. TO_YMINTERVAL
4.2.161. TRANSLATE
4.2.162. TRIM
4.2.163. TRUNC(number)
4.2.164. TRUNC(date)
4.2.165. TZ_OFFSET
4.2.166. TZ_SHIFT
4.2.167. UID
4.2.168. UNISTR
4.2.169. UPDATEXML
4.2.170. UPPER
4.2.171. USER
4.2.172. USERENV
4.2.173. VAR_POP
4.2.174. VAR_SAMP
4.2.175. VARIANCE
4.2.176. VSIZE
4.2.177. XMLAGG
4.2.178. XMLCAST
4.2.179. XMLCOMMENT
4.2.180. XMLCONCAT
4.2.181. XMLELEMENT
4.2.182. XMLEXISTS
4.2.183. XMLFOREST
4.2.184. XMLPARSE
4.2.185. XMLPI
4.2.186. XMLQUERY
4.2.187. XMLSERIALIZE
4.2.188. XMLTABLE
4.2.189. XMLTRANSFORM

반응형
반응형
반응형
반응형

 


함수의 정의와 호출


함수: 여러 개의 statement를 하나로 묶은 단위
* 함수는 반복적 수행이 가능하며, 코드를 논리적으로 이해하는데 도움을 줌. 또한 코드의 일정
 부분을 별도의 논리적 개념으로 독립화 가능


간단한 함수의 정의 → def: 함수 정의 시 사용하는 키워드


함수 객체와 함수 호출
* 함수 이름 자체는 함수 객체의 레퍼런스를 지님
* 함수 이름에 저장된 레퍼런스를 다른 변수에 할당하여 그 변수를 이용한 함수 호출 가능
* 함수 몸체에는 최소한 한 개 이상의 statement가 존재해야 함 (없으면 pass 사용)


함수 인수값 전달 방법
* 기본: 값에 의한 호출(call-by-value) → 실제로는 참조에 의한 호출(call-by-reference)
* 함수 인자에 변경불가능 객체인 숫자값, 문자열, 튜플을 전달하면 의미 없음
* 함수 인자에 변경 가능한 객체인 리스트와 사전을 전달하면 올바른 전달법 및 활용법


- 반환문 : 인수 없이 return문 사용하면 None 객체 전달


- 함수 인자에 대한 동적인 자료형 결정 : 함수 인자는 함수가 호출되는 순간 해당 인자에 전달되는
 객체에 따라 타입 결정

 

함수 인수 처리


기본 인수 값 : 함수를 호출할 때 인수를 넘겨주지 않아도 인수가 기본적으로 가지는 값
* incr(a, step=1)에서 step=1과 같은 형태를 가짐
* 함수 정의를 할 때 일반적인 인수 앞에 기본 인수 값 올 수 없으나 여러 개는 정의 가능


키워드 인수 : 인수 값 전달 시 인수 이름과 함께 값을 전달하는 방식
* 함수 호출 시 키워드 인수는 마지막에 위치해야 함


가변 인수 리스트 : 함수 정의 시 일반적인 인수 선언 뒤에 *var 형식의 인수로 가변 인수 선언
* var 에는 함수 호출 시 넣어주는 인수 값들 중 일반 인수에 할당되는 값을 제외한 나머지 값들을
 지닌 튜플 객체가 할당됨
* C 언어의 printf문과 유사한 형태의 printf 정의 됨


튜플 인수와 사전 인수로 함수 호출하기
* 함수 호출 시 * 사용하고 뒤에 튜플을 넣으면 튜플 전체 호출 가능
* 함수 호출 시 ** 사용하고 뒤에 사전을 넣으면 사전 전체 호출 가능

반응형
반응형

파이썬 제어문


들여쓰기와 제어문
- 파이썬은 들여쓰기를 강제하여 코드의 가독성을 높임
- 가장 바깥쪽 코드는 반드시 1열에 시작
- 블록 내부에 있는 statement들은 동일한 열에 위치해야 함
- 블록의 끝은 들여쓰기가 끝나는 부분으로 간주
- 파이썬에는 {. }. begin, end 등의 키워드가 존재하지 않음
- 들여쓰기를 할 때에는 탭과 공백을 섞어 쓰지 않음

if문
- if, elif, else문으로 쓰이나 elif와 else문은 꼭 필요하지는 않음
- 조건식이나 else 다음에 콜론(:) 표기 필요
- 들여쓰기를 잘 지켜야 함
        if 조건식 1:
           statement
        elif 조건식 2:
           statement
        else:
           statement


for문
- 컨테이너 객체가 지닌 각 요소가 타겟에 들어감
- enumerate() 내장함수 : 컨테이너 객체가 지닌 각 요소값 뿐만 아니라 인덱스 값도 함께 반환
- break: 루프를 빠져나감
- continue: 루프 블록 내의 continue 이후 부분은 수행하지 않고 루프의 시작부분으로 이동
- else: 루프가 break에 의한 중단 없이 정상적으로 모두 수행되면 else 블록이 수행됨
- for 루프는 중첩으로 사용 가능
for <타겟> in <컨테이너 객체>
   statement
else:
   statement


while문
- while 조건식이 만족하는 동안 while 블록내의 statements 들을 반복 수행

함수의 장점 및 함수 사용법
- 함수의 장점 : 반복적인 코드 사용을 없애 코드 길이를 짧게 만들고, 유지보수가 쉬워짐
- 함수 이름에 저장된 레퍼런스를 다른 변수에 할당하여 그 변수를 이용한 함수 호출 가능
- 함수의 몸체에는 최소 한 개 이상의 statement가 존재해야 함
  따라서, 아무런 내용이 없는 몸체를 지닌 함수의 경우 pass 키워드를 몸체에 적는 것이 필요
- 함수에서 다른 함수 호출이 가능하며, 인자의 이름과 함께 인자 값 넘기는 것이 가능
- 인자의 디폴트 값을 지정할 수 있으며, 두 개 이상의 값을 동시 반환 가능


함수 호출 시 동적인 자료형 결정
- 파이썬에서 모든 객체는 동적으로 실행 시간에 그 타입이 결정됨


재귀적 함수 호출
- 재귀 함수: 함수 몸체에서 자기 자신을 호출하거나 1부터 n까지 더하는 함수
- 수학에서 점하식과 유사한 코드로 반드시 종결조건이 만족할 때 반환 값이 있어야 함





.

반응형

+ Recent posts