728x90

* 테이블/DB 생성 쿼리 확인
> show create table MYTABLE\G
> show create database MYDB;

* DB(table) 정보확인

> show table status from MYDB; (or show table status from MYDB like 'MYTABLE%';)

* DB 생성
> CREATE DATABASE MYDB DEFAULT CHARACTER SET utf8;


* 환경변수 확인
> show variables like '%max%';

* 비밀번호 변경
> update user set password=password('123456') where user='root';

* 마지막 auto_increament값 확인(현재 세션에서)
> select LAST_INSERT_ID();

* 파일로 결과 출력
> SELECT * FROM export INTO OUTFILE '/root/doc/mysql/out.txt' FIELDS TERMINATED BY ' ' ;


* 칼럼 추가/삭제/변경
> ALTER TABLE export ADD comment VARCHAR(80) DEFAULT 'Yes' NOT NULL ;
> ALTER TABLE export DROP COLUMN comment;
> ALTER TABLE t1 CHANGE a b INTEGER;
> ALTER TABLE t1 CHANGE b b BIGINT NOT NULL;

* 인덱스 추가/삭제
> ALTER TABLE 테이블이름 ADD INDEX indexname(필드이름);
> ALTER TABLE 테이블이름 DROP INDEX indexname;
> CREATE INDEX idx_seq USING BTREE ON MYTABLE(seq);
> DROP INDEX 인덱스이름 ON 테이블이름;

* 쿼리 캐쉬(Query cache) 리셋
> reset query cache;

* 사용할 인덱스 지정
> select seq from MYTABLE USE INDEX( INDEX1 ) where col1='id' ;

* 정규표현으로 검색하기
> select col1 from MYTABLE where col1 regexp '.*:00[12].*' ;

* limit

> select key from MYTABLE limit 10; #위에서부터 10개 출력

> select key from MYTABLE limit 0,3; #첫번째부터 3개 출력

> select key from MYTABLE limit 5,1; #위에서부터 6번째 항목 1개 출력


* 현재 실행중인 쿼리 확인
> show processlist;
> show full processlist;

* 인덱스 활성/비활성 (대량의 데이터를 입력할때)

> ALTER TABLE `테이블` DISABLE KEYS; #테이블의 INDEX를 비활성화
> INSERT INTO `테이블` VALUES ('값1', '값2')....;
> .....
> INSERT INTO `테이블` VALUES ('값1', '값2')....;
> ALTER TABLE `테이블` ENABLE KEYS; # 다시 INDEX를 활성화


* case ( 서로 다른 조건에 해당하는 row의 숫자를 계산)
>select id, count(id) totalNum, sum(size) totalSize , sum(case flag when 0 then 1 else 0 end) newNum
> from myTable
> where id='aaa'
> group by id;


* 문자 치환( replace)

> UPDATE mytable SET col = REPLACE(col, '@', '');

728x90

'DB' 카테고리의 다른 글

MYSQL INDEX  (0) 2012.07.29
DBMS별 차이점  (0) 2012.07.29
클러스터 인덱스 & non클러스터 인덱스  (0) 2012.07.29
클러스터 인덱스  (0) 2012.07.29
하나의 컬럼 안에 있는 데이터만 바꾸기  (0) 2012.07.29

+ Recent posts