MySQL_Section/developer
-
[MySQL] date_format 함수를 이용한 날짜 다루기MySQL_Section/developer 2014. 12. 14. 15:06
//특정 월에서 시간을 검색하는 쿼리 select count(*) from login where date_format(days,'%Y-%m %H')>='2015-10 08' and date_format(days,'%Y-%m %H') 2014-10-10 select DATE_FORMAT('20141010152630', '%y-%m-%d') => 14-10-10 select DATE_FORMAT('20141010152630', '%Y-%m-%d %H:%i:%s') => 2014-10-10 15:26:30 (시간 24시) select DATE_FORMAT('20141010152630', '%Y-%m-%d %h:%i:%s') => 2014-10-10 03:26:30 (시간 12시)
-
[SP] PROCEDURE를 이용한 loop insertMySQL_Section/developer 2014. 11. 18. 17:03
개발하다 보면 테스트를 위해 더미 데이터를 insert 해야 하는 경우가 자주 생긴다 그때 많은 데이터를 넣어야 하는 경우 다음과 같이 sql을 작성하면 편하다. 참고로 AES_ENCRYPT 는 암호화 function이고 CONCAT은 string 연결 function이다. DELIMITER $$ DROP PROCEDURE IF EXISTS `myFunction`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `myFunction`() BEGIN DECLARE i INT DEFAULT 1; WHILE (i
-
[Function] 주민등록번호로 부터 나이 계산하는 함수MySQL_Section/developer 2014. 11. 18. 17:03
===================== MsSQL용=========================================================== SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /* vim: set expandtab tabstop=4 shiftwidth=4 foldmethod=marker: */ /** * 파일명: GET_AGE * 작성일: 2007-07-21 * 작성자: 얼룩푸우(budget74@nate.com, http://blog.naver.com/budget74) * 설 명: 생년월일로 부터 나이 리턴 ***************************************************************** * */ C..
-
[SP] Procedure 공부MySQL_Section/developer 2014. 11. 18. 17:02
MySQL에서 Procedure를 만들어보자. DELIMITER $$ CREATE PROCEDURE `owner`.`procedure_name` (IN|OUT|INOUT param_name TYPE ) BEGIN 처리문 END$$ DELIMITER ; owner 은 'user name' procedure_name 은 말 그대로 '프로시져 이름' IN|OUT|INOUT 은 파라미터를 어떤 용도로 사용할 것인지 정의한다. - IN 은 프로시져로 입력 - OUT 은 출력 - INOUT 은 입력하고 출력 param_name 은 파라미터 이름 TYPE 는 변수타입 ex) 아이디를 입력해서 회원의 이름을 가져오는 프로시져를 만들어 보자. DELIMITER $$ CREATE PROCEDURE `tester`.`GET..
-
[SP] 테이블 검색 프로시저MySQL_Section/developer 2014. 11. 18. 17:01
DROP TABLE IF EXISTS `test`.`tbl_sp`; CREATE TABLE `test`.`tbl_sp` ( `SEQ` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `DATA` VARCHAR(45) DEFAULT NULL, PRIMARY KEY (`SEQ`) ) ENGINE=INNODB DEFAULT CHARSET=utf8; SELECT * FROM tbl_sp INSERT INTO test.tbl_sp(DATA) VALUES ('mysql'), ('java'), ('hibernate'), ('spring'), ('zapatec'), ('jexcel'), ('iReport'), ('json') DELIMITER $$ DROP PROCEDURE IF EXISTS..
-
MySQL 5.X - FUNCTION,PROCEDURE 만들기예제MySQL_Section/developer 2014. 11. 18. 15:40
delimiter $$ DROP FUNCTION IF EXISTS dbname.string_print$$ CREATE FUNCTION dbname.string_print( str VARCHAR(20) ) RETURNS VARCHAR(20) BEGIN DECLARE copy_str VARCHAR(20); SET copy_str = str; RETURN copy_str; END $$ delimiter ; SELECT dbname.string_print('Hello world'); delimiter $$ DROP PROCEDURE IF EXISTS dbname.string_print$$ CREATE PROCEDURE dbname.string_print( str VARCHAR(20) ) BEGIN DECLARE..
-
[SP] 공부MySQL_Section/developer 2014. 11. 18. 15:36
프로시저 공부 set @thistime = ''; select now() into @thistime; select @thistime; -------------------------------------------------------------------------------------------------------------- 프리페어 스테이트먼트용 SQL 인터페이스 SELECT actor_id, first_name, last_name FROM sakila.actor WHERE first_name ='Penelope'; SET @SQL = 'select actor_id, first_name, last_name from sakila.actor where first_name = ?'; PREPARE st..
-
[SP] Cursor 사용 예제MySQL_Section/developer 2014. 11. 18. 15:29
MySQL 프로시저를 사용하다 보니 DB의 쿼리 질의 결과를 다시 재처리 하는 일이 생기더군요. 이럴때 Cursor를 이용해서 이를 처리해 주면 됩니다. 아래는 커서를 사용한 프로시저의 예 입니다. DELIMITER $$ DROP PROCEDURE IF EXISTS `디비명`.`프로시저명` $$ CREATE PROCEDURE `디비명`.`프로시저명_merge`( IN 변수1 VARCHAR(32), IN 변수2 INT ) BEGIN DECLARE m_필드값1 VARCHAR(32); DECLARE m_필드값2 VARCHAR(32); DECLARE m_Done INT DEFAULT 0; /* 여기에 커서를 정의 합니다. */ DECLARE m_Cursor CURSOR FOR SELECT 필드1, 필드2 FRO..