MySQL_Section
-
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..
-
모델링 IE 표기법MySQL_Section/modeling 2014. 11. 18. 15:32
IE 노테이션에서 관계(Relationship) 표기법은 항상 헷갈리는 경우가 많다. ERWin에서 표준으로 사용하는 노테이션이 IE노테이션이고 이것을 잘 해석해야 설계를 잘 할 수 있고, 잘 이해할 수도 있기에 바쁜시간 쪼개서 포스팅을 해본다. 외발과 까치발의 관계 1:n 1:N : A에 대응하는 B가 여럿이다. 1:1 : A에 대응하는 B가 하나다. 크게 어렵지 않고 뒤에 많이 나오므로 자세한 예는 생략한다. 실선과 점선의 관계 Identifying 과 non-Identifying 실선 ( Idenfitying ) : A가 없으면 B가 존재 할 수 없는 관계이다. 점선 ( non-identifying ) : A가 없이도 B가 존재 할 수 있다. 헷갈리기 쉽다. 따라서 identifying과 non-i..
-
[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..
-
[MySQL] IF문 사용예제MySQL_Section/developer 2014. 11. 18. 14:35
[MySQL] IF문 사용예제 ※ 경고 높이뜬새의 모르는 사람이 없는 팁시리즈 입니다. 이 팁시리즈는 지면낭비라는 항의시에 즉각 중단됩니다. MySQL에서는 IF문 자체를 프로시져 도움없이도 SQL문에 바로 삽입하는 것이 가능해서 무척 편리합니다. 물론 제어부분이 계속 중첩된다면 CASE문을 사용하셔야 합니다. 형식) if (조건,참일때 결과,거짓일때 결과) 예1) 쉬운 예 mysql> SELECT if( 2 > 1, '참', '거짓' ); 결과 : 2가 1보다 크므로 당연히 참을 출력합니다. 예2) WHERE절에서 사용 SELECT * FROM join_table WHERE if( CHAR_LENGTH(name) = 2, 'Y', 'N' ) = 'Y'; 결과 : join_table의 name컬럼에서 이..
-
mysql테이블 속성 및 구조변경 명령어MySQL_Section/운영 2014. 11. 18. 14:33
1. 데이타베이스 생성mysql 접속 후, create database xxxx 도 가능하나 아래와 같은 방법도 있음[root@mycent ~]# mysqladmin -uroot -ptkdlqj7 create abcde 2. 테이블 생성[root@mycent ~]# mysql -u root -p abcde Enter password: mysql> create table test_table( -> uid mediumint(4) unsigned DEFAULT '0' NOT NULL, -> name varchar(12) DEFAULT "" NOT NULL, -> email varchar(20) DEFAULT "" NOT NULL, -> PRIMARY KEY(uid) -> ); Query OK, 0 rows a..
-
MySQL의 max_connections과 thread_cache에 대해MySQL_Section/운영 2014. 11. 18. 14:30
MySQL의 max_connections과 thread_cache에 대해 앞의 MySQL Connection Manager와 Thread Manager의 소스분석에서 살펴보았듯이 연결 설정자, 스레드 설정자에 대해서 알면 도움이 될 거 같아서 몇자 정리해 봅니다. BMT 도구 마련 BMT의 도구로는 super-smack을 사용해 보기로 한다. 주요한 특징은 아래와 같다. MySQL과 PostgreSQL에서 동작함. C++로 만들어져 추가 라이브러리(드라이버 등)가 필요없고 수정이나 확장이 용이함 시나리오 파일(smack파일)로 다양한 쿼리를 구사하게 함. 복수의 클라이언트를 가상 fork()로 생성하고 각 클라이언트(자식 프로세스)가 쿼리를 실행함. 데이터(영문숫자)를 생성하는 툴도 존재함 쿼리는 mys..