발자취
#08 DDL 실습 본문
DDL 실습
1. CREATE DB

create database를 통해 testDB라는 데이터베이스를 생성했습니다.
2. DROP DB

drop database를 통해 testDB를 삭제했습니다.
3. CREATE TABLE

다시 testDB를 만들고 use로 testDB를 사용하도록 설정한 뒤, testTable이라는 테이블을 만들었습니다. int형의 ID 컬럼, varchar형의 Last Name과 FirstName 컬럼, int형의 Age 컬럼을 갖는 테이블입니다.
4. DROP TABLE

drop table로 testTable을 삭제한 뒤, desc와 show 쿼리문을 통해 확인했습니다.
5. TRUNCATE TABLE

truncate 사용 전, 후의 결과를 비교하기 위해 sampletable에 레코드 3개를 추가해줬습니다.
truncate table sampletable;을 입력하면 sampletable은 그대로 남아있는 상태에서 레코드만 지워지는 것을 확인할 수 있습니다.
6. ALTER TABLE – 컬럼 추가하기 (ADD COLUMN)

다시 ID, LastName, FirstName, Age 컬럼을 가지는 testTable을 생성한 뒤, alter table에서의 add 컬럼 쿼리를 이용하여 varchar형의 nation 컬럼을 추가했습니다.
7. ALTER TABLE – 컬럼 삭제하기 (DROP COLUMN)

alter table의 drop 컬럼 쿼리를 이용하여 nation 컬럼을 삭제했습니다.
8. ALTER TABLE - 컬럼 이름변경 (RENAME COLUMN)

alter table의 rename 컬럼 쿼리를 사용하여 ‘ID’ 컬럼을 ‘personID’라는 이릉으로 변경했습니다.
9. ALTER TABLE – 컬럼 타입변경 (MODIFY DATATYPE)

alter table의 modify datatype 쿼리를 통해 testTable의 Age 컬럼의 타입을 int에서 varchar형으로 변경했습니다.
10. Constraints – NOT NULL on CREATE TABLE

sampleTable이라는 테이블을 생성하면서 ID, LastName, FirstName 컬럼에 NOT NULL 제약조건을 지정했습니다.
11. Constraints – NOT NULL on ALTER TABLE

이미 존재하는 테이블인 sampleTable에 alter table의 modify 쿼리를 사용하여 Age 컬럼이 NOT NULL 제약조건을 가지도록 설정했습니다.
12. Constraints – UNIQUE on CREATE TABLE

uniqueTable이라는 테이블을 생성하면서 ID 컬럼에 UNIQUE 제약조건을 지정했습니다.
ID 컬럼은 NOT NULL과 UNIQUE 제약조건을 가지기 때문에 기본키(PK)가 됩니다.
13. Constraints – UNIQUE on ALTER TABLE

이미 존재하는 테이블인 uniqueTable에 alter table의 add constraint unique 쿼리를 사용하여 Age 컬럼이 UNIQUE 제약조건을 가지도록 설정했습니다.
14. Constraints – PRIMARY KEY on CREATE TABLE

pkTable이라는 테이블을 생성하면서 ID 컬럼에 primary key 제약조건을 지정하여 기본키(PK)가 되도록 만들었습니다.
15. Constraints – PRIMARY KEY on ALTER TABLE

하나의 테이블에 기본키가 여러 개일 수 없기 때문에 pkTable에서 PK 제약조건을 갖고 있던 ID에게서 alter table의 ‘drop primary key’를 통해 PK 조건을 뺏은 뒤, ‘add primary key’로 다시 부여해줬습니다.
16. Constraints – FOREIGN KEY on CREATE TABLE

fkTable이라는 테이블을 생성하면서 ID 컬럼에 foreign key 제약조건을 지정하여 외래키(FK)가 되도록 만들고, references를 통해 pkTable의 ID를 참조하도록 만들었습니다.
17. Constraints – FOREIGN KEY on ALTER TABLE

외래키를 나중에 부여해주기 위해, fkTable2라는 테이블을 외래키를 지정되지 않고 생성했습니다. alter table의 add foreign key를 이용하여 ID를 foreign key로 지정하고, pkTable의 ID를 참조하게 했습니다.
18. Constraints – CHECK on CREATE TABLE

checkTable을 생성하면서 Age 컬럼에 음수값이 들어가지 않도록 0 이상인지 확인하는 CHECK 제약조건을 지정했습니다.

Age가 -5인 레코드를 insert문을 통해 추가하려고 해보면, ERROR가 발생하며 추가되지 않고 Age가 5인 레코드만 추가되는 것을 확인할 수 있습니다.
19. Constraints – CHECK on ALTER TABLE

alter table로 checkTable의 FirstName 컬럼이 비지 않도록 check 제약조건을 추가로 지정해줍니다.

insert문을 통해 FirstName 컬럼에 대한 값을 비워두고 새로운 레코드를 추가하려고 시도해보면, ERROR가 발생하며 추가되지 않는 것을 확인할 수 있습니다.
20. Constraints – DEFAULT on CREATE TABLE

defaultTable을 생성하면서 default 제약조건을 통해 Nation 컬럼의 디폴트 값으로 ‘Korea’를 지정했습니다.
21. Constraints – DEFAULT on ALTER TABLE

alter table을 이용하여 defaultTable에 Age의 디폴트값으로 22를 지정했습니다.
22. AUTO_INCREMENT

autoTable을 생성하며 ID 컬럼에 auto_increment를 지정합니다. 레코드를 생성해보면 ID값이 자동으로 1씩 증가할 것입니다.

이름이 ‘Hi’인 레코드와 ‘Hello’인 레코드를 순서대로 추가해봤습니다.
ID 컬럼에 대한 값은 지정하지 않고 name 컬럼 값에 대해서만 지정했는데 ID값이 1부터 시작하여 자동으로 증가하며 지정되는 것을 확인할 수 있습니다.
'3-1 > 데이터베이스' 카테고리의 다른 글
| #10 DML 실습 3 (Group by, having, charset/collation) (0) | 2023.08.12 |
|---|---|
| #09 DCL 실습 (0) | 2023.08.12 |
| #06-2 exERD 활용한 모델링 실습 (0) | 2023.08.12 |
| #07 트랜잭션(일관성)과 복제 (0) | 2023.08.12 |
| #06 트랜잭션(격리성, 원자성), MVCC, 모델링 기초 (0) | 2023.05.07 |