mysql - sql 연산자

DB/MySQL 2012. 9. 8. 10:39


연결연산자

 

일반적인 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의 제곱근 


출처 - http://blog.naver.com/PostView.nhn?blogId=yiuse78&logNo=50107260847&categoryNo=35&viewDate=&currentPage=1&listtype=0


'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
Posted by linuxism
,