본문 바로가기
Computer Science/DataBase

SQL (GROUP BY, HAVING, ALTER TABLE)

by JC_ 2023. 4. 10.

기본 함수와 연산

- 문자열 함수

  • SUBSTR(문자열, start, length) : 문자열 자르기
    • 시작 인덱스 1, 마지막 인덱스 -1
  • TRIM(문자열), LTRIM(문자열),RTRIM(문자열) : 문자열 공백 제거
  • LENGTH(문자열) : 문자열 길이
  • REPLACE(문자열, 패턴, 변경값) : 패턴에 일치하는 부분을 변경
  • UPPER(문자열), LOWER(문자열) : 대소문자 변경
  • || : 문자열 합치기(concatenation)

 

- 숫자 함수

  • ABS(숫자) : 절댓값
  • SIGN(숫자) : 부호 (양수 -> 1, 음수 -> -1, 0 -> 0)
  • MOD(숫자1, 숫자2) : 숫자1을 숫자2로 나눈 나머지
  • CEIL(숫자), FLOOR(숫자), ROUND(숫자, 자리) : 올림, 내림, 반올림
  • POWER(숫자1, 숫자2) : 숫자1의 숫자2 제곱
  • SQRT(숫자) : 제곱근

 

- 산술 연산자

  • +, -, *, / 와 같은 산술 연산자와 우선 순위를 지정하는 () 기호를 연산에 활용할 수 있음

 

 

 


GROUP BY

- ALIAS

  • 칼럼명이나 테이블명이 너무 길거나 다른 명칭으로 출력하고 싶을 때는 ALIAS를 활용
  • AS를 생략하여 공백으로 표현할 수 있음
  • 별칭에 공백, 특수문자 등이 있는 경우 따옴표로 묶어서 표기

 

- GROUP BY

- GROUP

  • SELECT 문의 optional 절
  • 선택된 행 그룹을 하나 이상의 열 값으로 요약 행으로 만든다
  • 문장에 WHERE 절이 포함된 경우 반드시  WHERE 절 뒤에 작성해야 한다
  • 집계함수와 함께 활용해야 의미가 있다.
  • 지정된 갈럼의 값이 같은 행들로 묶인다.
  • 그룹화된 각각의 그룹이 하나의 집합으로 집계함수의 인수로 넘겨짐

  • GROUP BY 절에 명시하지 않은 컬럼은 별도로 지정할 수 없음
    • 그룹마다 하나의 행을 출력하게 되므로 집계 함수 등을 활용해야 한다.
  •  GROUP BY 의 결과는 정렬되지 않음
    • 기존의 순서와 바뀌는 모습도 있다.
    • 원칙적으로 관계형 데이터베이스에서는 ORDER BY 를 통해 정렬한다.

 

- HAVING

  • 집계함수는 WHERE 절의 조건식에서는 사용할 수 없음(실행 순서 때문에)
    •  WHERE로 처리하는 것이  GROUP BY 그룹화보다 순서상 앞서 있기 때문
  • 집계 결과에서 조건에 맞는 값을 따로 활용하기 위해서 HAVING을 활용

 

- SELECT문장 실행 순서

  • FROM : 테이블에서
  • WHERE : 조건에 맞춰 뽑아
  • GROUP BY : 그룹화 하고
  • HAVING : 그 그룹에서 조건이 맞는 것들을
  • SELECT : 조회한 뒤
  • ORDER BY : 정렬해서 
  • LIMIT / OFFSET : 특정 범위의 값들을 가져와

 

 

 


ALTER TABLE

- ALTER TABLE

 

 

'Computer Science > DataBase' 카테고리의 다른 글

문자열 (String)  (0) 2023.04.17
리스트(List)  (0) 2023.04.13
SQL (WHERE, 집계 함수, LIKE, ORDER BY)  (0) 2023.04.03
SQL(table CREATE, DROP/ table INSERT, SELECT)  (0) 2023.03.30
Database  (0) 2023.03.29

댓글