-
6.1 Special operators and clauses데이터베이스 시스템 2024. 10. 22. 12:54
IN 연산자
IN 연산자는 WHERE 절에서 사용되어 특정 값이 여러 값 중 하나와 일치하는지 여부를 확인하는 데 사용된다. 아래 그림의 SELECT 문은 IN 연산자를 사용하여 Language 열에 Dutch, Kongo, 또는 Albanian 값이 있는 행들만 선택한다.
SELECT * FROM CountryLanguage WHERE Language IN ('Dutch', 'Kongo', 'Albanian');
더보기ABW Dutch T 5.3
AGO Kongo F 13.2
ALB Albanian T 97.9
Between 연산자
BETWEEN 연산자는 값이 두 다른 값 사이에 있는지 확인하는 또 다른 방법을 제공한다. 이 연산자는 value BETWEEN minValue AND maxValue로 작성되며, 이는 value >= minValue AND value <= maxValue와 동일하다.
SELECT Name FROM Employee WHERE Hireplace >= '2000-01-01' AND HireDate <= '2020-01-01'; SELECT Name FROM Employee WHERE Hireplace BETWEEN '2000-01-01' AND '2020-01-01';
LIKE 연산자
LIKE 연산자는 WHERE 절에서 사용될 때, 두 개의 와일드카드 문자 `%`와 `_`를 사용하여 패턴에 맞는 텍스트를 찾는다.
- `%`는 임의의 길이의 문자를 매칭한다. 예: `LIKE 'L%t'`는 "Lt", "Lot", "Lift", "Lol cat" 등을 매칭한다.
- `_`는 정확히 한 글자를 매칭한다. 예: `LIKE 'L_t'`는 "Lot"과 "Lit"을 매칭하지만, "Lt"와 "Loot"은 매칭하지 않는다.
LIKE 연산자는 기본적으로 대소문자를 구분하지 않는 패턴 매칭을 수행하며, `BINARY` 키워드가 뒤따를 경우 대소문자를 구분하는 패턴 매칭을 수행한다. Ex:
LIKE BINARY 'L%t'
는 'Left'를 매칭하지만 'left'는 매칭하지 않는다.와일드카드 문자 `%` 또는 `_`를 검색하려면, 해당 문자 앞에 백슬래시(`\`)를 붙여야 한다. Ex:
LIKE 'a\%'
는 "a%"를 매칭한다.
정규 표현식 (Regular Expressions)
대부분의 관계형 데이터베이스는 정규 표현식을 사용하여 보다 고급 패턴 매칭을 수행할 수 있는 다른 메커니즘을 제공한다. Ex: MySQL은 REGEXP를 사용하여 텍스트를 정규 표현식과 비교한다. PostgreSQL은 SIMILAR TO를 사용하여 패턴 매칭을 수행한다.
DISTINCT 절
DISTINCT 키워드는 SELECT 문과 함께 사용되어 고유하거나 '중복되지 않는' 값만 반환한다.
예: 아래 그림의 첫 번째 SELECT 문은 두 개의 'Spanish' 행을 반환하지만, 두 번째 SELECT 문은 고유한 언어만 반환하여 'Spanish' 행이 하나만 결과에 포함된다.
SELECT Language FROM CountryLanguage WHERE IsOfficial = 'F'; SELECT DISTINCT Language FROM CountryLanguage WHERE IsOfficial = 'F';
더보기Spanish, Balochi, Spanish
Spanish, Balochi
ORDER BY 절
SELECT 문은 테이블에서 행을 선택할 때, 데이터가 특정한 순서로 반환된다는 보장이 없다. ORDER BY 절은 선택된 행들을 하나 이상의 열에 따라 오름차순(알파벳 순서 또는 증가하는 순서)으로 정렬한다. ORDER BY 절과 함께 사용되는 DESC 키워드는 행을 내림차순으로 정렬한다.
-- Order by Language (ascending) SELECT * FROM CountryLanguage ORDER BY Language; -- Order by Language (descending) SELECT * FROM CountryLanguage ORDER BY Language DESC; -- Order by CountryCode, then -- Language (ascending) SELECT * FROM CountryLanguage ORDER BY CountryCode, Language;
더보기-- 1
GAB Fang F 35.8
GAB Mbete F 13.8
FSM Woleai F 3.7
FSM Yap F 5.8
-- 2
FSM Yap F 5.8
FSM Woleai F 3.7
GAB Mbete F 13.8
GAB Fang F 35.8
-- 3
FSM Woleai F 3.7
FSM Yap F 5.8
GAB Fang F 35.8
GAB Mbete F 13.8[출처: zyBooks]
'데이터베이스 시스템' 카테고리의 다른 글
6.3 Aggregate functions (0) 2024.10.23 6.2 Simple Functions (0) 2024.10.22 1.4 Database design and programming (0) 2024.10.07 1.3 Query languages (0) 2024.10.05 1.2 Database systems (0) 2024.10.05