안녕하십니까 다제입니다.
오늘도 SQL에 대해서 배워보도록 하겠습니다.
1. ALTER
1) COLUMN 추가하기
ALTER TABLE student ADD gender CHAR(1) NULL;
-. student TABLE에 gender column을 추가하라는 의미이며,
-. 문자 길이는 1, NULL값을 포함할 수 있다는 라고 기재해둔 코드 입니다.
2) COLUMN 이름 수정
ALTER TABLE student
RENAME COLUMN student_number TO regiser_number;
3) COLUMN 삭제하기
ALTER TABLE student DROP COLUMN admission_date;
4) COLUMN type 변경하기
# 값 인코딩
UPDATE student SET major =100 WHERE object = "cup"
# type change
ALTER TABLE student MODIFY major INT;
-. 문자열로 구성된 COLUMN을 숫자형을 바꿔주고자 한다. 이때 바로 pandas처럼 바꿀 수 없다.
-. 값을 인코딩해준 후 type을 변경해야 오류가 나지 않는다.
5) NOT NULL 속성 넣기
ALTER TABLE student MODIFY student_id NOT NULL;
6) COLUMN에 DEFAULT 속성 주기
ALTER TABLE student MODIFY student_id NOT NULL DEFAULT 10101;
-. 이 기본값은 SNS에서 주로 사용된다.
-. 우리가 게시글을 올리면 자동적으로 시간이 적용되고 수정해도 수정한 시간이 뜨는 것을 알 수 있으실 겁니다.
-. 이때, 게시글을 올리는 기능에 DEFAULT로 NOW()함수를 넣어놓으면 현재 시간이 뜨게 됩니다.
7) COLUMN에 UNIQUE 속성 주기
ALTER TABLE student MODIFY id_num INT NOT NULL UNIQUE;
-. 하상 컬럼이름 컬럼속성 null여부 순으로 작성해야하는 것을 잊으면 안됩니다.
8) CONSTRAINT 걸기
# contraint 생성
ALTER TABLE student
ADD CONTRAINT st_rule CHECK ( regist_num < 3000 );
# 두개 이상의 contraint 생성
ALTER TABLE student
ADD CONTRAINT st_rule
CHECK (email LIKE '&@%' AND regist_num < 3000 );
# contraint 삭제
ALTER TABLE student DROP CONTRAINT st_rule;
-. COLUMN 내 들어오면 안되는 것들을 제한하기 위해 설정합니다.
-. 그러나, 장고같은 프레임워크를 사용하시면 모두 구현되어 있으니 너무 걱정안하셔더 됩니다.
ex) 사용할 수 없는 비밀번호 2만개를 미리 장고가 가지고 있어서 사용자들이 해킹 피해를 막을 수 있도록 도와줍니다. 심지어 이메일 인증도 구현되어 있습니다.
9) COLUMN name과 type 동시에 바꾸기
ALTER TABLE info
CHANGE id number_id VAHRCHAR(2) NOT NULL;
-. 이렇게 CHANGE를 사용하면 feature의 이름과 type속성을 한번에 바뀔 수 있습니다.
2. TABLE
1) 테이블 이름 변경하기
RENAME TABLE student TO undergraduate;
2) 테이블 복사하기
CREATE TABLE undergraduate_of_copy AS SELECT * from undergraduate;
3) 테이블 삭제하기
DROP TABLE graudate_of_copy;
4) 테이블 틀만 복사하기
CREATE TABLE copy_of_glass LIKE glass;
# 이렇게 틀 먼저 만들어진 상태에서 row채우는 방법
INSERT INTO copy_of_glass SELECT * FROM glass;
5) 테이블 데이터 일괄적으로 지우기
TRUNCATE glass;
위와 같이 ALTER과 TABLE에 대해서 알아보았습니다.
혹시 수정할 부분과 미비한 부분있다면 코멘트 부탁드립니다.
감사합니다.
'Code > SQL' 카테고리의 다른 글
[MySQL 9] MySQL data Modeling (feat. Codestates _AI_BootCamp, 코드스테이츠) (0) | 2021.03.11 |
---|---|
[MySQL 8] Foreign Key 삭제 & 업데이트 정책(feat. Codestates _AI_BootCamp, 코드스테이츠) (0) | 2021.03.11 |
MySQL 기초부터 훑어보기6(Table) (0) | 2021.03.08 |
MySQL 기초부터 훑어보기5( Subquery, view) (0) | 2021.03.07 |
MySQL 기초부터 훑어보기4(ForeignKey, Join) (0) | 2021.03.07 |