데이터베이스

[DB] (MySQL) 데이터 조작어(SELECT, FROM, WHERE, GROUP BY 복합)

com_0 2022. 4. 17. 14:55

<SELECT문의 기본문법>

SELECT        [ALL | DISTINCT] 속성이름

FROM         테이블 이름

[WHERE       검색조건]

[GROUP BY   속성이름]

[HAVING      검색조건]

[ORDER BY    속성이름 [ASC | DESC] ]

 

--> 위의 순서대로 검색을 위한 데이터 조작어 질의문을 작성해야 한다.

 


집합 연산자

 - IN : WHERE절 안에서 사용, 집합의 원소인지 판단할 수 있음

 - NOT IN : WEHRE절 안에서 사용, 집합의 원소가 아닌지 판단할 수 있음

 

패턴 연산자 LIKE

: 속성의 이름과 비교해서 같은 투플만 선택가능 / '%축구%' %기호를 이용해 해당 단어가 포함된 속성 꺼내기 가능

 

ORDER BY

 : 내림차순 또는 오름차순으로 정리하기 때문에 하나의 속성만 와야할 것 같지만, 여러개의 속성을 입력한다면 속성의 순서대로 기본 오름차순 정렬을 하고, 동등한 값이 있을 때 다음 속성을 이용해 정렬을 한다.

만약, 각각의 속성에서 오름, 내림차순을 변경하고 싶다면 ASC(오름차순), DESC(내림차순) 정렬을 이용한다.

 

GROUP BY (★)

: 공부하면서 가장 헷갈렸던 명령어이다ㅠ

일단 group by 연산자를 사용하기 위해서는, 집계함수를 사용해야한다.

집계함수에는 AVG, MIN, MAX, COUNT의 다섯가지가 존재한다.

SELECT문의 속성선택을 할떄 집계함수를 같이 활용해 준다 --> SUM(saleprice) 이런식? 실제로 SQL문을 실행하고 나면, SUM(saleprice)라고 표시되는게 보기 안좋기 때문에 AS를 사용해서 새로운 속성이름을 만들어주는 것이 좋다.

집계함수를 이용할 때, GROUP BY를 이용하면, 내가 원하는 속서의 값들끼리만 묶어서 표현할 수 있다 ex) 고객별로 주문한 도서의 총 수량과 총 판매액은?

 

조인

: FROM 테이블1, 테이블2 형태를 통해서 두 테이블의 카티전 프로덕트 연산을 할 수 있다

'데이터베이스' 카테고리의 다른 글

[DB] (MySQL) 관계대수 연산자  (0) 2022.04.17