본문 바로가기

반응형

Story/mysql

특정 테이블이 사용하는 사용량 확인 방법 SELECT TABLE_NAME, table_rows, data_length, index_length, round(((data_length + index_length) / 1024 / 1024),2) "Size in MB" FROM information_schema.TABLES WHERE table_name = "visit"; 위의 예는 visit 라는 테이블의 사용량을 조회하는 쿼리문이다. 참고한 사이트의 내요은 다음과 같다. 주소는 http://www.shainmiley.com/wordpress/2010/11/15/calculating-overall-databases-sizes-in-mysql/ Recently I had a server that was running low on free disk s.. 더보기
Excel에 저장된 data를 Mysql로 옮길때 엑셀에서 insert query 문을 만들어 주는 방법 가장 간단하게 해결할 수 있는 방법은, Excel에서 쿼리문을 만드는 겁니다. 즉, 데이터가 들어 있는 엑셀 워크시트에서 맨 오른쪽에 컬럼을 하나 추가한 뒤, 엑셀 수식을 이용해서 쿼리문을 조합하는 거죠. 위의 예를 바탕으로 한다면, ="insert into tbl_name (no, nam, ag, dep) values ('" &A1&"','"&C1&"','"&B1&"','"&D1&"');" 이렇게 수식을 넣고 해당 셀을 복사한 뒤 아래로 죽~ 붙여넣기 하면 되겠죠. 이렇게 생성된 쿼리문을 텍스트 에디터로 복사해 넣은 다음 저장하고, mysql에서 실행하면 됩니다. $> mysql -u(uid) -p(pwd) (db명) < (file명) 데이터 양이 몇만건이 되지 않는다면 이것이 가장 빠른 방법일 겁니다.. 더보기
mysql uft-8 로 데이타 넣을때 SET character_set_client = utf8; SET character_set_results = utf8; SET character_set_connection = utf8; 기본 문자셋을 변경하고자 할때는 mysql> ALTER DATABASE [DB명] DEFAULT CHARACTER SET utf8; 더보기
mysql 사용자 추가 쿼리 insert into user (Host,User,Password,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Reload_priv,Shutdown_priv,Process_priv,File_priv,Grant_priv,References_priv,Index_priv,Alter_priv,Show_db_priv,Super_priv,Create_tmp_table_priv,Lock_tables_priv,Execute_priv,Repl_slave_priv,Repl_client_priv) values ('localhost','sqlplus',Password('asdf'),'Y','Y','Y','Y','Y','Y','Y','Y','Y',.. 더보기
mysql query 를 이용해 달력 만들기 SELECT SUM(if(A.A2 = '6', A.A3, null)) as 일요일, SUM(if(A.A2 = '0', A.A3, null)) as 월요일, SUM(if(A.A2 = '1', A.A3, null)) as 화요일, SUM(if(A.A2 = '2', A.A3, null)) as 수요일, SUM(if(A.A2 = '3', A.A3, null)) as 목요일, SUM(if(A.A2 = '4', A.A3, null)) as 금요일, SUM(if(A.A2 = '5', A.A3, null)) as 토요일 FROM ( SELECT WEEK(DATE_FORMAT(CONCAT('200608','01'),'%Y%m%d')) - WEEK(DATE_FORMAT(concat('2006-08-' ,Id), '%Y-%.. 더보기
디비내용을 csv 로 저장하기 - 서버상에서 명령어 사용하여 파일로 저장 mysql -u아이디 -p비밀번호 디비명 -B -e "select * from user limit 1;" | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > filename.csv - php 에서 csv download 로 구현 할 경우 디비용량이 클경우 (1만건이 넘어가니 브라우져가 멈추는현상까지 나타났다.) 일반적인 방법으로 처리할수 없을경우가 있다. 아래의 방법으로 처리하여 7만건을 다운로드 받을때 2분이내로 처리되는걸 확인했다. 참고로 asp mssql 더보기
주민등록 번호로 나이,나이대 구하기 - 나이 구하기 (jumin_no:주민등록 번호 000000-0000000 형식) select year(now()) - (if (mid(jumin_no, 8, 1) = '1' or mid(jumin_no, 8, 1) = '2', 1900, 2000) +left(jumin_no, 2)) + 1 as age from member - 나이대 구하기 (jumin_no:주민등록 번호 000000-0000000 형식) select age, count(age) as cnt from ( select floor((year(now()) - (if (mid(jumin_no, 8, 1) = '1' or mid(jumin_no, 8, 1) = '2', 1900, 2000) +left(jumin_no, 2)) + 1)/10)*1.. 더보기
string split 구분자로 저장된것을 다른 테이블과 join ex ) select SQL_CALC_FOUND_ROWS pm.*, count(b.b_no) as cnt from product_month pm left outer join books b on concat(',',pm.pm_books_list,',' ) like concat('%,',b.b_no,',%' ) where pm.p_id = 1 group by pm.p_id, pm.pm_no order by pm.pm_no asc 위의 query 문의 설명을 하자면 pm.pm_books_list 에 저장된 값이 "1,2,3,4" 와 같은 문자열로 되어있다 join 되는 books 테이블의 key 인 b_no 값들을 pm_books_list 에 저장된 값과 비교하는것이다. b_no 값을 ",키값," 형태로 바꾸.. 더보기
select시 순서에대한 값을 구하고자 할경우 ranking mysql> set@a = 0; Query OK, 0 rows affected (0.01 sec) mysql> select @a := @a + 1 as rank, num,id from member where order by num desc; +------+-----+--------+ | rank | num | id | +------+-----+--------+ | 1 | 9 | bbbb | | 2 | 5 | abbb | | 3 | 3 | cbbb | +------+-----+--------+ 3 rows in set (0.00 sec) 더보기
group by having 을 이용하여 그룹별 최대,최소 하나씩 가져 올수있는 방법 두 테이블에서 가장 최근에 입사한 사람 가져오기 # # Table structure for table 'member' # CREATE TABLE member ( t_code tinyint(3) unsigned NOT NULL default '0', m_code tinyint(3) unsigned NOT NULL default '0', m_name varchar(100) default NULL, m_date datetime default NULL, PRIMARY KEY (m_code,t_code), UNIQUE KEY NewIndex (m_date) ) TYPE=MyISAM; # # Dumping data for table 'member' # INSERT INTO member (t_code, m_code,.. 더보기

반응형