coding / / 2023. 8. 24. 16:31

조건에 따른 SELECT문 활용

728x90
반응형

SELECT문은 기본적으로 데이터를 검색하는 기능으로 CRUD 중 READ에 해당되는 기능을 수행합니다.

기본적인 구문은 아래와 같습니다.

SELECT(속성1, 속성2, …) FROM (테이블명) WHERE (조건식);

(조건식)에 의해 해당하는 행(가로)을 선택하고 (속성1, 속성2, …)에 의해 열(세로)를 보여 줍니다.

SELECT * FROM (테이블명);

WHERE 조건문이 없으므로 모든 행을 선택하고, * 을 통해 모든 열을 보여 줍니다.

즉, (테이블명)의 이름을 가진 테이블의 모든 데이터를 확인하는 명령어입니다.


SELECT * FROM(테이블명) WHERE (조건1) AND (조건2);

(테이블명)의 테이블에서 (조건1)과 (조건2)를 모두 만족하는 행의 모든 열을 보여줍니다.

SELECT * FROM (테이블명) WHERE (속성1) BETWEEN (값1) AND (값2);

(테이블명)의 테이블에서 (속성1)의 값이 (값1)과 (값2)의 사이인 행의 모든 열을 보여 줍니다.

아래의 명령어로 예를 비교해 봅니다.

SELECT * FROM School Where age > 23 AND age < 30;

SELECT * FROM School Where age BETWEEN 23 AND 30;

두 명령어를 통한 결과 값은 같지만 성능은 BETWEEN을 사용한 명령어가 더 좋습니다.

단순히 AND만 사용한 첫번째 쿼리는 전체 데이터에서 age가 23보다 큰 값과 30보다 작은 데이터를 각각 구해 이들의 교집합을 구하는 연산이며,

BETWEEN을 사용한 두 번째 쿼리는 age라는 속성에서 23라는 값부터 시작하여 30라는 값보다 작은 값을 찾는 연산이기 때문입니다.


SELECT * FROM (테이블명) WHERE (조건1) OR (조건2);

(테이블명)의 테이블에서 (조건1)과 (조건2) 중 하나라도 만족하는 행의 모든 열을 보여 줍니다.

SELECT * FROM (테이블명) WHERE (속성1) IN (조건1, 조건2, …);

SELECT * FROM (테이블명) WHERE (속성1) NOT IN (조건1, 조건2, …);

(테이블명)의 테이블에서 (속성1)의 값이 (조건1)이거나 (조건2)인 행의 모든 열을 보여 줍니다.

(테이블명)의 테이블에서 (속성1)의 값이 (조건1)이나 (조건2)에 포함되지 않는 값을 보여 줍니다.

여기서 IN을 사용한 구문 또한 BETWEEN을 사용한 구문과 같이 OR 보다 성능이 좋습니다.

아래의 명령어를 예로 비교해 봅니다.

SELECT * FROM School WHERE age=23 OR age=24 OR age=25;

SELECT * FROM School WHER age IN (23,24,25);

두 명령어를 통한 결과 값은 같지만 성능은 IN을 사용한 명령어가 더 좋습니다.


SELECT * FROM (테이블명) WHERE NOT (조건1);

(테이블명)의 테이브렝서 (조건1)을 만족하지 않는 행의 모든 열을 보여 줍니다.

SELECT * FROM (테이블명) WHERE (속성1) LIKE ‘A_’;

(테이블명)의 테이블에서 (속성1) 중 ‘A+1글자’ 값을 가진 행의 모든 열을 보여 줍니다.

SELECT * FROM (테이블명) WHERE (속성1) LIKE ‘A_ _’;

(테이블명)의 테이블에서 (속성1) 중 ‘A+2글자’ 값을 가진 행의 모든 열을 보여 줍니다.


SELECT * FROM (테이블명) WHERE (속성1) LIKE ‘A%’;

(테이블명)의 테이블에서 (속성1) 중 ‘A’로 시작하는 값을 가진 행의 모든 열을 보여 줍니다.

SELECT * FROM (테이블명) WHERE (속성1) LIKE ‘%A’;

(테이블명)의 테이블에서 (속성1) 중 ‘A’로 끝나는 값을 가진 행의 모든 열을 보여 줍니다.

SELECT * FROM (테이블명) WHERE (속성1) LIKE ‘%A%’;

(테이블명)의 테이블에서 (속성1) 중 ‘A’를 포함하는 값을 가진 행의 모든 열을 보여 줍니다.


SELECT * FROM (테이블명) ORDER (속성1) (순서);

(테이블명)의 테이블에서 (속성1)의 (순서)에 따라 모든 열을 보여 줍니다.

이때 (순서)에는 DESC(내림차순) 또는 ASC(오름차순)을 입력하며 이를 생략시 default 같은 ASC(오름차순)입니다.

SELECT (속성1) AS ‘별명1’, (속성2) AS ‘별명2’, FROM (테이블명);

(테이블명)의 테이블에서 (속성1)은 별명1이란 이름으로, (속성2)는 별명2라는 이름으로 보여 줍니다.

SELECT DISTINCT (속성1), (속성2), …. FROM (테이블명);

(테이블명)의 테이블에서 (속성1), (속성2)… 를 선택하는데 이때 중복되는 값은 제외합니다.

728x90
반응형

'coding' 카테고리의 다른 글

GSAP 제공하는 Style 트윈 기본 문법  (0) 2023.09.22
SRT 예매 매크로 - 크롬 확장 프로그램  (1) 2023.09.08
firebase + 리액트 배포  (0) 2023.08.14
git 설치하기  (0) 2023.08.14
Git - Commit Message Convention  (0) 2023.08.02
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유