실습1
1.
Schema 생성
•
위의 버튼 클릭 → Name에 schema 이름 작성 → Apply
2.
table 생성
•
Tables 에서 오른쪽 마우스 클릭 → Create Table
•
Table Name 입력 → 생성할 Column Name 입력 → Datatype 과 제약조건(PK, NN 등) 선택 → Apply
제약조건
PK : Primary key, 중복이나 빈값(NULL)이 들어올 수 없음
NN : Not Null(빈값) 못들어옴
UQ : Unique, 중복 값을 넣을 수 없음
B : 데이터를 이진 문자열로 저장함(010101 같은)
UN : Unsigned data type (- 범위 삭제)
ZF : Zero Filled 컬럼 크기보다 작은 값을 넣었을 경우 0으로 채운 뒤 삽입시킴
AI : Insert 시마다 값 1씩 늘어남
G : 다른 열을 기반으로 한 수식으로 생성된 값
Default/Expression : 기본값, 기본값에 수식 설정
3.
Foreign Keys 설정
•
참조 할 Table의 column Name → Foreign Key Name 에 작성 후 Referenced Table 선택 → column 과 Referened Column 선택 → Foreign Key Comment 에 간단한 설명 작성 → Apply
Foreign Key (외래키)
- 두 테이블을 서로 연결하는 데 사용.
- 외래키가 포함된 테이블 : 자식 테이블. / 외래키 값을 제공하는 테이블 : 부모 테이블.
주의 사항
- 값이 NULL 이거나 부모 테이블의 기본키 값과 동일 해야한다. (참조 무결성 제약조건)
- 부모 테이블의 기본키, 고유키를 외래키로 지정할 수 있다.
실습 2
정상희
테이블에 작가(Author)가 추가된다면?
•
Author 테이블 생성
•
book 테이블에 외래키 저자 id를 추가
Book Table
Publisher Table
Author Table
•
ERD 다이어그램
실습3
아래 ERD로 MySql에 Table만들기
ERD 분석
•
테이블은 book, publisher, author로 총 세개
•
author와 book은 1:N 관계
•
publisher와 book 또한 1:N 관계
SQL 코드
# 스키마 생성
CREATE SCHEMA `likelion-db` DEFAULT CHARACTER SET utf8mb4 ;
# 테이블 생성
CREATE TABLE `likelion-db`.`book` (
bookid INT NOT NULL,
book_name VARCHAR(45) NOT NULL,
publisher_id INT NOT NULL,
author_id INT NOT NULL,
PRIMARY KEY (bookid)
);
CREATE TABLE `likelion-db`.`publisher` (
publisher_id INT NOT NULL,
publisher_name VARCHAR(45) NOT NULL,
publisher_address VARCHAR(90) NOT NULL,
PRIMARY KEY (publisher_id)
);
CREATE TABLE `likelion-db`.`author` (
id INT NOT NULL,
name VARCHAR(20) NOT NULL,
PRIMARY KEY (id)
);
# 외래키 설정 (cascade 옵션 중 update 설정)
alter table `likelion-db`.book add foreign key(author_id) references author(id) on update cascade;
alter table `likelion-db`.book add foreign key(publisher_id) references publisher(publisher_id) on update cascade;
SQL
복사
실습4
송진우
publisher 테이블을 생성하고 5개 출판사를 Insert해보세요
•
publisher Table
Column | DataType |
publisher_id | INT |
publisher_name | VARCHAR(45) |
publisher_address | VARCHAR(90) |
1.
SQL 구문
CREATE TABLE publisher ( #테이블 생성
publisher_id INT NOT NULL AUTO_INCREMENT,
publisher_name VARCHAR(45) NOT NULL,
publisher_address VARCHAR(90) NOT NULL,
PRIMARY KEY(publisher_id)
);
INSERT INTO `likelion-db`.`publisher` (`publisher_id`, `publisher_name`, `publisher_address`) VALUES (0, '이지스퍼블리싱', '서울시 강남구')
#(0, '이지스퍼블리싱', '서울시 강남구');
#(1, '길벗', '서울시 서초구');
#(2, '에이콘', '서울시 은평구');
#(3, '비제이퍼블릭', '경기도 수원시');
#(4, '정보문화사', '서울시 성북구');
SQL
복사
2.
MYSQL WorkBench 활용
•
테이블 생성
•
다음과 같이 설정 후, Apply
•
해당 표에서 값 수정 후, Apply 클릭