[웹 서비스 개발] SQL2_Syntax_2_Script

김광일·2024년 11월 15일

웹 서비스 개발

목록 보기
30/45

일자 : 11주차 2차시

[1] MySQL LIKE 연산자

  • LIKE 연산자는 WHERE 절에서 특정 패턴을 검색하는 데 사용된다.
  • 두 가지 자주 사용되는 와일드카드는 다음과 같다:
    • 퍼센트 기호 (%)는 0개, 1개 또는 여러 개의 문자를 나타낸다.
    • 언더스코어 (_)는 하나의 단일 문자를 나타낸다.
  • 퍼센트 기호와 언더스코어는 조합하여 사용할 수도 있다.

1) LIKE 구문

SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;

2) '%', '_' 와일드카드를 사용한 다양한 LIKE 연산자의 예시:

LIKE 연산자설명
WHERE CustomerName LIKE 'a%'"a"로 시작하는 모든 값을 찾는다.
WHERE CustomerName LIKE '%a'"a"로 끝나는 모든 값을 찾는다.
WHERE CustomerName LIKE '%or%'"or"가 포함된 모든 값을 찾는다.
WHERE CustomerName LIKE '_r%'두 번째 위치에 "r"가 있는 모든 값을 찾는다.
WHERE CustomerName LIKE 'a_%'"a"로 시작하고 길이가 2 이상인 모든 값을 찾는다.
WHERE CustomerName LIKE 'a__%'"a"로 시작하고 길이가 3 이상인 모든 값을 찾는다.
WHERE ContactName LIKE 'a%o'"a"로 시작하고 "o"로 끝나는 모든 값을 찾는다.

3) 예시

// "a"로 시작하는 모든 고객을 선택하는 SQL 문
SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';

// "a"로 끝나는 모든 고객을 선택하는 SQL 문
SELECT * FROM Customers
WHERE CustomerName LIKE '%a';

// "or"가 포함된 모든 고객을 선택하는 SQL 문
SELECT * FROM Customers
WHERE CustomerName LIKE '%or%';

// 두 번째 위치에 "r"가 있는 모든 고객을 선택하는 SQL 문
SELECT * FROM Customers
WHERE CustomerName LIKE '_r%';

// "a"로 시작하고 길이가 3 이상인 모든 고객을 선택하는 SQL 문
SELECT * FROM Customers
WHERE CustomerName LIKE 'a__%';

// "a"로 시작하고 "o"로 끝나는 모든 고객을 선택하는 SQL 문
SELECT * FROM Customers
WHERE ContactName LIKE 'a%o';

// "a"로 시작하지 않는 모든 고객을 선택하는 SQL 문
SELECT * FROM Customers
WHERE CustomerName NOT LIKE 'a%';

[2] MySQL 와일드카드 문자

  • 와일드카드 문자는 문자열에서 하나 이상의 문자를 대체하는 데 사용된다.
  • 와일드카드 문자는 LIKE 연산자와 함께 사용된다. LIKE 연산자는 WHERE 절에서 특정 패턴을 검색하는 데 사용된다.
기호설명예시
%0개 또는 그 이상의 문자를 나타낸다bl%는 bl, black, blue, blob을 찾는다.
_단일 문자를 나타낸다h_t는 hot, hat, hit을 찾는다.
[]지정된 문자 집합 중 하나와 일치한다[abc]는 a, b, c 중 하나와 일치한다.
^문자 집합에서 제외된 문자를 나타낸다[^abc]는 a, b, c가 아닌 문자와 일치한다.
-문자 범위를 지정한다[a-z]는 소문자 알파벳 중 하나와 일치한다.

1) 예시 - '%' 와일드카드 사용

// "ber"로 시작하는 모든 고객을 선택하는 SQL 문
SELECT * FROM Customers
WHERE City LIKE 'ber%';
// City가 "ber"로 시작하는 모든 고객을 찾는다.
// "es" 패턴을 포함하는 모든 고객을 선택하는 SQL 문
SELECT * FROM Customers
WHERE City LIKE '%es%';
// City에 "es"가 포함된 모든 고객을 찾는다.

2) 예시 - '_' 와일드카드 사용

// "ondon"으로 끝나는 모든 도시를 선택하는 SQL 문
SELECT * FROM Customers
WHERE City LIKE '_ondon';
// City가 "ondon"으로 끝나는 모든 고객을 찾는다.
// "L"로 시작하고, 한 문자가 뒤따르며, "n"과 그 뒤에 한 문자가 있는 모든 도시를 선택하는 SQL 문
SELECT * FROM Customers
WHERE City LIKE 'L_n_on';
// City가 "L"로 시작하고 두 번째 자리가 "n"인 모든 고객을 찾는다.

3) 예시 - '[]', '^', '-' 와일드카드 사용

// "a", "b", 또는 "c" 중 하나로 시작하는 모든 고객을 선택하는 SQL 문
SELECT * FROM Customers
WHERE CustomerName LIKE '[abc]%';
// CustomerName이 "a", "b", "c"로 시작하는 모든 고객을 찾는다.
// "a", "b", 또는 "c"가 아닌 문자로 시작하는 모든 고객을 선택하는 SQL 문
SELECT * FROM Customers
WHERE CustomerName LIKE '[^abc]%';
// CustomerName이 "a", "b", "c"가 아닌 문자로 시작하는 모든 고객을 찾는다.
// "a"부터 "z"까지의 알파벳 중 하나로 시작하는 모든 고객을 선택하는 SQL 문
SELECT * FROM Customers
WHERE CustomerName LIKE '[a-z]%';
// CustomerName이 "a"부터 "z"까지의 알파벳 중 하나로 시작하는 모든 고객을 찾는다.

MySQL LIKE 연산자

profile
안녕하세요, 사용자들의 문제 해결을 중심으로 하는 프론트엔드 개발자입니다. 티스토리로 전환했어요 : https://pangil-log.tistory.com

0개의 댓글