01.Mysql 기초 - 데이터 정의 언어(DDL, Data Definition Language)
![post-thumbnail](https://velog.velcdn.com/images/jewon119/post/a19bb9e9-fe9e-46e3-abe0-3cde7a71dd09/mysql-thumbnail.png)
🌈 Mysql Workbench로 데이터베이스 만들기
🔥 Workbench에서 데이터베이스 생성
🔥 Workbench에서 데이터베이스 삭제
🔥 Workbench에서 테이블 생성
🔥 Workbench에서 테이블 삭제
🔥 Workbench에서 테이블 구조 확인
🔥 Workbench에서 테이블 다루기(추가,수정,삭제)
1. Workbench에서 데이터베이스 생성
- ✔️ 현재 생성된 데이터베이스 확인하는 명령 : SHOW DATABASES;
- 데이터베이스 조회 예시 : SHOW DATABASES; → ⚡️(실행)
- 실행하여 아래처럼 나온다면 아직 생성된 데이터베이스가 없는 것임(아래 4개는 자동으로 존재하는 것)
![](https://velog.velcdn.com/images%2Fjewon119%2Fpost%2F9d3452db-24ff-475e-b24f-1edc8b9baa4f%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-02-08%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2012.17.54.png)
- ✔️ 데이터베이스 생성 명령 : CREATE DATABASE [데이터베이스명];
- 생성 예시 : Workbench에서 CREATE DATABASE mydata; → ⚡️(실행)
- mydata는 데이터베이스 이름으로 변수명을 만드는 것과 같이 적절한 이름으로 생성
- SHOW DATABASES; → ⚡️(실행)을 통해 데이터베이스 생성되었는지 볼 수 있음
![](https://velog.velcdn.com/images%2Fjewon119%2Fpost%2Fb29c9740-c1e1-46e0-914c-2897d50520f5%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-02-08%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2012.27.21.png)
2. Workbench에서 데이터베이스 삭제
- ✔️ 데이터베이스 삭제하는 명령 : DROP DATABASE [데이터베이스명];
- Workbench에서 DROP DATABASE mydata; → ⚡️(실행)
- ✔️ 삭제되었는지 확인 : SHOW DATABASES; → ⚡️(실행)
- IF EXISTS 옵션 : "~가 존재한다면"이라는 옵션과 함께 사용할 수 있음
- IF EXISTS 절을 이용하면 삭제를 지시한 데이터베이스가 이미 존재하지 않더라도 오류를 발생시키지 않음
- 🔍 DROP DATABASE IF EXISTS [데이터베이스명];
![](https://velog.velcdn.com/images%2Fjewon119%2Fpost%2F11466a3d-36de-4d58-a46d-1750e89ab772%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-02-08%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2012.32.49.png)
3. Workbench에서 테이블 생성
- 데이터베이스를 생성 후 해당 데이터베이스에 데이트블 생성하기 위해서는 데이터베이스를 사용하겠다고 선언해야함
- ✔️ 데이터베이스 사용하겠다는 명령 : USE 데이터베이스명;
- 🔍 USE mydata; → ⚡️(실행)
- ✔️ 테이블 생성 명령 : CREATE TABLE 테이블명(컬럼명 데이터타입, 컬럼명 데이터타입, 컬럼명 데이터타입, 컬럼명 데이터타입, PRIMARY KEY(KEY));
- [NOT NULL] : NOT NULL 명시하면 데이터 입력 시, 해당 컬럼 데이터에 값이 할당되지 않는 경우를 허락하지 않겠다는 의미
- [AUTO_INCREMENT] : AUTO_INCREMENT 명시하면, 해당 테이블에 데이터 등록시 해당 컬럼은 자동으로 숫자가 1씩 증가(정수만 가능)하여 순차적으로 저장됨(일반적으로 PRIMARY KEY의 옵션으로 넣음)
1) 데이터 타입
- 숫자형 : TINYINT, SAMLLINT, MEDIUMINT, INT, BIGINT, FLOAT 등
- 문자형 : CHAR(n), VARCHAR(n), TYNYTEXT(n), TEXT(n) 등
- 시간형 : DATA, TIME, DATATIME, TIMESTAMP, YEAR 등
![](https://velog.velcdn.com/images%2Fjewon119%2Fpost%2Fd429998b-d981-40b0-ac63-b8c1336c76a3%2F11231.jpg)
2) 테이블 생성 예시
- 🔍 CREATE TABLE myproduct(MYKEY INT, PRODUCTID TEXT, TITLE TEXT, ORI_PRICE INT, DISCOUNT_PRICE INT, DISCOUNT_PERCENT INT, DELEVERY TEXT, PRIMARY KEY(MYKEY));
![](https://velog.velcdn.com/images%2Fjewon119%2Fpost%2Fca7d6e91-f591-4c1f-a69a-c18410429826%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-02-08%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%201.50.54.png)
4. Workbench에서 테이블 삭제
- ✔️ 데이터베이스에서 테이블 삭제 명령 : DROP TABLE 테이블명;
- DROP TABLE myproduct; → ⚡️(실행)
- 🔍 DROP TABLE IF EXISTS [테이블명]; ⇢ 테이블이 존재하지 않더라도 오류 발생 안함
- 🔍 TRUNCATE TABLE [테이블이명]; ⇢ 테이블은 두고, 그 안에 데이터만 모두 삭제
- 데이터베이스 삭제와 같은 명령 구조
5. Workbench에서 테이블 구조 확인
- ✔️ DESC [테이블명];
- "SHOW [테이블명]"은 테이블의 목록을 보여주는 sql문이고, "DESE [테이블명]"이 테이블의 스키마 구조를 볼 수 있게해주는 명령어임
- 🔍 DESC myproduct;
![](https://velog.velcdn.com/images%2Fjewon119%2Fpost%2Fa45b98fe-fdc7-40e5-9579-25738c7c89f6%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-02-08%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%202.06.40.png)
6. Workbench에서 테이블 다루기
1) column 추가
- ✔️ ALTER TABLE [테이블명] ADD COLUMN [추가할 컬럼명][추가할 컬럼 데이터형]
- ALTER TABLE mytable ADD COLUMN model_type VARCHAR(10) NOT NULL;
![](https://velog.velcdn.com/images%2Fjewon119%2Fpost%2F10419190-b875-4cdc-9d0d-a50c12b4e1ef%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-02-08%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%202.33.42.png)
2) column 데이터 타입 변경
- ✔️ ALTER TABLE [테이블명] MODIFY COLUMN [변경할 컬럼명][변경할 컬럼 타입]
- ALTER TABLE mytable MODIFY COLUMN name varchar(20) NOT NULL;
![](https://velog.velcdn.com/images%2Fjewon119%2Fpost%2F727fd974-e894-4b0b-8c7a-29a001857471%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-02-08%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%202.43.23.png)
3) column 이름 변경
- ✔️ ALTER TABLE [테이블명] CHANGE COLUMN [기존 컬럼 명][변경할 컬럼 명][변경할 컬럼 타입]
- ALTER TABLE mytable CHANGE COLUMN name model_name varchar(10) NOT NULL;
![](https://velog.velcdn.com/images%2Fjewon119%2Fpost%2F6cad6b99-92c6-4770-8666-2febabdc0f96%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-02-08%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%202.45.06.png)
4) column 삭제
- ✔️ ALTER TABLE [테이블명] DROP COLUMN [삭제할 컬럼 명]
- ALTER TABLE mytable DROP COLUMN model_type;
![](https://velog.velcdn.com/images%2Fjewon119%2Fpost%2F90fc5797-b6d4-4733-8d10-3e49bcf2b770%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-02-08%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%202.46.28.png)