본문 바로가기
C.W.K.
Stream
Lesson 09 of 10 · published

쓸모 있는 String 함수

~12 min · sql, strings, functions

Level 0Scout
0 XP0/80 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

실제로 호출할 것들

SQLite가 주는 string 함수는 수는 적어도 실속이 있어. 챙겨둘 건 이만큼이야.

  • length(s) — TEXT면 글자 수를, BLOB이면 byte 수를 세.
  • upper(s)lower(s) — 기본적으로 ASCII 대소문자만 바꿔.
  • trim(s), ltrim(s), rtrim(s) — 공백을(또는 지정한 문자를) 떼어내.
  • substr(s, start, len) — 잘라내기야. 시작 위치가 1부터라는 걸 잊지 마.
  • replace(s, old, new) — 부분 문자열을 갈아끼워.
  • instr(s, sub)s 안에서 sub가 시작하는 위치를 1부터 세서 돌려주고, 없으면 0을 줘.
  • printf('%s says %s', a, b) — C 스타일로 포맷을 맞춰.
  • || — 문자열을 이어 붙이는 연산자야.
  • group_concat(col, sep) — 여러 row의 값을 하나로 이어붙이는 집계야.
  • hex(blob)quote(s) — binary를 들여다보거나 안전하게 따옴표를 씌울 때 써.
Warning: upperlower는 기본적으로 ASCII A–Z만 건드려. upper('한글')'한글'을 그대로 돌려줘. Unicode까지 제대로 하려면 ICU extension이 필요한데, 앱 코드에서는 안 쓰는 게 나아. 대소문자 변환은 Python에서 해.

Code

String 함수 실전·sql
SELECT email,
       length(email)                 AS n,
       substr(email, 1, instr(email, '@') - 1) AS local_part,
       substr(email, instr(email, '@') + 1)   AS domain,
       printf('%s -> %s', username, email) AS pretty
FROM users;

External links

Exercise

자유 형식 텍스트 컬럼이 있는 테이블에서 계산 컬럼을 다섯 개 만들어봐. 길이, 소문자로 바꾼 것, 앞뒤 공백을 턴 것, 첫 공백까지의 첫 단어, 그리고 printf로 모양을 낸 표시용 문자열. 빈 문자열, 공백이 하나도 없는 값, 앞에 공백이 붙은 값, Unicode 같은 가장자리 경우에서 어떻게 동작하는지 확인해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.