본문 바로가기

SQL/MySQL

[MySQL] CREATE/ DROP/ ALTER

데이터 베이스 생성  CREATE

 

SQL에서 새로운 데이터 베이스, 테이블들을 생성할 때에는 CREATE 명령어 사용합니다. 

create database dbtest;

 

SQL 상에는 여러 Database가 존재하므로 해당 db를 사용할 때에는 반드시 USE 데이터베이스이름을 실행 해 주어야 합니다. 

use dbtest;

 

SQL 스크립트에서 번개 모양을 눌러 실행, 스키마 새로고침을 해주면 왼쪽 스키마에 새로운 dbtest가 생긴 것을 확인할 수 있습니다. 

 

 

 

데이터 베이스 삭제  DROP

반대로 데이터 베이스, 테이블들을 삭제할 때에는 DROP 명령어를 사용합니다. 

drop database dbtest;

 

 

테이블 생성

간단한 예제를 위해 고객 table, 제품 table, 주문 table, 배송업체 table을 만들어 보겠습니다. 

 

##테이블 생성 구조

create table [테이블 이름](

속성이름      데이터 타입(크기)       옵션

);

 

 

데이터 타입 종류 : INT(정수형)/ CHAR(문자형)/ VARCHAR(가변문자열)/ DATE(날짜) 

옵션 종류 : NOT NULL (빈칸 허용 안함) , DEFAULT(기본값 지정), CHECK(조건) , 

PRIMARY KEY (기본 키 지정),

FOREIGN KEY 속성이름 REFERANCE 외부테이블명(외부속성이름)  : 외래 키 지정

create table 고객(
고객아이디  VARCHAR(20) NOT NULL,
고객이름      VARCHAR(10) NOT NULL,
나이             INT,
등급             VARCHAR(10) NOT NULL,
직업             VARCHAR(20),
적립금          INT                  DEFAULT  0,
PRIMARY KEY(고객아이디) );

create table 제품(
제품번호      CHAR(3) NOT NULL,
제품명         VARCHAR(20),
재고량         INT,
단가             INT,
제조업체     VARCHAR(20),
PRIMARY KEY(제품번호),
CHECK (재고량 >= 0 AND 재고량 <=10000) );

create table 주문(
주문번호      CHAR(3) NOT NULL,
주문고객      VARCHAR(20),
주문제품      CHAR(3),
수량             INT,
배송지         VARCHAR(30),
주문일자     DATE,
PRIMARY KEY(주문번호),
FOREIGN KEY(주문고객) REFERENCES 고객(고객아이디),
FOREIGN KEY(주문제품) REFERENCES 제품(제품번호) );

CREATE TABLE 배송업체 (
업체번호  CHAR(3)             NOT NULL,
업체명      VARCHAR(20),
주소         VARCHAR(100),
전화번호  VARCHAR(20),
PRIMARY KEY(업체번호) );

commit;

 

## 코드 드레그 => 번개(실행) => 스키마 새로고침 

 

 

테이블 구조 변경 ALTER

 

테이블의 구조를 변경할 때는 ALTER 명령어를 사용합니다.

 

##테이블에 새로운 속성 추가

ALTER TABLE 테이블이름 ADD 속성이름  (형태)  (옵션)

 

#테이블 속성 제거

ALTER TABLE 테이블이름 DROP COLUMN 속성이름

 

#테이블에 새로운 조건 추가

ALTER TABLE 테이블이름 ADD CONSTRAINT 조건이름 CHECK(조건)

 

#테이블 조건 삭제

ALTER TABLE 테이블이름  DROP CONSTRAINT 조건이름

 

alter table 고객 add 가입날짜 date;
alter table 고객 drop column 가입날짜; 
alter table 고객 add constraint chk_age check(나이 >= 20);
alter table 고객 drop constraint chk_age;

 

반응형

'SQL > MySQL' 카테고리의 다른 글

[MySQL] INSERT/ SELECT  (1) 2023.02.24