2020. 10. 1. 00:57ㆍDB/문법
2020/09/30 - [DB/문법] - DB 기초 문법, DQL
DB 기초 문법, DQL
간단하게 Table 구조를 확인하고 이제 직접 사용해볼 차례이다. 사용하려면 당연하게도 문법을 알아야 써먹는다. DQL(Data Query Language) -> 조회 (Select) DML(Data Manipulation Language) -> 테이블안의 내용..
wakeup-brain.tistory.com
누군가 만들어준 테이블을 사용한다면 전혀 필요가 없겠지만, (실전에서는 안 쓰지 않을까 싶다.)
나는 연습을 해야하고 직접 테이블 구성을 해야하므로 간단하게 알아보고 넘어가자.
일단 뭐 아무것도 없으므로 만들어야겠다.
CREATE TABLE [name] (
[column1] [datatype] [default 형식-옵션],
[column2] [datatype] [default 형식-옵션],
[column3] [datatype] [default 형식-옵션],
[column4] [datatype] [default 형식-옵션],
);
예를 들어보자.
아래 예제는 테스트로 만들어놓은 실생활 코딩 프로젝트의 단어사전 테이블을 작성한 것이다.
no 컬럼의 경우 Not null 제약성에 따라 null값이 입력될 수 없고,
MYSQL의 자동체번함수 기능을 사용하여 no 컬럼의 값을 입력하지 않아도 자동 체번된 값으로 추가된다.
또한 제약사항중에 primary key 가 'no' 컬럼으로 되어있는데,
이는 Not Null + Unique 의 상태를 갖는 컬럼이란 의미이다.
즉, 빈 값이 올 수 없고, 중복 값을 허용하지 않는 컬럼인 것이다.
이를 통해 no 컬럼의 각 row들은 각각 유일한 값을 갖고 있을 수 밖에 없다.
CREATE TABLE `textsets` (
`no` INT NOT NULL AUTO_INCREMENT,
`korea` NVARCHAR(100) NULL,
`english` NVARCHAR(100) NULL,
`china` NVARCHAR(100) NULL,
`poland` NVARCHAR(100) NULL,
`ukraine` NVARCHAR(100) NULL,
`rank` INT NULL,
PRIMARY KEY (`no`));
이렇게 테이블을 생성했으면 사용하면 되는데,
혹시 생성된 테이블의 컬럼을 재정의하고 싶거나, 컬럼의 추가 및 삭제 를 하고 싶을 때 사용하는 것이 바로
Alter 이다.
ALTER TABLE [name]
- add column명, column 타입, 제약사항
- change(mysql) column명, column타입
- drop column명
- rename to [new name]
ALTER TABLE `textsets`
DROP COLUMN `china`,
CHANGE COLUMN `korea` `korea2` VARCHAR(200) CHARACTER SET 'utf8' NULL DEFAULT NULL ,
ADD UNIQUE INDEX `korea2_UNIQUE` (`korea2` ASC) VISIBLE;
;
변경도 불편한 것이 없다.
만들 줄 알면 삭제도 할 줄 알아야 하는 법...
DROP TABLE [name]
테이블을 삭제해버린다. 당연히 원래 있던 데이터도 삭제된다. ROLLBACK도 불가능하다.
TRUNCATE TABLE [name]
테이블을 초기 갖 생성된 상태로 돌려 놓는다. ROLLBACK도 불가능하다.
→ DML인 delete를 사용하여 테이블 안의 row를 전부 삭제했을 때와 같은 효과를 보여주지만
삭제되는 속도가 느리며, commit 전이라면 rollback이 가능하다.
→ delete에 비해 truncate 가 월등히 빠른 처리 속도를 보여주지만 rollback이 불가능하여 거의 사용할 일이 없다.
'DB > 문법' 카테고리의 다른 글
DB 기초 문법, TCL (0) | 2020.10.01 |
---|---|
DB 기초 문법, DML (0) | 2020.10.01 |
DB 기초 문법, DQL (0) | 2020.09.30 |