본문 바로가기

아카이브/MySQL

자주 참고하는(깜박하는) 쿼리문들

반응형

[테이블 수정]

이름 바꾸기

mysql> ALTER TABLE tablename RENAME bbs;


컬럼 속성 수정

mysql> ALTER TABLE tablename MODIFY colname INT NOT NULL AUTO_INCREMENT PRIMARY KEY;


ALTER TABLE tablename MODIFY 컬럼이름 컬럼속성

컬럼 이름 바꾸기

sysql> ALTER TABLE tablename CHANGE colname newcolname INT NOT NULL AUTO_INCREMENT;


CHANGE는 컬럼 속성뿐아니라 이름도 바꿔준다.

컬럼 추가

mysql> ALTER TABLE bbs ADD name varchar(10);


ALTER TABLE tablename ADD 컬럼이름 컬럼속성

컬럼 삭제

mysql> ALTER TABLE bbs DROP colname;



특정 컬럼 뒤에 새로운 컬럼 추가

mysql> ALTER TABLE bbs ADD newcol varchar(10) AFTER num;


num 컬럼 뒤에 newcol 컬럼 추가.

기존 컬럼을 지우고 맨 앞에 컬럼 추가

mysql> ALTER TABLE bbs DROP newcol, ADD newcol VARCHAR(10) FIRST;


맨 앞에 추가하려면 FIRST를 사용한다.

PRIMARY KEY 속성 삭제

mysql> ALTER TABLE test DROP PRIMARY KEY;



이미 PRIMARY KEY인 컬럼의 속성을 바꿀 때
PRIMARY KEY 속성은 지정하지 말고, NOT NULL 속성을 함께 지정해 주면 기존 PRIMARY KEY 속성은 그대로 남은 상태로 컬럼의 속성을 변경할 수 있다.

mysql> ALTER TABLE test MODIFY a CHAR(1) NOT NULL;



테이블의 내용 전체 삭제

mysql> TRUNCATE TABLE tablename;


트랜잭션에 의해 복구될 수 없다.


참조) http://egloos.zum.com/kwon37xi/v/1635464



UPDATE 문 


update ABCDE set column1='xyz' where no='3'
'
 
update ABCDE set column1='xyz' where no>3

 
update ABCDE set point=(point+50) where no<>3
'ABCDE' 테이블의
'point' 컬럼 값을 현재 값보다 50을 더한 값으로 수정한다.
수정대상은 'no' 컬럼값이 '3' 이 '아닌' 레코드 전부이다.
 
 
update ABCDE set column1='xyz',column2='1234' where point>3 and point<100

 
update ABCDE set column1='xyz' where no>3 order by uid limit 20
'ABCDE' 테이블의
'column1' 컬럼 값을 'xyz' 으로 수정한다.
수정대상은 'no' 컬럼값이 '3' 보다 큰 레코드이고,
전체목록을 uid 컬럼값을 기준으로 정렬해서 상위 20 개를 수정한다.
 
 

update ABCDE set column1=replace(column1,'코리아','한국')
'ABCDE' 테이블의
'column1' 컬럼 값에 '코리아' 라는 단어가 포함되어 있다면 모두 '한국' 으로 수정한다.
 

update ABCDE set column1=replace(column1,'코리아','한국') where wdate>1159454960
'ABCDE' 테이블의
'column1' 컬럼 값에 '코리아' 라는 단어가 포함되어 있는 것은  '한국' 으로 수정한다.
수정대상은 wdate 컬럼의 값이 1159454960 보다 큰 레코드 이다.
 

update ABCDE set column1=concat(column1,'hellow') where no>5
'ABCDE' 테이블의
'column1' 컬럼 값에 'hellow' 라는 단어를 덧붙인다.
수정대상은 no 컬럼의 값이 5 보다 큰 레코드 이다.


참조)http://www.technote.co.kr/php/technote1/board.php?board=faq&command=body&no=14




DELETE 문 

delete from ABCDE where no='3'

 
delete from ABCDE where no>3

 
delete from ABCDE where no<>3
'ABCDE' 테이블에서 'no' 컬럼값이 '3' 이 '아닌' 레코드를 전부 삭제한다.

  
delete from ABCDE where wdate>32015467 order by no limit 30
'ABCDE' 테이블에서 'wdate' 컬럼값이 '32015467' 보다 큰 레코드를 'no' 컬럼값을 기준으로
정렬시켜서 상위 30 개를 삭제한다.

 
delete from ABCDE where tbody like '%무료동영상%'
'ABCDE' 테이블에서 'tbody' 컬럼값에 '무료동영상' 이란 단어가 포함된 레코드를 전부 삭제한다.


delete from ABCDE where tbody like '%무료동영상%' or subject like '%광고%'
'ABCDE' 테이블에서 'tbody' 컬럼값에 '무료동영상' 이란 단어가 포함되어 있거나
'subject' 컬럼값에 '광고' 라는 단어가 포함된 레코드를 전부 삭제한다.

반응형