반응형
본 글은 책 "칼퇴족 김대리는 알고 나만 모르는 SQL 기초 편"의 정리 내용입니다.
특정 열에 특정 키워드가 포함된 레코드를 찾을 때 → % 사용
LIKE 연산자
# 뒤에 나오는 문자들 모를 때
SELECT 열이름 FROM 테이블 WHERE 열이름 LIKE '찾고싶은문자%';
# 앞에 나오는 문자들 모를 때
SELECT 열이름 FROM 테이블 WHERE 열이름 LIKE '%찾고싶은문자';
# 앞뒤 나오는 문자들 모를 때
SELECT 열이름 FROM 테이블 WHERE 열이름 LIKE '%찾고싶은문자%';
# 뒤에 나오는 문자 모를 때
SELECT 열이름 FROM 테이블 WHERE 열이름 LIKE '찾고싶은문자_';
- % 는 자주 사용하는 와일드카드로 모든 문자를 의미한다고 생각하면 됨
- 와일드카드란?
- 문자열에서 특정한 문자 또는 문자들을 대체하기 위해 사용하는 문자를 의미
- % : 숫자 0 또는 문자들을 대체하기 위해 사용됨
- _ : 한 개의 단어를 대체하기 위해 사용됨
- 문자열에서 특정한 문자 또는 문자들을 대체하기 위해 사용하는 문자를 의미
예시( 고객정보 테이블 : CUSTOMERS)
ID | NAME | CITY | COUNTRY |
1 | SUE | BERLIN | GERMANY |
2 | DAVID | BERN | SWITZERLAND |
3 | SAM | NANTES | FRANCE |
4 | KIM | RESENDE | BRAZIL |
5 | LEE | VERSAILLES | FRANCE |
6 | BERNEY | BERGAMO | ITALY |
7 | SANDY | BERLIN | GERMANY |
8 | YOUNG | SEOUL | KOREA |
- Primary Key는 ID
더보기
CREATE TABLE CUSTOMERS
(ID INT NOT NULL,
NAME CHAR(20) NOT NULL,
CITY CHAR(20) NOT NULL,
COUNTRY CHAR(20) NOT NULL,
PRIMARY KEY('ID')
);
INSERT INTO CUSTOMERS
VALUES
(1, 'SUE', 'BERLIN', 'GERMANY'),
(2, 'DAVID', 'BERN', 'SWITZERLAND'),
(3, 'SAM', 'NANTES', 'FRANCE'),
(4, 'KIM', 'RESENDE', 'BRAZIL'),
(5, 'LEE', 'VERSAILLES', 'FRANCE'),
(6, 'BERNEY', 'BERGAMO', 'ITALY'),
(7, 'SANDY', 'BERLIN', 'GERMANY'),
(8, 'YOUNG', 'SEOUL', 'KOREA');
문제
Q1. 위 테이블에서 BER로 시작하는 도시에 거주하는 고객들을 찾아서 출력하는 쿼리문
ID | NAME | CITY | COUNTRY |
1 | SUE | BERLIN | GERMANY |
2 | DAVID | BERN | SWITZERLAND |
6 | BERNEY | BERGAMO | ITALY |
7 | SANDY | BERLIN | GERMANY |
더보기
SELECT *
FROM CUSTOMERS
WHERE CITY LIKE 'BER%';
Q2. 'NY'로 끝나는 나라에 거주하는 고객
ID | NAME | CITY | COUNTRY |
1 | SUE | BERLIN | GERMANY |
7 | SANDY | BERLIN | GERMANY |
더보기
SELECT *
FROM CUSTOMERS
WHERE COUNTRY LIKE '%NY';
Q3. ES를 포함한 도시에 거주하는 고객
더보기
SELECT *
FROM CUSTOMERS
WHERE CITY LIKE '%ES%';
반응형
'SQL' 카테고리의 다른 글
[SQL] 열 결합 시 문자 삽입하기(결합 연산자 '||') (0) | 2022.02.11 |
---|---|
[SQL] 2개 이상의 열 결합하기(결합 연산자 '||') (0) | 2022.02.11 |
[SQL] 논리 연산자 (IN, NOT IN) (0) | 2022.02.11 |
[SQL] 논리연산자 사용하기 (OR) (0) | 2022.02.08 |
[SQL] 논리연산자 사용하기 (AND) (0) | 2022.02.08 |