본문 바로가기

SQL

[SQL] where조건모음_select구조_그룹바이_형변환

* Like

3. % : 무엇이든 허용한다. , ‘이 제일 앞 글자인 것들을 추출한다.

5. _ : 아무거나 한글자가 오는 값을 추출한다.

> %, _ 가 검색할 문자열의 제일 앞에 들어가는 것은 성능에 나쁜 영향을 끼칠 수 있다. 인덱스를 사용하더라도 인덱스를 사용하지 않고 전체 데이터를 검색하게 된다.

 

* any

5. 쿼리문 경남에 사는 회원은 2명이다.

3. 원래 서브쿼리는 1개의 데이터로 비교해야되지만 두명인경우 사용됨. 키가 173보다 크거나 같은 사람 또는 키가 170보다 크거나 같은 사람이 모두 출력됨. , 170보다 크거나 같은 사람이 모두 출력됨.

 또한 >= 기호가 = 기호였다고 가정해보자. 그럼 두명과 같아야하는데 any이므로 in 과 동일하게 쓰임.(or)

 

* all

3. 위의 any와 비슷하다. 하지만 그리고의 의미. 키가 170보다 크거나 같아야할 뿐만 아니라, 173보다 크거나 같아야하기 때문에 결국 키가 173보다 크거나 같아야하기 때문에 위에보다 인원이 적다.(and)

 

* order by

3. 2개인 경우 키 순서대로 조회하고, 만약 키가 같을 경우 이름 순으로 정렬한다.

 그리고 order by select, from, where, group by, having, order by 중에 제일 뒤에 와야 한다. 그리고 order by절은 성능을 상당히 떨어뜨릴 소지가 있다. 꼭 필요한 경우가 아니라면 제외.

 

* limit

3. 시작값 0, 끝값 5를 줘서 다섯명을 뽑을 수 있고, 끝값만 줘서 5명을 뽑을 수도 있다.

 

* group by

3. 데이터를 그룹화 해준다. (회원별 구매 개수). 사용자별로 묶으면서 구매 개수를 합침.

 

* group by

3. 사용자별로 묶으면서 구매갯수와 가격을 곱하여 더함. 총 구매액이 나옴.

 

* group by / avg

3. 사용자별로 묶으면서 구매한 개수 평균값을 조회함.

 

* max / min 서브쿼리 조합(가장큰, 가장작은 회원)

 

* having

6. 총구매액 중 1000원이 넘는 사용자를 구할 때 집계함수 sum이 필요한다. 집계함수는 group by where 절에 들어갈 수 없다. 그룹핑한 대상에 대한 where 절을 걸 때 사용한다.

 

* with rollup

6. 총합 또는 중간합계가 필요할 때 사용한다.(그룹바이와 함께 사용한다.)

5. num(구매시퀀스) 와 구매그룹이름을 같이 묶어 구매그룹별 구매한 모든 것들의 중간합계와 토탈합계가 모두나옴. 구매그룹만으로 묶었다면, 빨간 네모칸만 나옴.

 

* 피벗(pivot) : 여러 데이터 중 자신이 원하는 데이터만을 가지고 원하는 행과 열에 데이터를 재배치

> 위처럼 각 판매자가 계절별로 몇 개 구매했는지 sum(), if()를 통해 피벗테이블로 만들 수 있다.

 

* select 문의 기본형식

 

* cast, convert 명시적 형변환

4,5. 3번 평균 구매갯수는 2.6으로 소수점으로 나온다. 개수이므로 반올림을 하려면 위처럼 데이터 형식을 변환해줘야한다.

> signed : 부호를 가지는 값(양수, 음수)

> unsigned : 부호를 가지지 않는 값(양수)

 

* cast, convert 명시적 형변환

> 다양한 구분자를 날짜 형식으로도 변경할 수 있다.

 

4. concat : 여러 문자열을 하나의 문자열로 합침.

 

3. 문자열+문자열 = 숫자로 변경되어 계산됨.

4. 문자와 문자를 연결 = 그대로 문자로 처리

5. 숫자와 문자를 연결 = 그대로 문자로 처리

6. 앞에 2가 들어간 문자열과 비교하여 1>2로 변환되어 false > 0이 찍힘

7. 앞에 2가 들어간 문자열과 비교하여 3>2로 변환되어 true > 1이 찍힘

8. 앞에 숫자가 없으므로 문자열은 그냥 0으로 변환되어 true > 1이 찍힘