Database: 225개의 글
■ MariaDB란? MariaDB는 MariaDB사가 제작한 오픈소스 RDMBS 소프트웨어입니다. MariaDB가 무엇인지 알기위해서는 MySQL이란 유명 RDBMS를 알아야합니다. 왜냐하면 MySQL에서 떨어져나온 RDBMS가 MariaDB이기 때문이죠. MySQL은 AB사에서 제작했던 소프트웨어 입니다. 썬 마이크로시스템스에서 당시 10억 달러, 우리나라 돈 1조 가량에 인수했다가 양복기업의 대표주자 오라클이 썬 마이크로 시스템스를 2010년에 72억 달러 8조 ㅎㄷㄷ 에 인수해가면서 오라클 것이 되었죠. 오라클은 MySQL을 인수하면서 상업적으로 MySQL을 이용할 시 사용료를 내도록 정책을 바꾸어 버렸습니다ㅠㅠ 그러나 오라클의 정책에 반발한 AB사에서 핵심 창업자중 한 명이었던 몬티 와이드니어스..
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;
MySQL 에서 문자를 검색할 때 대소문자를 구분해야할 때가 있다. 그럴때 다음과 같이 하면 된다. SELECT your_field FROM your_table_name WHERE BINARY(your_field) LIKE "%your search word%"
1. 테스트할 테이블 생성 코드 CREATE TABLE `tbl_condition_test` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `col1` INT(10) UNSIGNED NULL DEFAULT NULL, `col2` INT(10) UNSIGNED NULL DEFAULT NULL, PRIMARY KEY (`id`) ) COLLATE='utf8_general_ci' ENGINE=MyISAM 2. 샘플 데이터 삽입 코드 INSERT INTO `test` (`id`, `col1`, `col2`) VALUES (1, NULL, 11); INSERT INTO `test` (`id`, `col1`, `col2`) VALUES (2, 2, 12); INSERT IN..
TINYINT[(M)] [UNSIGNED] [ZEROFILL]- 범위 : -128 에서 127 (UNSIGNED 일 경우 0 에 255) SMALLINT[(M)] [UNSIGNED] [ZEROFILL]- 범위 : -32768 에서 32767 (UNSIGNED 일 경우 0 에 65535) MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]- 범위 : -8388608 에서 8388607 (UNSIGNED 일 경우 0 에 16777215) INT[(M)] [UNSIGNED] [ZEROFILL]- 범위 : -2147483648 에서 2147483647 (UNSIGNED 일 경우 0 에 4294967295)- 주의 : 모든 연산은 "signed BIGINT" 로 이루어진다. 따라서 더하기 곱하기 등..
TypeBytesMinimum ValueMaximum Value (Signed/Unsigned)(Signed/Unsigned)TINYINT1-128127 0255SMALLINT2-3276832767 065535MEDIUMINT3-83886088388607 016777215INT4-21474836482147483647 04294967295BIGINT8-92233720368547758089223372036854775807 018446744073709551615