▶ AI시대에서 개발자가 사는 법

2분 읽기
Last updated on

MySql 유용한 팁


테이블 정보 확인 쿼리

SELECT COLUMN_NAME, COLUMN_COMMENT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'DV_CMMN_BBS';

DV_CMMN_BBS 대신에 대상 테이블명을 넣으면 된다.

날짜 비교

STR_TO_DATE('2000-01-31', '%Y-%m-%d')
STR_TO_DATE('200001310000', '%Y-%m-%d %H:%i:%s')

날짜 빼기

한달 전

WHERE reg_date >= DATE_ADD(NOW(), INTERVAL -1 MONTH)

하루 전

WHERE reg_date >= DATE_ADD(NOW(), INTERVAL -1 DAY)

한 시간 전

WHERE reg_date >= DATE_ADD(NOW(), INTERVAL -1 HOUR)

기타 날짜 조건

SELECT DATE_FORMAT(D_time,"%Y-%m-%d") FROM 테이블명;
SELECT DATE_FORMAT(D_time,"%H:%i::%s") FROM 테이블명;

D_time 오늘인 데이터 가져오기

SELECT D_time FROM 테이블명 WHERE DATE_FORMAT(D_time,"%Y-%m-%d") = CURRENT_DATE;

등록된지 24시간이 안된 데이터 가져오기

SELECT D_time FROM 테이블명 WHERE D_time > DATE_SUB(NOW(), INTERVAL 1 DAY);

구조 복사

CREATE TABLE new_table LIKE old_table;

특징

기존 테이블의 설정 그대로 복사 된다.

참고

큐브리드의 경우 복사하고자 하는 기존 테이블에 ‘Primary Key’ 또는 ‘auto_increment’ 가 설정 되어 있으면 복사 할 수 없음.

응용

CREATE TABLE IF NOT EXISTS new_table LIKE old_table; -- (new_table 이 없으면 복사)

구조와 데이터 복사

CREATE TABLE new_table (SELECT * FROM old_table);

특징

테이블의 구조와 함께 데이터도 함께 복사가 된다.

주의

큐브리드의 경우와 같이 기존 테이블에 ‘Primary Key’ 또는 ‘auto_increment’ 가 설정 되어 있으면 해당 설정은 적용 되지 않고 값만 복사 됨.

데이터 복사

INSERT INTO destination_table (SELECT * FROM source_table);

참고

대상 테이블의 컬럼 중에 자동 증가 값 설정 이 된 컬럼이 있을 경우 해당 컬럼에 데이터 입력시 중복된 데이터가 있으면 오류 발생.

응용

INSERT INTO destination_table (column_a, column_b) 
(SELECT a, b FROM source_table);

원하는 필드의 데이터만 복사가 가능하다.