select *
from city
where population >= 8000000;
//인구수가 8000000 이상인 인구만 보여주기
관계연산자
* or 연산자
* and 연산자
* 조건 연산자 (=, >,<,<=, >=, <>, !=)
* 관계 연산자 (not, and, or)
다양한 연산자 사용 가능하다.
select *
from city
where population > 7000000
AND population < 8000000;
한국에 있는 도시들만 출력하기
SELECT *
FROM city
WHERE CountryCode = 'KOR'
AND Population >= 1000000;
Between
데이터가 숫자로 구성되어 연속적인 값은 BETWEEN ... AND 로 사용 가능.
SELECT *
FROM city
WHERE Population BETWEEN 7000000 AND 8000000;
IN
이상적인 값의 조건에서는 In() 사용 가능
SELECT *
FROM city
WHERE Name IN('Seoul', 'New York', 'Tokyo');
// 정한것들 중에서만 보고싶다.
한국, 미국, 일본 도시들만 보기
SELECT *
FROM city
WHERE CountryCode IN('KOR','USA','JPN');
LIKE
* 문자열의 내용을 검색하기 위해 like 연산자를 사용한다.
* 문자 뒤에 %- 무엇이든 (%) 허용
SELECT *
FROM city
WHERE Name LIKE 'tel %'
// tel 로 시작하는 도시 이름 전부 가져오기
* 한 글자와 매치하기 위해서는 '_'를 사용한다.
SELECT *
FROM city
WHERE CountryCode LIKE 'KO_'
// KOR이 전부 검색된다.
// 한글자와 매치
SUB QUERY
* 서브 쿼리
* 쿼리문 안에 또 쿼리문이 들어 있는 것.
* 서브 쿼리의 결과가 둘 이상이 되면 에러 발생한다.
// 이 쿼리 자체의 결과는 'kor'이다.
SELECT CountryCode
FROM city
WHERE Name = 'Seoul';
// 쿼리안에 쿼리문
SELECT *
FROM city
WHERE CountryCode = (
SELECT CountryCode
FROM city
WHERE Name = 'Seoul'
);
// Countrycode 가 'kor'인 도시를 모두 조회하면
// 한국의 도시들이 모두 출력된다.
ANY
서브 쿼리의 여러개의 결과 중 한가지만 만족해도 가능하다.
SOME 은 ANY와 동일한 의미로 사용한다.
=ANY 구문은 IN 과 동일한 의미이다.
SELECT *
FROM city
WHERE Population > ANY (
SELECT Population
FROM city
WHERE District = 'New York'
);
new york disctrict를 가지는 population보다 하나라도 인구가 큰 곳을 출력.
서브 쿼리의 결과가 여러개이다.
이 여러개중에 한개라도 만족한다면 모두 출력한다.
ALL
서브쿼리의 여러개의 결과를 모두 만족시켜야 한다.
SELECT *
FROM city
WHERE Population > ANY (
SELECT Population
FROM city
WHERE District = 'New York'
);
any와 같은 코드여도 이번에는 뉴욕의 인구수보다 많은 도시들을 보여준다.
반응형