쿼리문의 실행 순서
- SELECT
- FROM
- WHERE
- GROUP BY
- HAVING
- SELECT (서브 쿼리)
- ORDER BY
- LIMIT
열(Column) 전체 조회
mysql> SELECT * FROM "DB명"."테이블명";
-- DB가 선택되어 있다면 DB명은 생략가능하다.
mysql> SELECT * FROM "테이블명";
[SELECT] : 데이터를 조회할 때 사용하는 예약어
[*] : '모든 것'을 의미하며, *가 사용된 위치가 열(컬럼)을 나타내는 위치이므로 모든 열(컬럼)을 의미한다.
[FROM] : 테이블에서 내용을 가져온다는 의미의 예약어
["DB명"."테이블명"] : DB안에 있는 테이블을 의미한다.
해당 테이블의 모든 열(컬럼)들을 조회한다.
특정 열(Column) 조회
-- 단일 컬럼 조회
mysql> SELECT "컬럼명" FROM "테이블명"
-- 다중 컬럼 조회
mysql> SELECT "컬럼명1", ..., "컬럼명N" FROM "테이블명"
여러 개의 Column을 조회할 때는 테이블의 컬럼 순서와 달라도 된다.
특정 조건에 따른 조회
특정 조건에 부합하는 데이터들만 간추려서 보고 싶을 때는 다음과 같이 WHERE을 사용하여 조회할 수 있다.
mysql> SELECT "컬럼명" FROM "테이블명" WHERE "조건식";
[WHERE] : 조건식을 사용한다는 예약어
특정 조건(숫자)에 따른 조회
특정 숫자보다 크거나 작은 행 데이터 조회 (단일 조건) - 관계 연산자
해당 숫자와 대소 비교를 통해 특정 데이터만 조회하고 싶을 때는 관계 연산자를 이용할 수 있다.
관계 연산자는 숫자를 비교하여 조회를 해야 할 경우 또는 특정 문자열을 가진 데이터를 조회해야 할 경우 사용된다.
관계 연산자
A > B : A가 B보다 크면 조회한다.
A >= B : A가 B보다 크거나 같으면 조회한다.
A < B : A가 B보다 작으면 조회한다.
A <= B : A가 B보다 작거나 같으면 조회한다.
A = B : A와 B가 같으면 조회한다.
mysql> SELECT "컬럼명" FROM "테이블명" WHERE A "관계연산자" B;
특정 숫자보다 크거나 작은 행 데이터 조회 (다중 조건) - 관계 연산자, 논리 연산자
여러 개의 조건을 통해 데이터를 조회할 때는 논리 연산자를 사용하여 조회할 수 있다.
논리 연산자
"조건식1" AND "조건식2" : 조건식1이 참이면서 조건식2가 참이면 조회한다. (둘 다 참이어야 조회)
"조건식1" OR "조건식2" : 조건식1이 참이거나 조건식2가 참이면 조회한다. (둘 중 하나라도 참이면 조회)
mysql> SELECT "컬럼명" FROM "테이블명" WHERE A "관계연산자" B AND C "관계연산자" D;
mysql> SELECT "컬럼명" FROM "테이블명" WHERE A "관계연산자" B OR C "관계연산자" D;
-- 보기 쉽게 정리하면
mysql> SELECT "컬럼명" FROM "테이블명" WHERE "조건식1" AND "조건식2";
mysql> SELECT "컬럼명" FROM "테이블명" WHERE "조건식1" OR "조건식2";
특정 범위에 포함되는 행 데이터 조회
데이터를 조회하다 보면 특정 범위에 해당하는 데이터들만 조회하는 경우가 빈번히 생긴다.
현재까지 사용한 데이터들로 예를 들면 현재 보유한 돈이 5000 ~ 10000까지 해당하는 데이터들을 조회할 때이다.
이럴 때 사용할 수 있는 방법은 다음과 같으며, 편한 방법을 이용하면 된다.
논리 연산자 AND를 이용하여 특정 숫자(범위)에 포함된 데이터 조회
-- A가 x ~ y에 해당하는 데이터들만 조회
mysql> SELECT "컬럼명" FROM "테이블명" WHERE A >= x AND A <= y;
BETWEEN ~ AND를 이용하여 특정 숫자(범위)에 포함된 데이터 조회
-- A가 x ~ y에 해당하는 데이터들만 조회
mysql> SELECT "컬럼명" FROM "테이블명" WHERE A BETWEEN x AND y;
특정 조건(문자)에 따른 조회
특정 문자열과 일치하는 데이터 조회
특정 컬럼의 데이터가 특정 문자열과 일치하는 데이터들을 조회할 때는 관계 연산자(=)를 이용하여 조회할 수 있다.
mysql> SELECT "컬럼명" FROM "테이블명" WHERE "컬럼명" = '문자열';
여러 개의 문자열에서 일치하는 데이터 조회
여러 개의 문자들 중에서 포함되는 데이터를 가지고 있는 행 데이터들을 조회하고 싶을 때는 IN()을 사용하여 조회할 수 있다.
mysql> SELECT "컬럼명" FROM "테이블명" WHERE "컬럼명" IN('문자열1', ..., '문자열N');
일부 문자와 일치하는 데이터 조회
데이터 중 일부 문자와 일치하는 데이터를 조회할 때는 LIKE를 사용하여 조회할 수 있다.
비교하기 위한 글자가 아닌 문자는 언더바(_)또는 퍼센티지(%)로 나타낼 수 있다.
언더바(_)를 사용하여 조회
문자를 언더바(_)로 나타내어 특정 문자와 일치하는 데이터를 조회하는 방법이다.
언더바(_)는 한 글자에 대해 어떤 글자가 오던 전부 허용한다는 의미로 사용된다.
mysql> SELECT "컬럼명" FROM "테이블명" WHERE "컬럼명" LIKE '_"문자"';
%를 사용하여 조회
언더바(_)를 사용하여 글자 수를 맞춰가며 조회하기는 제약이 많다.
이럴 때 사용할 수 있는 게 '%'이다.
'%'는 몇 글자가 오던 어떤 글자가 오던 전부 허용한다는 의미로 사용된다.
mysql> SELECT "컬럼명" FROM "테이블명" WHERE "컬럼명" LIKE '%"문자"';
Reference
혼자 공부하는 SQL : 네이버 도서
네이버 도서 상세정보를 제공합니다.
search.shopping.naver.com