• 티스토리 홈
  • 프로필사진
    31514
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
31514
  • 프로필사진
    31514
    • 분류 전체보기 (106)
      • Book (66)
        • Learning SQL (9)
        • SQL 레벨업 (8)
        • 견고한 데이터 엔지니어링 (5)
        • 운영체제 (2)
        • 스파크 완벽 가이드 (9)
        • 파이썬 코딩의 기술 (29)
        • 분산 컴퓨팅 (4)
      • 개발 (24)
      • 기타 (10)
        • 출퇴근 공부 간단 정리 (7)
      • ELK (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
      • 31514의 이전 블로그는 여기로!
      등록된 공지가 없습니다.
    # Home
    # 공지사항
    #
    # 태그
    # 검색결과
    # 방명록
    • SQL 사전
      2024년 09월 10일
      • 31514
      • 작성자
      • 2024.09.10.:58
      SQL을 사용하면서 몰랐던 부분에 대해 정리하는 글(계속 수정)

      NULL 관련

      • IFNULL(컬럼명, 대체값)

      GROUP BY 관련

      • HAVING 절에 집계 함수를 사용할 수 있다.

      UNION 관련

      • UNION을 사용하여 테이블을 합친 뒤 ORDER BY를 사용할 수 있다.

      윈도우 함수 관련

      • PERCENT_RANK() OVER (ORDER BY 컬럼명)

      사칙연산 관련

      • N DIV M : N을 M으로 나눈 몫을 구할 수 있다.

      ORDER BY 관련

      SELECT CONCAT(컬럼명, '추가')
      FROM TABLE
      ORDER BY 1;

      만약 위와 같은 쿼리가 있을 때, 컬럼명이 숫자 자료형이라면 의도한 대로 정렬되지 않을 수 있다.

      그 이유는 숫자 자료형이 문자 자료형으로 바뀌기 때문이다.

      만약 숫자에 문자를 추가한 다음 숫자를 기준으로 정렬하고 싶다면 아래와 같은 쿼리를 사용하자.

      SELECT CONCAT(컬럼명, '추가')
      FROM TABLE
      ORDER BY 컬럼명;

      문자열 관련

      length

      select length(컬럼명) char_length
      from table
      
      -- 문자열의 문자 개수를 반환

      position

      select position('찾고 싶은 문자열' in 컬럼명)
      from table;
      
      -- 컬럼에서 찾고자 하는 문자열의 위치를 알 수 있음

      locate

      select locate('찾고 싶은 문자열', 컬럼명, 시작 위치)
      from table;
      
      -- 시작 위치에서 시작하는 찾고자 하는 문자열의 위치를 찾음

      replace

      select replace(원래 문자열, 바꿀 문자열, 대체할 문자열)
      from table;
      
      -- 원래 문자열에서 바꿀 문자열과 일치하는 모든 문자열이 대체됨

      substring

      select substring(문자열, 시작 위치, 길이)
      
      -- 문자열의 시작 위치에서 길이만큼 추출함

      숫자 데이터 관련

      mod

      select mod(N, M)
      
      -- N을 M으로 나눈 나머지

      pow

      select pow(N, M)
      
      -- N의 M 제곱 수

      sign

      select sign(컬럼명)
      from table;
      
      -- 숫자가 양수면 1, 0이면 0, 음수면 -1

      시간 데이터 관련

      DBMS에 설정된 시간대 확인 및 변경

      select @@global.time_zone, @@session.time_zone;
      
      set time_zone = 'Europe/Zurich';

      date_format

      select date_format(컬럼명, '%Y-%m-%d')
      from table;
      
      -- 날짜 형식의 데이터를 2018-06-25 형식으로 변경

      cast

      select cast(날짜 문자열 as [datetime | date | time])
      
      -- 서버가 날짜 데이터라고 판단할 수 없거나, 기본 형식이 아닌 형식을 사용하면
      -- cast를 사용하여 문자열을 날짜 데이터로 변환할 수 있음

      str_to_date

      문자열에서 시간 데이터를 생성해야 하는데, 문자열이 cast를 사용하기에는 적절한 형식이 아닐 경우 사용

      date_add

      지정된 날짜에 일정 기간을 더해서 다른 날짜 생성

      last_day

      특정 월의 마지막 날을 찾음

      dayname

      해당 날짜의 요일을 알려줌

      datediff

      select datediff(날짜1, 날짜2)
      
      -- 두 날짜 사이의 일수 차이를 계산
      select (날짜1 - 날짜2)
      
      -- 직접 날짜 뺄셈은 데이터베이스 시스템에 따라 다르게 동작할 수 있다.
      -- 일부 시스템에서는 시간 정보도 포함하여 계산할 수 있다.

      '개발' 카테고리의 다른 글

      [MySQL] DELETE & UPDATE  (0) 2024.10.04
      멀티 프로세싱 & 멀티 스레딩 & 비동기 처리  (0) 2024.10.02
      하둡 기초 개념  (0) 2024.09.30
      새로운 웹 크롤링 도구 Playwright  (0) 2024.09.27
      쿼리가 무한 루프에 빠지는 문제  (0) 2024.09.19
      다음글
      다음 글이 없습니다.
      이전글
      이전 글이 없습니다.
      댓글
    조회된 결과가 없습니다.
    스킨 업데이트 안내
    현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
    ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
    목차
    표시할 목차가 없습니다.
      • 안녕하세요
      • 감사해요
      • 잘있어요

      티스토리툴바