Database/SQL

SELECT문

2022. 7. 27. 20:52

SELECT문


기본문법

SELECT <ALL , DISTINCT> 속성
 FROM 테이블명
 WHERE 검색조건
 GROUP BY 속성
 HAVING 검색조건
 ORDER BY 속성 <ASC/DESC>

<> 안 예약어들은 선택적으로 사용하면 된다.

 

WHERE 조건

조건으로 사용할 수 있는 술어

술어 연산자 예시
비교 = , <>, <, <= , > , >= population < 300000
범위 BETWEEN population BETWEEN 500000 AND 1000000
집합 IN, NOT IN population IN (1500000,500000, 2000000)
패턴 LIKE address LIKE '%인천%'
복합조건 AND , OR , NOT (address LIKE '인천%') AND
(population > 100000)
NULL IS NULL, IS NOT NULL address IS NULL

BETWEEN 은 논리연산자 AND를 사용할 수 있다.

 

WHERE 조건에서 집합연산자 사용 시 ( ) 써주어야 한다.

SELECT *
 FROM Book
 WHERE publisher IN ('굿스포츠','대한미디어');

▼ 틀린 문법

 SELECT *
 FROM Book
 WHERE publisher IN '굿스포츠','대한미디어';

 

와일드 문자

와일드 문자 의미 사용 예
+ 문자열끼리 연결 '커피' + '콩' = '커피콩'
% 0개 이상의 문자열과 일치 '아이스%' : 아이스를 포함하는 문자열
[] 1개의 문자와 일치 '[0-5]%' : 0-5 사이 숫자로 시작하는 문자열
[^ ] 1개의 문자와 불일치 '[^0-5]%' : 0-5 사이 문자로 시작하지 않는 문자열
_ 특정 위치의 1개 문자가 있다 '_장%' : 두번째 철자에 '장'이 들어가는 문자열

 

 

집계함수

집계 함수 문법 사용 예
SUM SUM( ALL | DISTINCT 속성) SUM(populaton)
AVG AVG( ALL | DISTINCT 속성) AVG(score)
COUNT COUNT( ALL | DISTINCT 속성 또는 *) COUNT(*)
MAX MAX( ALL | DISTINCT 속성) MAX(score)
MIN MIN( ALL | DISTINCT 속성) MIN(score)

 

 

GROUP BY와  HAVING절 문법 주의사항

GROUP BY

 SELECT절에는 GROUP BY 에서 사용된 그룹 기준이 된 <속성>과 집계함수만 출력할 수 있다.

 

예)

SELECT department, avg(sal)
 FROM dept
 GROUP BY department;

 

HAVING

 HAVING절은 반드시 GROUP BY 와 함께 작성되어야 하고, HAVING절의 조건에는 집계함수가 와야 한다.

 

예) 

SELECT custid, COUNT(*)
 FROM orders
 WHERE saleprice >= 7500
 GROUP BY custid
 HAVING count(*) >= 2;

 

'Database > SQL' 카테고리의 다른 글

집합연산  (0) 2022.07.28
Q3-31 : 상관 부속질의  (0) 2022.07.28
부속질의  (0) 2022.07.28
조인(JOIN)  (0) 2022.07.28
SQL과 일반 프로그래밍 언어의 차이점  (0) 2022.07.27