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);
원하는 필드의 데이터만 복사가 가능하다.