TIL: MYSQL day2

Seungeun·2025년 2월 18일

기억해두기

1. 조회

  • 전체 열 조회는 불필요한 열의 데이터를 포함하므로 CPU나 디스크에 많은 부담, 네트워크를 통해 전송되기 때문에 네트워크에도 부담

  • 조회 시 정렬이 중요한 데이터는 ORDER BY 문을 사용하는 것이 좋음

  • 논리 연산자

    연산자설명
    ALL모든 비교 집합이 참
    SOME비교 집합 중 일부가 참
    ANY하나라도 참
    EXISTS하위 쿼리에 행이 포함
    IN리스트 중 하나라도 포함
    LIKE패턴과 일치하는 경우
  • LIMIT
    - SELECT * FROM 테이블명 ORDER BY 컬럼명 LIMIT n,m: n번째 행부터 m만큼 조회

    • LIMIT n OFFSET m : m개 건너뛰고 n 개수만큼
  • 와일드 카드
    - LIKE '%A%
    - LIKE '%#%%' ESCAPE '#'
    - LIKE '_A_', LIKE 'A___

  • 정규 표현식 REGEXP

    표현식설명
    .임의의 한 문자
    *문자 패턴 0번 이상 반복
    +문자 패턴 1번 이상 반복
    ^문자열의 처음
    $문자열의 끝
    [...]대괄호 안에 있는 문자
    [^...]대괄호 안에 있지 않은 문자
    {n}반복 횟수
    {m,n}반복 횟수 최소-최대

    ex1. K뒤에 R~T사이의 글자가 오는
    REGEXP 'A[R-T]'

  • GROUP BY
    - SELECT문에 사용된 열이 GROUP BY에 명시되어야함

    • HAVING: 필터링(where)
  • DISTINCT
    - 같은 열에 있는 중복 데이터 제거
    - GROUP BY처럼 중복을 제거해주나 집계연산은 안됨. Ex. count연산

2. 테이블 생성 및 조작

  • auto increment는 primary key 필수
  • SELECT LAST_INSERT_ID();
  • SET @AUTO_INCREMENT_INCREMENT = 5; : 두번째 insert부터 5씩 증가
  • CREATE TABLE talbe_name AS (SELECT * FROM table2_name);

3. 데이터 유형

  • 부동소수점 float, double
  • 고정소수점 decimal, numeric
  • mysql은 하나의 행에서 열 전체 크기가 64KB를 초과할 수 없음
  • 콜레이션 주의 (ex. col_latin1_general_ci ...)
  • DATETIMEdms,TIMESTAMP (문자형, 숫자형) (8byte, 4byte) (직접, 자동)
profile
Wonderland

0개의 댓글