Effective-Java-Camp / real-my-sql

[DONE] Real MySQL 8.0 스터디 레포지터리
0 stars 0 forks source link

11장. 쿼리 작성 및 최적화 #7

Open im-gnar opened 1 year ago

im-gnar commented 1 year ago

Chapter11. 쿼리 작성 및 최적화

1. 쿼리 작성과 연관된 시스템 변수

MySQL 서버의 시스템 설정에 따라 SQL 작성 규칙이 달라질 수 있다.

1-1. SQL 모드

테이블 및 인덱스 통계 정보

sql_mode 시스템 설정에 여러 개의 값이 동시에 설정

영문 대소문자 구분

MYSQL 서버는 설치된 운영체제에 따라 테이블명의 대소문자를 구분한다 (윈도우는 구분 X, 유닉스는 구분) 운영체제와 관계없이 대소문자 구분 영향을 받지 않게 하려면 lower_case_table_names 시스템 변수 설정

MYSQL 예약어

데이터베이스나 테이블 칼럼의 이름을 예약어와 같은 키워드로 생성하면 해당 칼럼이나 테이블을 SQL에서 사용할 때 역따옴표나 쌍따옴표로 감싸야한다 예약어를 모두 기억하기 어려우므로 직접 MYSQL 테이블을 생성해서 예약어인지 알아볼 수 있다(에러로 알려줌)

1-2. 매뉴얼의 SQL 문법 표기를 읽는 방법

매뉴얼

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name
    [PARTITION (partition_name [, partition_name] ...)]
    [(col_name [, col_name] ...)]
    { {VALUES | VALUE} (value_list) [, (value_list)] ... }
    [AS row_alias[(col_alias [, col_alias] ...)]]
    [ON DUPLICATE KEY UPDATE assignment_list]

1-3. MySQL 연산자와 내장 함수

리터럴 표기법 문자열

문자열

숫자

날짜

불리언

MySQL 연산자

동등 비교

부정 비교

Not 연산자

AND, OR 연산자

DIV, MOD 연산자

REGEXP 연산자

LIKE 연산자

BETWEEN 연산자

IN 연산자

MySQL 내장 함수

Null 값 비교 및 대체

현재 시각 조회

날짜와 시간의 포맷

날짜와 시간의 연산

타임스탬프 연산

문자열 처리

문자열 결합

GROUP BY 문자열 결합

값의 비교와 대체

타입의 변환

이진값과 16진수 문자열 변환

암호화 및 해시 함수

SLEEP

벤치마크

IP 주소 변환

JSON 포맷

JSON 필드 크기

JSON 필드 추출

JSON 오브젝트 포함 여부 확인

im-gnar commented 1 year ago

https://puzzle-cowbell-508.notion.site/11-1-d8f7a9f351d641cbac55e08da998881d

im-gnar commented 1 year ago

https://puzzle-cowbell-508.notion.site/11-4-select-752cfa71ea6f4303ab49b44cc2840aa0