mysql에서 Case 문은, if else if 문과 거의 비슷합니다. 대략적인 문법은 다음과 같습니다. cond(1), cond(2), ... 가 있어요. 이것은 case문에 걸린 조건들을 의미합니다. 이들 중, 처음으로 만족하는 조건 cond(i)에 대해서, res(i)를 리턴합니다. 만약에 cond(1), ... , cond(n) 어느 조건에도 만족하지 않으면, res(n+1)을 리턴합니다. 이것을 흐름도로 그려보면 다음과 같은데요. if else문과 순서도가 상당히 유사하게 그려진다는 것을 알 수 있어요. 이 문장은 값이 올 수 있는 어떤 곳에서도 사용할 수 있습니다. 그 예제를 2개만 보여드리도록 하겠습니다. 먼저 mysql에서 제공하는 world 데이터 베이스에서 city 테이블을 보면 도시..
mysql 검색 결과
mysql의 Charset 중에는, utf8과 utf8mb4가 있습니다. utf8만 있으면 될 거 같은데. 왜 그럴까요? 친구랑 웹 페이지를 만들기 위해서 만들어 두었던 테이블을 가지고 간단하게 실험을 해 보도록 하겠습니다. 딱 봐도, id라던지, address가 있는 걸로 보아서는, 회원 가입을 위한 테이블이라고 할 수 있어요. Character Set이 utf8로 되어 있는데요. 기본적으로 utf8은, 4byte 가변 인코딩이라고 할 수 있어요. 'a'나 'e'와 같은 문자들은 1byte로 표현이 되고, '경'이라던지 '산'이라는 것은 3byte로 표현이 됩니다. user_name의 Character Set은 utf8입니다. 우리는 member에서 user_name 필드만 출력해 보도록 하겠습니다. ..
오늘은 mysql에서 결과값을 정렬하는 방법에 대해 알아봅시다. order by를 쓰면, 레코드를 특정한 기준으로 정렬을 하게 합니다. 쓰는 방법은 아래와 같습니다. ... order by col_name(1) g(1), col_name(2) g(2), ... , col_name(n) g(n) 이 때, 1차 정렬 기준은 col_name(1) 값을 기준으로 g(1)이라는 기준으로, 2차로 col_name(2) 값을 기준으로 g(2)라는 기준으로, ... 요런 식으로 sorting을 하게 됩니다. 컬럼 기준을 주지 않을 수도 있는데요. 이 때에는 오름차순으로 정렬이 됩니다. 예제를 몇 개 봅시다. 먼저 city 함수에 있는 데이터들을 모두 출력해 보겠습니다. 아. 너무 많군요. 자. 일단 저는 Populat..
오늘 배워볼 함수는 mysql의 concat 함수입니다. 제가 SQL을 연습하는 사이트 중에는 해커랭크라는 사이트가 있는데요. 결과값 2개를 각각 res1, res2라고 하면, res1와 res2를 공백을 구분자로 해서, 1줄에 출력하라는 쿼리를 작성하는 문제가 있었습니다. 결과값을 Char형이나 Varchar와 같은 것으로 Convert를 하고, 이어 붙이면 되지 않을까? 라는 생각을 하게 되었고, 그 기능을 쿼리에 담아내기 위해 필요한 것이 concat였습니다. concat(var1,...) 사용법은 위와 같습니다. 가변 인자를 받습니다. 이어버릴 문자열들을 콤마를 구분자로 해서 이어버리면 됩니다. 예제를 몇 개 봅시다. 먼저 'A'와 ' '와 'B'가 ,를 구분자로 이어져 있습니다. 이들을 conc..
오늘은 mysql에서 in 연산자에 대해 간단하게만 알아봅시다. operand IN(list) 결론부터 말하면, 피연산자 operand의 값이, list에 속해있는 집합에 속해 있다면 참을 리턴합니다. 이 IN 연산자 안에는 sub Query 또한 들어갈 수 있을 겁니다. 그런 예는 서브 쿼리를 다룰 때 다시 언급해 드리도록 하겠습니다. 오늘은 간단하게 어떻게 쓰는지만 아시면 좋을 듯 싶습니다. 먼저, country라는 테이블에서 에서, Code가 'CHN'이거나, 'KOR'이거나 'JPN'인 레코드를 찾으라는 쿼리가 들어온 경우, 요렇게 작성할 수 있습니다. where에 조건절 3개가 OR로 이어져 있습니다. 그런데 이것을 in 연산자로 바꿀 수 있어요. 우리가 찾아야 하는, 그러니까 Code의 값이여..
최근댓글