LIKE, BETWEEN, IN
DB/MySQL 2010. 7. 8. 18:14◘ SQL 입문(3) - 자료검색(2) : 특수 비교 연산자와 검색 결과의 정렬
▮ LIKE 연산자
: table의 값과 일부만 일치되는 레코드를 검색하도록 하는 연산자
경% |
‘경’으로 시작하는 모든 문자열. ‘경’ 한글자 포함. |
ex) 경제, 경영... |
%과 |
‘과’로 끝나는 모든 문자열. ‘과’ 한글자 포함. |
ex) 화학과, 경제학과... |
%김% |
‘김’이라는 문자가 들어간 모든 문자열 |
ex) 김씨, 돌김... |
화_ |
‘화’로 끝나는 두글자 단어 |
ex) 화학, 화약... |
___화 |
‘화’로 끝나는 세글자 단어 |
ex) 해당화, 무궁화 |
_동_ |
‘동’이 가운데 들어간 세글자 단어 |
ex) 전동차, 원동기... |
'_'은 한글이나 영문이나 모두 1글자를 나타낸다. (byte단위가 아님)
- select sname, major from student where sname like '마%‘;
=> 성이 마씨인 학생의 이름과 전공을 출력
- select sname, major from student where (sname like '허%‘) and avr <= 1.0;
=> 허씨 성을 가진 학생 중에 학점이 1.0 이하인 학생의 이름과 전공을 출력
▮ 이외 연산자 : between, in
- between ~and : 특정 범위 내의 값을 찾고자 할 때
ex) 학점이 2.0~3.0 사이의 학생을 출력 : select sname from where avr between 2.0 and 3.0;
- in : 여러 식 중에 하나 이상 일치하는 것을 찾을 때
ex) 화학,물리학과 학생의 이름 출력 : select sname from student where major in('화학‘,’생물‘);
※ 문자열 비교 연산자는 상당수가 Full table scan을 수행하기 때문에 DB가 클 경우 좋지 않다.
'DB > MySQL' 카테고리의 다른 글
문자 함수(RIGHT, LEFT, SUBSTRING_INDEX, SUBSTRING, UPPER, REVERSE, LTRIM, LENGTH) (0) | 2010.10.27 |
---|---|
MySQL 날짜 관련 함수 (0) | 2010.09.06 |
[MySql] JOIN 문 (0) | 2010.07.02 |
GROUP BY (0) | 2010.06.29 |
group by, having, inner join (0) | 2010.06.28 |