ex) CREATE TABLE author(id INT NOT NULL name VARCHAR(30),...);
ex) ALTER TABLE author MODIFY COLUMN id INT AUTO_INCREMENT;
UNIQUE 제약 조건을 설정하면, 해당 필드는 값이 unique해야함을 의미
방법1
CREATE TABLE 테이블이름 (필드명 필드타입 UNIQUE,...);
방법2
CREATE TABLE 테이블이름 (필드이름 필드타입, ... [CONSTRAINT 제약조건이름] UNIQUE(필드이름));
UNIQUE 제약 조건을 별도로 정의하며, 선택적으로 제약 조건에 이름을 부여하는 방법
UNIQUE 제약 조건을 설정하면, 해당 필드는 자동으로 인덱스(INDEX)로 설정
show index from 테이블명;
ALTER TABLE 테이블이름 DROP INDEX 인덱스명;
방법 1
ALTER TABLE 테이블이름 MODIFY COLUMN 필드이름 필드타입 PRIMARY KEY
방법2(별도의 제약조건 이름 옵션)
ALTER TABLE 테이블 이름 ADD CONSTRAINT 제약조건이름 PRIMARY KEY (필드이름)
CREATE TABLE 테이블 이름 (필드이름 필드타입, ..., [CONSTRAINT 제약조건이름] FOREIGN KEY(필드이름)
REFERENCES 테이블이름(필드이름) [ON DELETE/UPDATE CASCADE]);
ex) ALTER TABLE POST ADD CONSTRAINT post_author_fk FOREIGN KEY(author_id) REFERENCES author(id) ON UPDATE CASCADE;
그외 다른 예시
ALTER TABLE post ADD CONSTRAINT post_author_fk FOREIGN KEY(author_id) REFERENCES author(id) ON DELETE SET NULL ON UPDATE SET NULL;
- 외래키가 참조하는 컬럼의 값이 삭제 되거나 변경되었을 때, null값으로 변경된다.
ex) CREATE TABLE test (ID INT, NAME CARCHAR(30), DEFAULT'sim');
ex) ALTER TABLE author ADD create_at DATETIME DEFAULT CURRENT_TIMESTAMP;
ex) ALTER TABLE post ADD create_at DATE TIME DEFAULT CURRENT_TIMESTAMP;
CASE value
WHEN [compare_value] THEN result
WHEN [compare_value] THEN result ...
ELSE result
END
ex) SELECT ID
CASE NAME
WHEN '홍길동'
...
END,
email FROM author;
IF(a, b, c)
a는 조건, b는 참일 경우 반환값, c는 거짓일 경우 반환값
만약 a조건이 참이면 b를 반환하고, 거짓이면 c를 반환합니다,
SELECT IF(0 < 1, 'yes', 'no');
ex) SELECT id, title, contents,
IF(author_id = 1, 'Author One', 'Other Author')
AS author_name
FROM posts;
ex) SELECT id,
IFNULL(title, 'No Title')
AS post_title, contents, author_id
FROM posts;