Tip: 6개의 글
MySQL 에서 JOIN에 대해 알아보도록 하겠습니다. 0. JOIN 개요 SQL JOIN 이라고 검색하면 나오는 유명한(?) 그림 입니다. 일단 이 그림만 보아도 JOIN에 대한 개념을 어느정도 잡을 수 있습니다. 1. 테스트할 데이터 준비 CREATE TABLE IF NOT EXISTS `member` ( `idx` int(11) NOT NULL AUTO_INCREMENT, `email` varchar(50) NOT NULL, `username` varchar(50) NOT NULL, PRIMARY KEY (`idx`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; INSERT INTO `member` (`idx`, `email`, `username..
MySQL에서 도메인에 값들의 갯수를 세어야 할 때가 있습니다. 그럴 때 사용할 수 있는 것이 SUM과 IF의 조합입니다. 1. 테스트할 데이터 준비 CREATE TABLE IF NOT EXISTS `count_test` ( `id` int(11) NOT NULL, `state` enum('Y','N') NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `count_test` (`id`, `state`) VALUES (1, 'Y'), (2, 'Y'), (3, 'Y'), (4, 'Y'), (5, 'N'), (6, 'Y'), (7, 'N'), (8, 'Y'), (9, 'Y'), (10, 'N'); 2. 갯수 세기(SU..
스키마를 엑셀에 문서화 하고 싶을 때 다음과 같이 쿼리를 생성하여 csv 혹은 엑셀로 export하여 사용하면 된다. SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, CONCAT(DATA_TYPE,'(',IFNULL(CHARACTER_MAXIMUM_LENGTH,IFNULL(NUMERIC_PRECISION,'')),')') TYPE, COLUMN_KEY, IS_NULLABLE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA NOT IN ('information_schema', 'performance_schema', 'mysql', 'isb_stg', 'isb_prd') ORDER BY TABLE_SCHEMA, TABLE_NAME,..
datetime 필드에서 날짜 혹은 시간만 SELECT 하려면 다음과 같이 하면 된다. SELECT DATE_FORMAT("2016-04-08 11:12:14", '%Y-%m-%d') DATEONLY, DATE_FORMAT("2016-04-08 11:12:14",'%H:%i:%s') TIMEONLY
날짜 별로 행의 갯수를 세야 할 때 다음과 같이 쿼리를 작성하면 된다. SELECT DATE_FORMAT(날짜 필드, '%Y%m%d') AS date, count(*) AS cnt FROM 테이블 이름 GROUP BY DATE_FORMAT(날짜 필드, '%Y%m%d') ORDER BY date DESC;