-
[삼쾌한 IT강의] MySQL DDL 실습데이터베이스/실습 2022. 7. 23. 16:57
안녕하세요 삼쾌한IT강의 백소라강사 입니다.
오늘은 DDL 에 대해 포스팅 하도록 하겠습니다 !
1. DDL 이란 ? 정의어
Data Definition Language의 줄임말로 데이터 구조를 정의할 때 쓰는 쿼리입니다.
대표적으로 CREATE, ALTER, DROP 이 있습니다.
2. CREATE 문의 기본 문법
CREATE TABLE 테이블이름
( 속성이름 데이터타입
[NOT NULL]
[UNIQUE]
[DEFAULT 기본값]
[PRIMARY KEY 속성이름(들)]
[FOREIGN KEY 속성이름 REFERENCES 테이블이름(속성이름)]
[ON UPDATE [NO ACTION┃CASCADE┃SET NULL┃SET DEFAULT]]
[ON DELETE [NO ACTION┃CASCADE┃SET NULL┃SET DEFAULT]]
)테이블을 생성하며 기본키와 외래키를 설정할 수 있습니다.
* 기본키 : 레코드를 구분하는 기준이 되는 기본 키
* 외래키 : 다른테이블의 기본키를 참조하는 키
사용예시 : 아래와 같이 newbook 테이블을 생성하려면?!
CREATE TABLE NewBook (
bookname VARCHAR(20),
publisher VARCHAR(20),
price INT,
PRIMARY KEY (bookname, publisher));*PRIMARY KEY(기본키)를 2개 이상 지정하려면 CREATE 문의 맨 마지막에 기재해야 합니다.
3. 외래키 적용시 옵션 내용
* 참조하고 있는 부모테이블의 기본키 행(투플/레코드)이 변경된 경우 자식테이블의 행에 어떤 조치(?)를 취할건지 결정하는 옵션
기본키 및 외래키 (FOREIGN KEY) 적용 예시 :
다음과 같은 속성을 가진 NewOrders 테이블을 생성하시오.
orderid(주문번호) - INT, 기본키
custid(고객번호) - INT, NOT NULL 제약조건, 외래키(NewCustomer.custid, 연쇄삭제)
bookid(도서번호) - INT, NOT NULL 제약조건
saleprice(판매가격) - INT
orderdate(판매일자) - DATECREATE TABLE NewOrders (
orderid INT,
custid INT NOT NULL,
bookid INT NOT NULL,
saleprice INT,
orderdate DATE,
PRIMARY KEY (orderid),
FOREIGN KEY (custid) REFERENCES NewCustomer(custid) ON DELETE CASCADE);설명 : NewCustomer 테이블의 custid가 6인 레코드를 삭제하면 NewOrders의 custid 6번 행도 함께 삭제된다.
4. ALTER문의 기본 문법
ALTER TABLE 테이블이름
[ADD 칼럼명 데이터타입]
[DROP 칼럼명]
[CHANGE 칼럼명 새칼럼명 데이터타입]
[MODIFY 칼럼명 데이터타입]
[ADD PRIMARY KEY(컬럼명)]
[DROP PRIMARY KEY]
[ADD FOREIGN KEY (컬럼명) REFERENCES 원테이블명(원컬럼명)]
[DROP FOREIGN KEY 컬럼명]
[RENAME 새테이블명]
[ALTER 칼럼명 SET DEFAULT 기본값]
[ALTER 칼럼명 DROP DEFAULT]
사용예시 : NewBook 테이블의 isbn 속성의 데이터 타입을 INT형으로 변경하시오.
ALTER TABLE NewBook MODIFY isbn INT; 이상 DDL의 기본 개념과 사용법에 대해 알아보았습니다.
도움이 됐다면 공감버튼 클릭! 댓글은 센스! 감사합니다 :-)
'데이터베이스 > 실습' 카테고리의 다른 글
[삼쾌한 IT강의] 자바에서 MySQL 테이블 행 개수 구하기 (0) 2022.07.23 [삼쾌한 IT강의] 자바에서 MySQL DB 변경하기 (0) 2022.07.23 [삼쾌한IT강의] MySQL VIEW 만들기 (0) 2022.07.23 [삼쾌한 IT강의] MySQL 계정 설정 (권한 주기, 회수하기) (0) 2022.07.23 [삼쾌한 IT강의] mysqldump 액세스 거부 해결 방법 (0) 2022.07.23