본문 바로가기
[SQLite] GLOB vs. LIKE [SQLite] GLOB vs. LIKE http://www.sqlite.org/lang_expr.html#like -LIKE operator 는 pattern matching 비교를 이용해서 비교를 한다.% 는 0 개 이상의 character 를 의미하고, _ 는 1개의 character 를 의미한다.ASCII 에 대해서는 대소문자는 가리지 않는다. 즉 i 과 I 를 동일하게 취급한다.그러나 ASCII 가 아닌 경우(unicode)에 대해서는 case sensitive 하다. -아래와 같은 PRAGMA 를 통해 case sensitive 로 만들 수 있다.PRAGMA case_sensitive_live = boolean; -GLOB 는 LIKE 와 비슷하지만 wildcard 로 Unix 의 globbi.. 2019. 1. 19.
[SQLite3] Appendix. SQLite3 커맨드 라인 도구, 관리도구 [SQLite3] Appendix. SQLite3 커맨드 라인 도구, 관리도구 이 글은 "빠르게 활용하는 모바일 데이터베이스 SQLite3” 이란 글을 보며 필요한 내용만 정리한 글입니다.자세한 내용은 책을 구매해서 보세요 1. 셸 모드 -SQLite3 의 셸 모드를 이용하면 윈도우의 명령 프롬프트나 리눅스의 셸과 같이 SQLite3 엔진과 대화식으로 명령어를 전달하고 그에 대한 결과를 받을 수 있다.셸 모드는 개발 과정에서 SQL 구문을 작성하거나 디버깅 과정에서 DB 내용을 확인할 때 가장 많이 사용된다. DB 생성 -SQLite3 은 기본적으로 DB 파일 하나에 테이블, 레코드, 인덱스, 설정 정보 등 모든 데이터를 저장한다. 아래 명령을 통해 DB 파일을 생성하면서 Shell 에 진입할 수 있다... 2018. 5. 26.
[SQLite3] 03. SQL 고급 #2 [SQLite3] 03. SQL 고급 #2 이 글은 "빠르게 활용하는 모바일 데이터베이스 SQLite3” 이란 글을 보며 필요한 내용만 정리한 글입니다.자세한 내용은 책을 구매해서 보세요 9. 트리거 -DB TRIGGER 란 특정 테이블이나 뷰에 INSERT, DELETE, UPDATE 와 같은 데이터 조작 이벤트가 발생했을 때 자동으로 지정된 동작을 수행하게 하는 것이다. 트리거 활용 -syntaxCREATE TRIGGER [triggerName] [triggerTiming] [triggerOperation] ON [tableName]BEGIN [sqlOperations]END; triggerTiming 은 아래와 같다.BEFORE : 대상 테이블의 CUD 동작 직전에 트리거에서 지정한 동작이 수행된다.. 2018. 5. 19.
[SQLite3] 03. SQL 고급 #1 [SQLite3] 03. SQL 고급 #1 이 글은 "빠르게 활용하는 모바일 데이터베이스 SQLite3” 이란 글을 보며 필요한 내용만 정리한 글입니다.자세한 내용은 책을 구매해서 보세요 1. 관계형 데이터베이스 설계 -한 개의 Table 에 모든 정보를 담는 경우 다음과 같은 단점이 있다. 중복되는 정보가 저장된다. 레코드 간 구분 가능한 필드가 명확히 없다. ( Property 가 거의 같은 경우 ) -RDBMS 의 설계 원칙은 중복을 최소화하는 것이다.데이터 중복성(redundancy)과 일관적이지 않은 데이터 종속성(dependency)를 제거하는 규칙에 따라 정보를 여러 테이블에 저장되도록 테이블을 설계하고, 테이블간 공통된 값으로 서로 연결되게 한다. -테이블의 각 행을 구분하는 하나 이상의 .. 2018. 5. 18.
[android] ArrayMap 과 SparseArray 를 이용한 최적화 [android] ArrayMap 과 SparseArray 를 이용한 최적화 https://medium.freecodecamp.com/android-app-optimization-using-arraymap-and-sparsearray-f2b4e2e3dc47#.pg0eea2cx ArrayMap vs. HashMap -ArrayMap 은 android.util.ArrayMap 과 android.support.v4.util.ArrayMap 두 가지 형태가 있다.뒤의 녀석은 compat 이슈를 위한 것. -ArrayMap 은 HashMap 보다 더 memory 최적화된 데이터 구조를 가진다.ArrayMap 은 array 를 이용해 mapping 을 관리한다.Hash integer 를 가지고 있는 array 와,.. 2018. 3. 5.
[Effective Objective-C] #48 반복문에는 블록 열거를 사용하라 [Effective Objective-C] #48 반복문에는 블록 열거를 사용하라 출처 : Effective Objective-C -최신 오브젝티브-C 에는 열거하는 방법이 많다.표준 C 반복문부터 오브젝티브-C 1.0의 NSEnumerator, 그리고 오브젝티브-2.0 의 빠른 열거자(fast enumeration)도 있다. for 루프 -컬렉션을 열거하는 첫 번째 메서드는 훌륭하고 오래된 방법인 for 루프다.NSArray *anArray = …;for (int i=0; i < anArray.count; i++){ id object = anArray[i]; // do something} 이 방법은 쓸만하지만 사전이나 집합을 반복하면 훨씬 복잡해진다.NSDictionary *aDictionary = ….. 2017. 10. 15.
[Kotlin Tutorial] Kotlin 기초 #2 - Chap2. Kotlin basics [Kotlin Tutorial] Kotlin 기초 #2 - Chap2. Kotlin basics 참조 : Kotlin in Action 2.4. Iterating over things: "While" and "For" loops -Kotlin 에서 for loop 은 for-each loop 하나밖에 없다. 2.4.1. The “while” loop -Java 와 동일 2.4.2. Iterating over numbers: ranges and progressions -일반적인 for loop 를 쓰려면 range 를 쓰면 된다.Range 는 closed, inclusive 하다 즉 아래의 예에서는 1과 10 모두를 포함한다.val oneToTen = 1..10 -val hundredToOneWithSte.. 2017. 7. 25.
[Effective Java] 종전의 for 루프보다는 for-each 루프를 사용하자. [Effective Java] 종전의 for 루프보다는 for-each 루프를 사용하자. - for-each 문은 Iterable 인터페이스를 구현하는 어떤 객체도 반복 처리가 가능하다. Iterable 은 다음과 같이 정의된 interface 이다. public interface Iterable{ Iterator iterator();} Iterable 인터페이스 구현은 어렵지 않다. Summary for-each 루프는 종전 for 루프에 비해 많은 장점을 제공한다. 성능 저하가 없으면서 명료하고 버그를 방지해준다. for-each 루프를 사용할 수 없는 경우는 3 가지가 있다. 1. 필터링(filtering) - 어떤 컬렉션의 요소들을 오가면서 선택된 요소들을 삭제할 필요가 있다면 명시적 iterat.. 2017. 1. 26.
[Effective Java] ordinal 인덱스 대신 EnumMap 을 사용하자. [Effective Java] ordinal 인덱스 대신 EnumMap 을 사용하자. - EnumMap 은 enum 을 키로 사용하도록 설계된 가장 빠른 Map 이다. 서수를 인덱스로 사용하는 배열에 비해 처리 속도도 견줄만 하다. 내부적으로 그런 배열을 사용하기 때문이다. Map 의 풍부한 기능과 타입 안전 및 배열의 처리 속도를 모두 가지고 있으면서 상세한 내역은 프로그래머에게 숨기고 있다. EnumMap 은 생성자에 class 를 인자로 받는다. Summary ordinal 을 사용해서 배열을 인덱싱하는 것은 적합하지 않다. 만일 표현하고자 하는 관계가 다차원적이라면 EnumMap 을 사용하자. CLASS, Effective JAVA, enum, enummap, index, ordinal, type.. 2016. 12. 27.
반응형