반응형
반응형

코딩시 표기법 '명명법'

   코딩 시 변수명, 클래스명, 함수명, 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 정의 됨


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

반응형

+ Recent posts