* 테이블/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, '@', '');
'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 |