MySql 유용한 팁

mysql에서 테이블 정보 확인하는 법, 날짜 비교, 날짜 빼기등 mysql의 팁을 기록하였습니다.

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' 또는 'autoincrement' 가 설정 되어 있으면 복사 할 수 없음.

응용

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 * form source_table)

참고

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

응용

Insert Into destinationtable (column_a, column_b) (select a, b from source_table) 원하는 필드의 데이터만 복사가 가능하다.