[mysql] 해당 컬럼 값을 1씩 증가시키기 와 mysql 자료형,제약조건,엔진
mysql>update [테이블명] set [컬럼명]=[컬럼명]+1 where [조건절]
mysql>update [테이블명] set [컬럼명]=[컬럼명]+1
해당 컬럼은 숫자값이 들어 있어야 합니다.
해당 업데이트 문을 이용하여 숫자값을 증가 시킵니다.
[MySQL 자료형]
정수: tinyint, smallint, int, integer, bigint
실수: float, double
문자: char, varchar, char(n), varchar(n), text (잘 모르겠으면 varchar를 쓰면 좋고, 자주 바뀌는 것은 char를 사용)
날짜: date, datetime, timestamp, time
파일의 내용: BLOB(파일의 내용 저장 byte단위로 기록)
-char(n) : 고정문자열 : 자주 변경되는 데이터는 이것을 사용(행 이주문제가 없으므로)
-varchar(n) : 가변문자열 (행이주 문제. 줄거나 늘면 데이터가 이동해야함, 느려질 수 있음) : 변경이 거의 없는 데이터에 사용.
-text (Oracle의 CLOB, 4000byte, 한글 1000자 이상) : 긴 문자열 (인덱스 설정이 안됨 = 검색이 느림.)
[제약조건]
입력과 관련된 제약조건(성능에 영향을 안줌) : not null, unique, default, chack.
unique : 유일성 (유일해야 한다.)
not null : 필수 (비어있을 수 없다. 컬럼 제약조건으로만 입력, 테이블 제약조건 불가.)
Default : 기본값 설정 (Unique, Primary키와는 절대로 같이 쓰지 않는다.(생략하면 기본값이 있기 때문에 겹치는 데이터가 생김.)
check : 값을 제한
ex)남자 여자만 선택 = check in ('남','여'), 양수만 선택 = check >= 0
성능에 영향을 주는 제약조건 : primary key, foreign key (개발자도 알아야 하는 제약조건)
primary key : 기본키 = 테이블 내에서 하나의 레코드를 구분하기 위한 속성(컬럼, 열), 테이블 내에서 1개만 설정 가능.
[not null + Unique + 자동 인덱스 생성(검색속도 증가)]
foreign key : 참조키, 외래키 = 다른 테이블의 데이터를 참조하기 위해 설정.
다른 테이블에서 Primary Key이거나 unique할 때만 설정 가능
auto_increment(오라클의 시퀀스) : 일련 번호를 삽입하고자 할 때 컬럼제약조건 입력위치에 사용.
오라클의 시퀀스와 다른점 : 테이블 내에서 한번만 나와야 함.
테이블 생성 시 AUTO_INCREMENT=초기값 을 추가하면 시퀀스의 초기 값을 설정할 수 있습니다.
[엔진]
MyISAM : MyISAM은 조회에 유리 (트랙젝션 관리가 불가능) (Select에 유리)
KEY INDEX를 지원 하여 KEY로 정의된 칼럼의 값을 조회 조건으로 넣으면 INDEX로 빠르게 검색하는 기능을 지녔다.
InnoDB : 트랜잭션에 유리하지만 KEY를 이용한 검색에는 불리 (Insert, Update, Delete 작업에 유리)