본문 바로가기
반응형

SQL/MySQL66

MySQL 테이블 이름 변경방법 MySQL에서 테이블 이름 변경 시에는 RENAME TABLE 테이블명 TO 변경할_테이블명; 을 사용해주면 테이블명에서 변경할_테이블명으로 테이블 이름 변경이 가능한데 변경 시 잘못 변경했다고 해도 스키마 > Tables 부분에서 테이블 명을 확인하고 다시 이름을 돌려주면 된다 2021. 4. 12.
MySQL 인덱스 강제 지정 / 사용 권장 / 사용 금지 방법 정리 MySQL 인덱스 조회 생성 수정 삭제 및 타는지 확인방법 MySQL에서 인덱스는 테이블을 빨리 조회하기 위해 테이블 데이터에 포인터를 주는 것인데 인덱스는 책의 목차와도 같아서 특정 컬럼에 인덱스를 지정해주면 테이블 조회 시 인덱스를 이용해 빠 wakestand.tistory.com MySQL에서 쿼리 수행 시 타는 인덱스는 자체적으로 판단해서 가장 괜찮은 것을 타게 되는데 탈만한 인덱스는 조회 쿼리 위에 EXPLAIN을 넣고 조회할 경우 possible_keys 컬럼에서 확인할 수 있다 하지만 자체적으로 판단한다고 해도 항상 완벽한 것은 아니기 때문에 FROM 우측에 FORCE INDEX(인덱스명) USE INDEX(인덱스명) IGNORE INDEX(인덱스명) 을 넣고 수행할 / 수행하지 않을 인덱스.. 2021. 4. 9.
MySQL EXPLAIN 보는법 사용법 정리 MySQL 인덱스 조회 생성 수정 삭제 및 타는지 확인방법 MySQL에서 인덱스는 테이블을 빨리 조회하기 위해 테이블 데이터에 포인터를 주는 것인데 인덱스는 책의 목차와도 같아서 특정 컬럼에 인덱스를 지정해주면 테이블 조회 시 인덱스를 이용해 빠 wakestand.tistory.com MySQL에서 EXPLAIN은 쿼리 튜닝 시에 주로 사용하게 되는데 대부분의 경우 쿼리 수행 시 인덱스(INDEX)를 타는지 확인하는 용도로 주로 사용하게 된다 근데 그걸 왜 확인해야 하냐면 데이터가 몇천만 건이 넘어가는 테이블의 경우 인덱스를 사용하지 않으면 조회 시 지나치게 오랜 시간이 걸리기 때문이다 사용법은 조회 쿼리 위에 EXPLAIN을 올려놓고 조회하면 위 스크린샷과 같은 조회결과를 볼 수 있는데 중요한 컬럼들은.. 2021. 4. 9.
MySQL STR_TO_DATE 함수 포맷 사용방법 정리 MySQL에서 STR_TO_DATE는 문자열을 '포맷' 형식의 DATETIME DATE TIME 으로 반환 시 사용하는데 문자열에 포맷을 년월일 시분초로 설정하면 DATETIME 년월일로 설정하면 DATE 시분초로 설정하면 TIME 타입의 값을 반환하게 된다 여기서 문자열과 포맷이 다를 경우에는 NULL을 반환하기 때문에 문자열과 포맷을 꼭 동일하게 맞춰줘야 한다 포맷은 아래 표의 내용을 참조해주면 되고 %Y 4글자 년 %T hh:mm:ss %y 2글자 년 %r hh:mm:ss AM/PM %m 2글자 월(ex : 01, 12) %M 월(영문 전체 March) %c 월(ex: 1, 12) %b 월(영문 축약 Mar) %d 2글자 일(01, 30) %W 일(영문 전체 Monday) %e 일(ex: 1, 30.. 2021. 4. 8.
MySQL DAYOFWEEK DAYOFMONTH DAYOFYEAR 사용방법 정리 DAYOFWEEK(날짜) 넣은 날짜의 일을 가지고 1~7의 값 반환 (1 - 일요일 7- 토요일) DAYOFMONTH(날짜) 넣은 날짜의 일을 가지고 1~31의 값 반환 DAYOFYEAR(날짜) 넣은 날짜의 일을 가지고 1~365의 값 반환 보면 DAYOFWEEK는 날짜를 넣으면 날짜의 일만 가지고 1~7의 값을 반환하고 DAYOFMONTH는 날짜를 넣으면 날짜의 일만 가지고 몇일이냐에 따라 1~31의 값을 반환한다 DAYOFYEAR는 날짜의 월/일만 가지고 1~365일의 값을 반환한다 예제에 사용한 쿼리는 아래와 같다 -- 날짜의 일을 가지고 1~7 반환 (1 - 일요일 7 - 토요일 ) SELECT DAYOFWEEK('20210101') -- 날짜의 일을 가지고 1~31 반환 SELECT DAYOFM.. 2021. 4. 6.
MySQL ROWNUM 사용법 및 역순으로 배치하는 방법 MySQL에서도 오라클처럼 ROWNUM과 비슷하게 ROW 마다 번호를 매겨줄 수 있는데 @변수명 := 0; 으로 초기화 후 @변수명 := @변수명 + 1; 이런 식으로 사용하게 된다 먼저 사용 시 변수에 값이 지정되지 않은 만큼 초기화를 해줘야 하는데 SET @변수명 := 0; 이렇게 변수를 초기화해주지 않으면 값 자체가 NULL인 상태이기 때문에 +1 을 하건 말건 다 NULL만 찍히게 된다 하지만 ROWNUM을 사용하면서 초기화해주지 않으면 숫자가 계속 증가하는 현상이 나오는데 오라클과 같은 개념으로 ROWNUM을 사용해 주려면 FROM / WHERE 절에서 초기화를 해줘야 한다 FROM에서 초기화할 경우에는 (SELECT @변수명 := 0) alias명 을 넣어주면 되고 WHERE에서 초기화할 경우.. 2021. 3. 30.

반응형