4주차 기본미션!
p. 226 - market_db의 회원 테이블(member) 생성하고, p. 229 - 데이터 입력한 후 인증샷
테이블은 표 형태로 구성된 2차원 구조로, 행과 열로 구성된다.
행은 로우(row)나 레코드(record)로 부르고, 열은 컬럼(column) 또는 필드(feild)로 불린다.
(테이블은 엑셀의 시트와 거의 비슷한 구주로 이루어져 있다.)
MYSQL Workbench에서 새 쿼리 창을 하나 준비하고 다음과 같이 실해하여 사용한 naver_db를 삭제한뒤 다시 생성한다. 그리고 [Schemas] 패널의 빈 곳에서 마우스 오른쪽 버튼을 클릭한 뒤 [Refresh All]을 선택한다.
DROP DATABASE IF EXISTS naver_db;
CREATE DATABASE naver_db;
USE naver_db;
DROP TABLE IF EXISTS member;
CREATE TABLE member
( mem_id
mem_name
mem_number
addr
phone1
phone2
height
debut_date
);
옵션을 추가하여 테이블을 다시 생성한다. NULL 및 NOT NULL을 지정해서 테이블을 다시 생성한다. 아무것도 지정하지 않으면 기본값으로 NULL을 허용한다. (하지만 혼란스러울 수 있으니 지정해주는 것이 좋다.)
기본 키로 설정하기 위해서는 지정할 열 뒤에 PRIMARY KEY문을 붙여주면 된다. 네이버 회원이면서 ID가 없으면 안되므로 기본 키로 지정된 열에 NOT NULL을 생략해도 당연히 NOT NULL로 취급한다.
열 이름과 데이터 형식을 먼저 지정한 뒤 나머지 조건들을 차근차근 설정하면 sql로도 어렵지 않게 테이블을 만들 수 있다. 테이블을 생성한뒤 MYSQL Workbench의 [Schemas] 패널에서 [Refresh All]을 선택하면 생성한 테이블을 확인할 수 있다.
외래 키를 제외하고 한 번에 SQL을 작성한다. 한 가지 순번 열에 AUTO_INCREMENT를 설정하는 것만 다르다. 주의할 점은 AUTO_INCREMENT로 지정한 열은 PRIMARY KEY나 UNIQUE로 지정해 줘야 한다.
손코딩
DROP TABLE IF EXISTS buy;
CREATE TABLE buy
( num
mem_id
prod_name
group_name
price
amount
);
FOREIGN KEY(mem_id) REFERENCES member(mem_id)
회원 테이블에 3건의 데이터를 입력한다.
INSERT INTO member VALUES('TWC', '트와이스', 9, '서울', '02', '11111111', 167, '2015-10-19'):
INSERT INTO member VALUES('BLK', '블랙핑크', 4, '경남', '055', '22222222', 163, '2016-8-8'):
INSERT INTO member VALUES('WMN', '여자친구', 6, '경기', '031', '33333333', 166, '2015-1-15'):
제약조건은 데이터의 무결성을 지키기 위해 제한하는 조건이다. 일단 데이터의 무결성이랑 '데이터에 결함이 없음'을 뜻한다. 만약에 네이버 회원의 아이디가 중복되면 어떤일이 일어날까요?? 이메일, 블로그, 쇼핑 등 혼란이 될것이다. 이게 바로 데이터의 결함이고, 이런 결함이 없는 것을 데이터의 무결성이라고 표현한다.
이러한 결함을 방지하기 위해 회원 테이블의 아이디를 기본 키로 지정할 수 있다. 기본키의 조건은 '중복되지 않고, 비어 있지도 않음'이므로 중복된 아이디를 넣으려고 해도 입력 불가능하다.
기본 키 외에 MYSQL에서 제공하는 대표적인 제약조건은 다음과 같다.
테이블에는 많은 행 데이터가 있다. 이 중에서 데이터를 구분할 수 있는 식별자를 기본 키(Primary Key)라고 부른다. ex) 회원 테이블의 아이디, 학생 테이블의 학번, 젝원 테이블의 사번 등이 이에 해당한다. 기본 키에 입력 되는 값은 중복될 수 없고 NULL 값이 입력 될 수 없다.
제약조건은 두 테이블 사이의 관계를 연결해주고 그 결과 데이터의 무결성을 보장해주는 역할을 한다. 외래 키가 설정된 열은 꼭 다른 테이블의 기본 키와 연결된다.
4주차 선택미션!
p. 271 - 확인문제 4번 풀고 인증샷