천

연산자 관련함수 정리 입니다.

· 2016-01-01 (금) 16:48:41 · 2866

형변환 연산자

- BINARY : 일반적인 문자열은 대소문자를 구분하지 않고 조건을 검색하지만 BINARY 를 사용할 이진연산을 하기때문에 대소문자 검색을 해야할 경우 편리하다.
 - 예 : select BINARY "a" = "A";


컨트롤 함수

- IFNULL(expr1,expr2) : expr1 이 NULL 이 아니면 expr1 을 반환하고 그렇지 않을 경우 expr2 를 반환한다. 문자열, 숫자 모두 사용가능하다.
 - 예 : select IFNULL(1/0,10);

 

- IF(expr1,expr2,expr3) : 만약 expr1 이 1(TRUE) 이면 expr2 를, 그렇지 않으면 expr3 을 반환한다.
- 예 : select IF(1>2,2,3);
select IF(strcmp('test','test1'),'yes','no');

 

- CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END
 - 예 : SELECT CASE 1 WHEN 1 THEN "one" WHEN 2 THEN "two" ELSE "more" END;
SELECT CASE WHEN 1>0 THEN "true" ELSE "false" END;
SELECT CASE BINARY "B" when "a" then 1 when "b" then 2 END;

 

비교연산

- 비교연산의 결과값은 1(TRUE), 0(FALSE), 또는 NULL 을 반환한다. 비교연산은 숫자와 문자열 모두에서 가능하다. 필요에 따라 자동적으로 숫자로 또는 문자열로 변환된다.
- 두개의 인자 모두가 NULL 일 경우 연산의 결과값은 NULL 이 된다.
- 두개의 인자 모두가 문자열이면 문자열로 비교된다.
- 두개의 인자 모두가 숫자이면 숫자로서 비교된다.
- 16진수는 숫자와 연산하지 않을 경우 바이너리로 처리된다.
- 다른 대부분의 경우 연산은 floating-point 로 된다.
- 기본적으로, 문자열 비교는 대소문자구분을 하지 않는다.
예 : select * from tbl_a where (a > 0) and (b <= 1);



- expr BETWEEN min AND max
- 예 : select 2 BETWEEN 2 AND '3';



- expr IN (value,...)
- 예 : select 'wefwf' IN (0,3,5,'wefwf');



- expr NOT IN (value,...)



- ISNULL(expr) : NULL 일 경우만 1(TRUE) 를 반환한다.
- 예 : select ISNULL(1+1);



- COALESCE(list) : NULL 이 아닌 첫번째 인자를 반환한다.
- 예 : select COALESCE(2, ',한글', NULL, 1);



- expr [NOT] REGEXP pat : 쿼리에서 정규표현식을 사용할수 있다. 사용할수 있다. 이것에 대해서는 나중에 설명한다.



- expr RLIKE pat : REGEXP 와 같다.



- STRCMP(expr1,expr2) : 두개의 문자열이 동일할경우 0, 첫번째 문자열이 정렬에서 상위일경우 -1, 그렇지 않으면 1을 반환한다.



= 같다 값 = 4
> 보다크다 값 > 60
< 보다작다 값 < 60
>= 크거나 같다 값 >= 60
<= 작거나 같다 값 <= 60
!= 혹은 <> 같지 않다 값 != 0
IS NOT NULL NULL을 가지지 않는다.
IS NULL NULL 이다.
BETWEEN 0에서 60 사이의 값
IN 어느 집합에 있는가
NOT IN 어느 집합에 있지 않은가
NOT IN LIKE 패턴대응 name like("값%")
NOT LIKE 패턴대응 name not like("값%")
REGEXP 정규표현 name regexp

 

사칙연산

- 예 : select (((3 + 2) * 4) / (2 - 1));
- 주의 : 0 으로 나눌경우 NULL 반환한다. 연산은 BIGINT 의 결과값을 가지게 되므로 BIGINT 의 범위를 벗어나게 되면 잘못된 값을 반환한다.
 
비트연산

- | : 비트연산 OR 의 연산자이다.
- 예 : select 29 | 15;

- & : 비트연산 AND 의 연산자이다.
- 예 : select 29 & 15;

- << : 비트연산 OR 의 연산자이다.
- 예 : select 1 << 2;

- >> : 비트연산 OR 의 연산자이다.
- 예 : select 4 >> 2;

- BIT_COUNT(N) : 해당 값의 비트수를 반환한다.
- 예 : select BIT_COUNT(29);

- 주의 : 연산은 BIGINT 의 결과값을 가지게 되므로 BIGINT 의 범위를 벗어나게 되면 잘못된 값을 반환한다.

논리연산

- 주의 : 모든 논리연산은 1(TRUE) 또는 0(FALSE) 을 반환한다. 논리연산자는 우선순위가 높기 때문에 순서에 조심해야한다.
- 예 : select ! 1+1; 이 문장은 select (! 1) + 1; 으로 연산된다.

- ! : 논리연산 NOT 의 연산자이다. 0 이외의 모든 값은 TRUE 의 의미이다. 따라서 NOT 0 만이 1을 반환한다. 예외적으로 NOT NULL 은 NULL 을 반환한다.
 - 예 : select ! (100);
select ! (1+1);
select ! 1+1;

- || : 논리연산 OR 의 연산자이다. 두개의 인자가 모두 0 또는 NULL 일 경우만 0 을 반환하고, 이외에는 1을 반환한다.
- 예 : select 1 || 0;
select 0 || 0;
select 100 || NULL;

- && : 논리연산 AND 의 연산자이다. 두개의 인자중 하나라도 0 또는 NULL 이 있을 경우 0 을 반환한다.
- 예 : select 1 && NULL;

|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
16-06-03 조회 3,027
15-07-30 조회 3,417
15-06-08 조회 5,556
15-05-27 조회 4,416
15-01-08 조회 6,715
14-12-30 조회 5,447
14-10-10 조회 5,440
14-08-13 조회 6,355
14-08-11 조회 5,208
14-08-06 조회 6,548
14-03-19 조회 7,437
13-04-26 조회 9,596
12-12-15 조회 5,117
12-12-15 조회 7,352
12-12-11 조회 5,493
12-11-21 조회 6,024
12-10-11 조회 5,105
12-10-03 조회 4,796
12-09-20 조회 6,095
12-09-02 조회 4,272
12-08-29 조회 5,282
12-08-29 조회 4,163
12-08-24 조회 4,263
12-08-18 조회 4,482
12-08-17 조회 4,527
12-08-16 조회 3,782
12-08-06 조회 5,556
12-08-05 조회 4,845
12-08-03 조회 4,561
12-08-03 조회 4,707
12-07-29 조회 3,562
12-07-24 조회 4,152
12-07-22 조회 3,615
12-07-20 조회 4,376
12-07-19 조회 4,718
12-07-19 조회 3,950
12-07-19 조회 3,896
12-07-19 조회 5,562
12-07-19 조회 3,506
12-07-18 조회 5,191
12-07-15 조회 4,171
12-07-14 조회 3,843
12-07-12 조회 4,515
12-07-11 조회 3,788
12-07-11 조회 3,510
12-07-11 조회 3,486
12-07-10 조회 4,673
12-07-09 조회 3,421
12-07-09 조회 4,239
12-07-09 조회 4,658
12-07-08 조회 4,573
12-07-07 조회 5,495
12-07-06 조회 4,750
12-07-06 조회 4,015
12-07-06 조회 3,902
12-07-06 조회 3,841
12-07-02 조회 5,518
12-07-02 조회 4,216
12-06-29 조회 3,738
12-06-28 조회 4,364
12-06-26 조회 3,859
12-06-26 조회 4,977
12-06-21 조회 3,955
12-06-20 조회 4,657
12-06-20 조회 4,295
12-06-15 조회 4,647
12-06-15 조회 4,382
12-06-13 조회 7,398
12-06-05 조회 7,372
12-06-04 조회 3,948
12-06-03 조회 3,798
12-05-31 조회 3,793
12-05-28 조회 6,641
12-05-27 조회 3,873
12-05-25 조회 4,006
12-05-23 조회 4,416
12-05-21 조회 5,128
12-05-17 조회 4,064
12-05-17 조회 3,977
12-05-09 조회 4,056
12-05-07 조회 4,315
12-05-02 조회 4,499
12-05-01 조회 4,678
12-04-30 조회 3,426
12-04-30 조회 4,372
12-04-25 조회 4,458
12-04-25 조회 4,882
12-04-24 조회 3,845
12-04-24 조회 4,616
12-04-23 조회 3,611
12-04-20 조회 3,268
12-04-17 조회 5,451
12-04-16 조회 4,386
12-04-14 조회 3,671
12-04-14 조회 3,700
12-04-14 조회 3,746
12-04-13 조회 3,375
12-04-13 조회 4,560
12-04-13 조회 6,203
12-04-12 조회 3,367