본문 바로가기

DataBase/MySQL24

[펌] [MySQL] MySQL WITH 재귀쿼리 계층구조 MySQL 에서도 재귀쿼리가 된다;;너무 심플해서 울뻔;; ㅎㅎㅎ 참 마리아 디비에서도 된다. 테스트 해봄. [MySQL] MySQL WITH 재귀쿼리 계층구조 보통 WITH 문 재귀쿼리 를 이용해서 계층 구조를 나타내는데 사용한다. 일단 재귀쿼리란..? 재귀 - 원래의 자리로 되돌아가거나 되돌아옴 이란 뜻을 갖고 있다. 쉽게 생각하면 같은걸 반복한다고 생각하면 쉬울까.. 즉 재귀쿼리는 한 쿼리가 반복되어 실행된다고 생각하면 된다.이러한 반복 쿼리는 계층구조를 SELECT 할때 유용하게 쓰인다. 기본적으로 코드 테이블 구조를 만들때code 와 parent_code(부모코드) 컬럼으로 구성하게 되면계층구조로 select 하기 편해진다. WITH 문을 이용한 계층쿼리 부터 확인해보자 CODE_TABLEcod.. 2019.01.25
Table '$TABLE_NAME' is specified twice, both as a target for 'UPDATE' and as a separate source for data 쓰면서 처음 보는 에러 발생;;; UPDATE 시에 대상 테이블의 값을 대상 테이블에서 직접 접근하여 조회하여 조건에 사용했을 경우 에러 발생.UPDATE 에서만 발생하는지는 모르겠음. 정리된 내용은 이러함.SELECT * FROM `TABLE` WHERE ID = 'JKUN.NET' AND IDX = ( SELECT MAX_IDX FROM (SELECT MAX(IDX) AS MAX_IDX FROM `TABLE` WHERE ID = 'JKUN.NET') ) _dummy ) 2018.03.05
MySQL 정규식으로 치환 함수 MySQL 정규식으로 치환 함수DELIMITER $$ CREATE FUNCTION `regex_replace`(pattern VARCHAR(1000),replacement VARCHAR(1000),original VARCHAR(1000)) RETURNS VARCHAR(1000) DETERMINISTIC BEGIN DECLARE temp VARCHAR(1000); DECLARE ch VARCHAR(1); DECLARE i INT; SET i = 1; SET temp = ''; IF original REGEXP pattern THEN loop_label: LOOP IF i>CHAR_LENGTH(original) THEN LEAVE loop_label; END IF; SET ch = SUBSTRING(orig.. 2017.02.02
UNIXTIME 관련 함수 1. UNIXTIME(타임스탬프) → DATE FROM_UNIXTIME('1485874832', '%Y%m%d %H%i%s') 2. DATE → UNIXTIME UNIX_TIMESTAMP() UNIX_TIMESTAMP('YYYY-MM-DD HH:mm:ss') 2017.02.02
[펌] 커버링인덱스 본문 : http://gywn.net/2012/04/mysql-covering-index/ MySQL에서 커버링 인덱스로 쿼리 성능을 높여보자!!5 Replies안녕하세요. 오늘 짧지만 재미있는 내용을 하나 공유할까 합니다.커버링 인덱스(Covering Index)라는 내용인데, 대용량 데이터 처리 시 적절하게 커버링 인덱스를 활용하여 쿼리를 작성하면 성능을 상당 부분 높일 수 있습니다.커버링 인덱스란?커버링 인덱스란 원하는 데이터를 인덱스에서만 추출할 수 있는 인덱스를 의미합니다. B-Tree 스캔만으로 원하는 데이터를 가져올 수 있으며, 칼럼을 읽기 위해 굳이 데이터 블록을 보지 않아도 됩니다.인덱스는 행 전체 크기보다 훨씬 작으며, 인덱스 값에 따라 정렬이 되기 때문에 Sequential Read .. 2016.04.24
[링크] MySQL에서 사용하는 Lock 이해 참 깔끔하게 포스팅 되어 있습니다. 블로그도 깔끔하구요~http://blog.saltfactory.net/database/introduce-mysql-lock.html 2015.09.22
MySQL Split - 문자열 자름 처리. MySQL 에도 split 이 있다.SUBSTRING_INDEX 1. 대상 예제 쿼리 및 결과 SELECT * FROM ( SELECT 1 AS seq, 'Welcome To JKUN.NET|^^' AS message UNION ALL SELECT 2 AS seq, 'Welcome To JKUN.NET|^^' AS message UNION ALL SELECT 3 AS seq, 'Welcome To JKUN.NET|^^' AS message ) AS EX; 2. SUBSTRING_INDEX 적용 쿼리 및 결과 SELECT seq, message, SUBSTRING_INDEX(message, '|', 1) as first, SUBSTRING_INDEX(message, '|', -1) as second FRO.. 2015.09.21
참조키 강제 해제 후;; 데이터베이스 스키마 일괄생성 스크립트를 모르고 mysql 데이터베이스에 돌렸다;;아;;;;; 했는데지우는게 있드만;; #관계 체크 해제 SET foreign_key_checks = 0; #관계 체크 설정 SET foreign_key_checks = 1; 2015.06.03
참조키 선언시 에러 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 참조키를 생성하는데 위와 같은 에러가 발생한다.확인한 바 발생한 이유는 테이블 생성시 참조하는 원본 테이블에는 INT UNSIGNED 가 되있는데참조하는 테이블에서는 그냥 INT 가 되있었다. 해서 다시 수정하니 정상적으로 작동을 했는데,구글링을 하다보니 깔끔하게 포스팅 해주신 분이 있어 링크 올립니다.^^ http://opentutorials.org/module/894/6653 어?? 오픈튜토리얼이네? ㅎㅎㅎ 2014.11.26
우분투에서 mysql 삭제 후 재설치 apt-get purge mysql-server apt-get purge mysql-common rm -rf /var/log/mysql rm -rf /var/log/mysql.* rm -rf /var/lib/mysql rm -rf /etc/mysql # and then: apt-get install mysql-server --fix-missing --fix-broken출처 : http://ykcho.tistory.com/20 2014.11.26
MySQL Stored Procedure (저장프로시저) MySQL 저장프로시저내가 익숙치 않거나 못해서 그런걸수도 있지만 정말로 쓰다보니.. 많이 부족함과 불편함이 이만 저만이 아니다.그리고 너무 많은 구글링 필요하다;;MySQL 저장프로시저를 만들고 사용하다 보면 MS-SQL Server 와 오라클의 저장프로시저가 너무나 그리워진다. 역시.. 돈들여서 안좋은건 없다고.. 다시한번 또..새삼스럽게..ㅎㅎ일단 샘플로 간단하게 MySQL 저장프로시저 올린다. DELIMITER $$ DROP PROCEDURE IF EXISTS SP_EMP_DPT_UPDATE $$ CREATE PROCEDURE SP_EMP_DPT_UPDATE( IN_UNION_QUERY_TEXT VARCHAR(1500), IN_EMP_NO INT, OUT OUT_RETURN_VALUE TINYIN.. 2014.03.28
임시테이블 - Temproray Table 참고링크MySQL에서 Temporary Table을 활용한 데이터 질의..그 효과는?java + temporary table. 임시테이블 사용하기. MYSQL CREATE TEMPORARY TABLE IF NOT EXISTS TEMP_TABLE ( ID BIGINT(20) NOT NULL ) 2014.03.26
MySQL 에러처리 임의의 호스트 언어로 MySQL 를 호출했을 때에 발생할 가능성이 있는 에러 코드의 리스트를 이하에 나타냅니다.이름및에러 코드의 열은 ,MySQL 원시 코드 파일 include/mysqld_error.h 의 정의에 대응합니다.SQLSTATE 의 열은 ,MySQL 원시 코드 파일 include/sql_state.h 의 정의에 대응합니다.SQLSTATE 에러 코드는 ,MySQL 버젼 4.1 을 사용하는 경우에게만 표시됩니다. SQLSTATE (은)는 ,X/Open/ANSI/ODBC 의 동작과 호환성을 갖게하기 위해서(때문에) 추가되었습니다.각 에러 코드에 대한 설명 텍스트는 , 에러 메세지 파일 share/english/errmsg.sys 에 기술되고 있습니다.갱신은 빈번하게 행해지므로 , 상기의 소스에 에.. 2014.03.26
저장 프로시저 관련 포스팅 MySQLStored Procedure 개요파라미터를 사용한 동적쿼리 프로시저 예제MySQL 저장 프로시져 내에서 발생한 에러 처리 (Error Handling) MySQL 저장프로시저.. 아 MS-SQL 저장프로시저가 그립다 2014.03.26
윈도우에서 MySQL 설치하고1045 에러 발생 1. 먼저 MySQL 서비스를 중지2. 비인증 로그인이 가능하도록 설정 후, MySQL 재실행. - 콘솔창에서 다음과 같이 입력한다.mysqld --skip-grant mysql -uroot mysql 이제 비밀번호가 없어도 root 권한으로 MySQL 이 사용가능합니다. MySQL DB 를 오픈하고 암호를 재설정 하고, 권한을 부여합니다. >> use mysql; >> update user set password=PASSWORD('1111') where user='root'; >> flush privileges; >> grant all on *.* to 'root'@'localhost' identified by '1111' with grant option; >> flush privileges; >> e.. 2013.12.04
문법 - MySQL 조건문 출처 : http://www.spatium.co.kr/languages/content.php?chno=5&bno=34 if 문, case 문, ifnull문 IF 문형식 : if ( 조건문, 참일때 값, 거짓일때 값)EX) select member_id, if ( isnull(birthday), '-', birthday ) from member 설명 - 멤버 테이블에서 아이디(member_id) 와 생일을 뽑는데 null 일경우는 - 를 출력, 아니면 생일을 출력 Case 문형식 : case (조건 또는 값) when 값1 then 표시값 when 값2 then 표시값 else 표시값 endEX) select case a when '1' then a when '2' then b else c end fro.. 2013.03.26
MEMO - MySQL 원격접속 권한 설정 MySQL 프롬프트로 접속했을 상황이다. mysql> use mysql; mysql> GRANT ALL PRIVILEGES ON *.* to 'root'@'%' IDENTIFIED BY 'password'; mysql> flush privileges; 2013.03.25
ERROR - 사용자 등록시 오류 INSERT INTO mysql.user(User, Host, Password, ssl_cipher, x509_issuer, x509_subject) VALUES('username', '%', Password('password'), '', '', ''); 2013.03.25