5. 와일드카드를 이용한 필터링
- LIKE 연산자와 같이 사용
- 대소문자의 구별은 DBMS마다 다를 수 있음
와일드카드 |
설명 |
기타 |
% 또는 * |
갯수에 관계 없이 모든 문자 ('1개 이상'이 아니라, '0개 이상'의 문자 포함) |
Access : * |
_ 또는 ? |
한 개의 문자 |
Access : ? |
[ ] |
괄호 [ ] 안의 문자 중 하나의 문자와 일치하는 모든 레코드 검색 |
|
^ 또는 ! |
NOT과 같음 |
Access : ! |
EX.1 % 또는 *
SELECT product_id, product_name
FROM Products
WHERE product_name LIKE 'Apple%'
* Access : WHERE product_name LIKE 'Apple*'
* Products 테이블에서 product_id와 product_name 필드를 가져온다.
단, product_name이 Apple로 시작하는 레코드만 가져옴
* DBMS의 대소문자 구별여부에 따라 결과가 다르다.
구별하는 경우 Apple Pie, Apple jam은 가져올 수 있지만 apple pie, apple jam은 가져오지 않는다.
구별하지 않는 경우 Apple pie, Apple jam, apple pie, apple jam 모두 가져온다.
▶ WHERE product_name LIKE '%Apple%'
- Apple의 앞,뒤로 모든 문자를 포함하는 문자열
- Real Apple pie .....
▶ WHERE product_name LIKE 'a%e'
- a로 시작하고 e로 끝나는 모든 문자열
- apple, age, ae, ......
- %는 아무것도 없는 것도 포함하므로 ae도 가져온다.
EX.2 _ 또는 ?
SELECT product_id, product_name
FROM Products
WHERE product_name LIKE '__ inch teddy bear%'
* Access : WHERE product_name LIKE '?? inch teddy bear'
* Products 테이블에서 product_id와 product_name 필드를 가져온다.
단, product_name중 ' inch teddy bear' 앞에 2글자가 있는 레코드만 가져옴(inch 앞에 있는 공백도 문자로 간주함)
* 레코드가 8 inch..., 12 inch..., 15 inch... 등 세 개가 있을 때, 8 inch...는 제외한 나머지 2개를 가져온다.
* 8 inch 까지 가져오려면 WHERE product_name LIKE '?inch teddy bear'를 사용하면 된다.
EX.3 [ ]
SELECT product_id, product_name
FROM Products
WHERE product_name LIKE '[JM]%'
* Products 테이블에서 product_id와 product_name 필드를 가져온다.
단, product_name중 J로 시작하거나 M으로 시작하는 모든 레코드를 가져온다.
* Junior Sports pants, Man's denim pants 같은 레코드들을 가져올 수 있다.
EX.4 ^ 또는 !
SELECT product_id, product_name
FROM Products
WHERE product_name LIKE '[^JM]%'
* Access : WHERE product_name LIKE '[!JM]'
* Products 테이블에서 product_id와 product_name 필드를 가져온다.
단, product_name중 J로 시작하거나 M으로 시작하는 문자열을 제외한 레코드들을 가져온다.
▶ 위의 WHERE절은 NOT연산자를 이용하여 아래와 같이도 쓸 수 있다.
WHERE NOT product_name LIKE '[JM]%'
'Database > SQL' 카테고리의 다른 글
7. SQL SELECT문 - 6.계산필드 (0) | 2019.03.25 |
---|---|
5. SQL SELECT문 - 4.WHERE절을 이용한 데이터 필터링 (IN. NOT) (0) | 2019.03.25 |
4. SQL SELECT문 - 3.WHERE절을 이용한 데이터 필터링 (AND,OR) (0) | 2019.03.25 |
3. SQL SELECT문 - 2.WHERE절을 이용한 데이터 필터링 (연산자) (0) | 2019.03.25 |
2. SQL SELECT문 - 1.기본 (0) | 2019.03.24 |