연결연산자
일반적인 DBMS에서는 '||'로 문자열을 연결하지만 MySQL에서는 '||'을 사용할수 없고
CONCAT() 이라는 함수를 이용해 문자열을 연결한다.
사용예제1
update zet_adsense_log set cdatetime = cdate || ctime;
-- 위의 쿼리후에 cdatetime 컬럼값에는 1만 들어간다.(잘못된 쿼리)
update zet_adsense_log set cdatetime = concat(cdate, ctime);
-- 위의 쿼리후에 cdatetime 컬럼값에는 cdate 컬럼값과 ctime 컬럼값이 합쳐져 정상적으로
들어간다.(정상 쿼리)
사용예제2
select concat('a',concat('a','a'));
관계연산자
AND 양쪽 조건이 둘다 참이면 참 (&&사용가능)
OR 양쪽 조건중 하나라도 참이면 참 둘다 거짓이면 거짓 (||사용가능)
NOT 이후의 조건이 거짓이면 참 (!사용가능)
between과 not between사용
select * from date1 where a between '2005-01-01' and '2005-01-04';
(date1table에서 2005-01-01에서 2005-01-04사이의 datetime형의 데이타 검색)
select * from date1 where a between '2005-01-01' and '2005-01-04';
(date1table에서 2005-01-01에서 2005-01-04사이에 포함되지 않은 datetime형의 데이타 검색)
in과 not in사용
select * from Book where title not in('a','b');
(boot테이블에서 title이 a와 b가 아닌것만 검색)
select * from Book where title not in('a','b');
(boot테이블에서 title이 a와 b인것만 검색)
LIKE, NOT LIKE 연산자
select * from Book where title not like '%a%';
(boot테이블에서 title에 a가 들어가 있지 않은것만 검색)
select * from Book where title like '%a%';
(boot테이블에서 title에 a가 들어가 있는것만 검색)
select * from Book where title like '%___%';
(boot 테이블에서 title 컬럼값의 글자수가 3개인것만 검색)
select * from Book where title like '%_L_%';
(boot 테이블에서 title 컬럼값의 글자수가 3개이면서 가운데 자리에 L이 들어간것만 검색)
※ like 연산자 사용시 %, _를 문자로 인식하여 검색하기
% 를 \% 로 변경
_ 를 \_ 로 변경
*like와 not like는 반대의 개념*
REGEXP와 not REGEXP사용
select * from book where a regexp b;
(a가 정규식b에 맞을경우 검색)
select * from book where a not regexp b;
(a가 정규식b에 맞지않을경우 검색)
null와 is null 사용
select * from book where a is null;
(a의 값이 null이 맞을경우 검색)
select * from book where a is not null;
(a의 값이 null이 아닌경우 검색)
출처 - http://www.zetswing.com/bbs/board.php?bo_table=MySQL_LEC&wr_id=10
MySQL문에서 사용되는 연산자 목록
연산자 | 설명 |
= | 같다 |
< | 작다 |
> | 크다 |
<= | 작거나 같다 |
>= | 크거나 같다 |
!= 또는 <> | 다르다 |
IS NOT NULL | 널(NULL)값이 아니다 |
IS NULL | 널(NULL)값이다 |
BETWEEN | 범위내 값이 존재한다 |
NOT BETWEEN | 범위밖에 값이 존재한다 |
IN | 목록에 값이 존재한다 |
OR 또는 || | 둘중 하나라도 참인경우 |
AND 또는 && | 둘다 무조건 참인경우 |
NOT 또는 ! | 거짓일때 |
Mysql 함수
함수 | 설명 |
NOW() | 서버상의 현재 날짜와 시간을 반환 |
SHA1('문자열') | 40byte의 암호화된 문자로 변환, 단방향 암호화, mysql 5.0.2부터 사용가능 |
MD5('무자열') | 32byte의 암호화된 문자로 변환, 단방향 암호화 |
CONCAT('문자열1','문자열2',...) | 문자열1문자열2 형태로 이어서 반환 |
CONCAT_WS('구분자','문자열1','문자열2',...) | 문자열1구분자문자열2구분자... 형태로 이어서 반환 |
LENGTH('문자열') | 문자열의 길이 |
LEFT('문자열',갯수) | 문자열에서 왼쪽부터 갯수만큼 반환 |
RIGHT('문자열',갯수) | 문자열에서 오른부터 갯수만큼 반환 |
TRIM('문자열') | 문자열 앞뒤의 공백을 제거후 반환 |
UPPER('문자열') | 문자열을 대문자로 변환후 반환 |
LOWER('문자열') | 문자열을 소문자로 변환후 반환 |
SUBSTRING('문자열',x,y) | 문자열의 x번째에서 y개를 반환 |
ABS(v) | v의 절대값 |
CEILING(v) | v 다음의 가장 큰 정수 |
FLOOR(v) | v의 정수 |
FORMAT(v1,v2) | v1은 입력값, v2는 반환할 소수점 자리수, 천단위 콤마 표시됨 |
MOD(v1,v2) | v2 / v1 의 나머지 |
POW(v1,v2) | v1을 v2제곱 |
RAND() | 0에서 1.0사이의 난수 |
ROUND(v1,v2) | v1은 입력값, v2 십진 자리수로 반올리 |
SQRT(v1) | v1의 제곱근 |
[출처] mysql 연산자 및 함수|작성자 왕따짱
'DB > MySQL' 카테고리의 다른 글
mysql - if문 사용 (0) | 2012.09.14 |
---|---|
mysql - enum type (0) | 2012.09.12 |
mysql - 이벤트(Event) (0) | 2012.09.07 |
mysql - 날짜 함수 및 날짜 변환 (0) | 2012.09.03 |
mysql - 사용자 패스워드 변경하기 (0) | 2012.09.03 |