시간 더하기, 빼기 시간을 더하는 함수 : DATE_ADD 시간을 빼는 함수 : DATE_SUB 초 : SECOND 분 : MINUTE 시 : HOUR 일 : DAY 월 : MONTH 년 : YEAR DATE_ADD(time, INTERVAL); DATE_SUB(time, INTERVAL); 예시 코드 - 기존 시간에서 1일 더하기 DATE_ADD(time, INTERVAL 1 DAY); - 기존 시간에서 한달 빼기 DATE_SUB(time, INTERVAL 1 MONTH); 위 처럼 응용해서 쓰면 된다.
auto_increment 값 변경하기 auto_increment 옵션을 선택하면 자동으로 1씩 증가하며 값이 부여된다. 만약, DB에 잘못 넣었을 경우 행을 삭제하는데 1씩 증가하는 컬럼은 값이 그대로 유지되므로 다시 시작하고 싶은 값으로 재설정해줘야 한다. 예시 코드 alter table table_name auto_increment=시작값;
한번에 insert 여러 개 하기 DB에 업로드할 때 보통은 한 줄씩 하는 경우가 많다. 한 줄씩 해도 상관은 없지만 업로드하는 행 수가 100 만행, 1000 만행이 넘어간다면??? 처음에 구글링을 통해 알게 된 방법은 values (값 1, 값 2), (값 3, 값 4) 이렇게 values 뒤에 여러개를 붙이면 된다는데 어느 세월에 다 하겠나 싶고.. 데이터 분석에 있어서 시간 단축은 떼려야 뗄 수 없는 관계이다. 10분이라도 줄이기 위해 생각한 방법인데 예상보다 업로드 속도가 매우매우 빠르다. 예제 코드 # 빈 리스트 생성 sql_rows = [] # 리스트에 한줄씩 추가 sql_row = '({},{},{},{})'.format(id, name, date, value) sql_rows.append..
중복 확인 SELECT * FROM 테이블 WHERE 검색할 필드 IN ( SELECT 검색할 필드 FROM 테이블 GROUP BY 검색할 필드 HAVING COUNT(*) > n) 중복 데이터 전체 확인 select A.* from 테이블 A, (select 검색할필드명 from 테이블 group by 검색할 필드 having count(*) > n) B where A.필드 = B.필드 중복이 2개일 경우 중복행 중 1개만 제거 DELETE FROM notes WHERE id IN (SELECT MIN(id) FROM notes GROUP BY name, date, value HAVING COUNT(*) > 1) 여기서 id 는 AUTO_INCREMENT 로, 기본 키 값을 증가의 자동 시퀀스를 생성하..