Database/MySQL, MariaDB

TIMESTAMP 타입의 컬럼을 생성할 때 Nullable과 Default Value 관련 유의할 사항입니다. TIMESTAMP 타입의 컬럼이 Nullable일 경우 TIMESTAMP 타입의 컬럼이 Nullable일 경우 NOT NULL과 대조되게 NULL을 명시해주어야 합니다. 그렇지 않으면 자동으로 NOT NULL로 생성됩니다. TIMESTAMP 타입의 컬럼의 Defult값이 없는 경우 첫 번째 TIMESTAMP 타입의 컬럼은 자동으로 DEFAULT current_timestamp() on update current_timestamp()의 형태로 생성되게 되고, 그 이후의 TIMESTAMP 타입의 컬럼은 자동으로 DEFAULT '0000-00-00 00:00:00'의 형태로 생성되게 됩니다.
사용자가 생성하지 않아도 DB의 메타 데이터를 가지고 있는 스키마가 있다. 개발을 하다보면 흔하게 마주칠 수 있는 녀석으로, INFORMATION_SCHEMA 스키마이다. 아래에 주로 필요한 경우를 나열하였다. 1. 테이블 정보(테이블명, 테이블이 속한 스키마 등) 조회 SELECT * FROM INFORMATION_SCHEMA.TABLES; 2. 컬럼 정보(컬럼명, 데이터타입과 데이터 크기, 기본값, NOT NULL 여부 등) 조회 SELECT * FROM INFORMATION_SCHEMA.COLUMNS; 3. 테이블 제약조건 조회 SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS; 4. 테이블 인덱스 조회 cf. `TABLE_CONSTRAINTS`와 조인하여 ..
기본적으로 ALTER를 통해서 테이블의 정보를 수정할 수 있다. 테이블명을 수정할 때 역시 ALTER를 사용할 수 있는데, ALTER가 아닌 RENAME을 사용해서 테이블명을 변경할 수도 있다. RENAME TABLE [테이블명] TO [변경될 테이블명]; 그렇다면 RENAME과 ALTER의 가장 큰 차이점은 뭘까? 바로 RENAME을 사용할 경우 한번에 다수의 테이블명을 변경할 수 있으나, ALTER를 사용해서는 단일 테이블명 변경만 가능하다는 것이다. -- ALTER를 사용해 테이블명 변경 ALTER TABLE [테이블명] RENAME [변경될 테이블명]; -- RENAME을 사용해 다수의 테이블명 변경 RENAME TABLE [테이블명1] TO [변경될 테이블명1], [테이블명2] TO [변경될 테..
테이블명 변경(RENAME) ALTER TABLE [기존 테이블명] RENAME [변경될 테이블명]; 컬럼 추가(ADD) -- 마지막에 추가(기본) ALTER TABLE 테이블명 ADD COLUMN 칼럼이름 칼럼타입 -- 지정 칼럼 뒤에 ALTER TABLE 테이블명 ADD COLUMN 칼럼이름 칼럼타입 AFTER 칼럼이름 -- 제일 앞에 추가 ALTER TABLE 테이블명 ADD COLUMN 칼럼이름 칼럼타입 FIRST 컬럼 삭제(DROP COLUMN) ALTER TABLE [테이블명] DROP COLUMN [컬럼명]; 컬럼 수정 - 컬럼명, 컬럼 데이터 타입 변경 - 컬럼 데이터 타입만 변경(MODIFY COLUMN) ALTER TABLE [테이블명] MODIFY COLUMN [컬럼이름] [새컬럼타입..
devYH
'Database/MySQL, MariaDB' 카테고리의 글 목록