05-1. 테이블 만들기
- 엑셀의 시트와 유사 (하지만 엑셀의 시트는 테이블이라 부르지는 않음)
- 테이블은 DB안에 있는 객체
- GUI 방식 (마우스로 클릭)과 SQL문을 통한 방식이 있다
🗃️ 네이버 쇼핑 DB 구성도
👉🏻 테이블 설계
- 집 짓기 전 건축 설계도 그리는 것 처럼
🧩 회원 테이블
- ID를 PK로
- 평균 키는 UNSIGNED TINYINT (0~255)
🧩 구매 테이블
- 구매 테이블의 ID를 회원 테이블의 ID와 PK - FK 관계로 연결되도록
- 순번: 기본키 (PK), AUTOINCREMENT
👉🏻 GUI 환경에서 테이블 만들기
🎮 DB 만들기
- 일단 DB만 쿼리문으로 만드는 듯
- 더블 클릭을 통해 데이터베이스 사용하기
🎮 테이블 만들기
- naver_db를 열어 'Tables'를 마우스 오른쪽 클릭 → 'Create Table' 선택
- 테이블 만들 수 있는 창 나타남
🎮 회원 테이블
- 테이블 명에 'member'
- 밑의 흰 공백부분 더블클릭후 컬럼 하나씩 만들어주기
- 요건대로 컬럼 만들어주기
- 옵션 체크 신경쓰기
- 만약 잘못 추가한 열이 있다면 마우스 오른쪽 → 'Delete Selected'
- Apply 누르기
- SQL문 버전
- 완료
- 스키마를 확인해보면 member 테이블이 생성되어있다
🎮 구매 테이블
- 외래키를 GUI를 활용해 추가할 수 도 있긴 한데 일단은 쿼리문을 통해 추가함
👉🏻 테이블에 데이터 입력하기
🎮 MEMBER 테이블 데이터 입력하기
- 테이블에 마우스오른쪽 → 'Select Rows' 선택
- 입력된 것들이 보여야 하는데 입력한 게 없어서 아무것도 안 보임
- NULL 부분 더블클릭해서 값 채워 넣기
- 임시로 하는 거라 3개만
- Apply 클릭
- SQL문이 나옴
🎮 BUY 테이블 데이터 입력하기
- 순번은 입력하지 않음 (AUTO_INCREMENT로 자동 입력되기 때문)
- 오류 발생!
- 구매 테이블에 데이터가 있으려면 회원 테이블에 해당 ID의 데이터가 있어야 한다
- 우리가 회원 테이블을 만들 때 '트와이스', '블랙핑크', '여자친구'데이터만 넣었다
- 구매 테이블에서 회원 테이블에 없던 'APN'이 나타나 오류가 난 것
- 1:다 관계 (회원 - 1, 구매 - 다)
- 회원이 되어야만 구매가 가능함
- 일단 취소
- APN 행에 대해 마우스 오른쪽 → Delete Row(s) 선택
- GUI로 입력하는 것 보다는 SQL로 입력하는 것을 권장한다!
👉🏻 SQL ver
- 원래 이런식으로 복잡
- 간단하게 이런 식으로 만들 수 있다
- 열은 한 개 이상이기만 하면 됨
🎮 위에서 만든 것 삭제하기
👉🏻 SQL로 데이터베이스 만들기
- DB 생성
- DB 사용 선언
👉🏻 SQL로 테이블 만들기
🎮 member 테이블 만들기
- 존재한다면 삭제하는 구문은 웬만하면 꼭 써주기
- 회원 아이디 = PK
- 이름
- 인원수
- 주소 (경기, 서울, 경남 이런 식으로 2글자만 입력)
- 연락처의 국번(02, 031 등)
- 연락처의 나머지 전화번호 (하이픈 제외)
- 평균 키
- 데뷔 일자
*NOTNULL 여부 지정해서 다시 만들어보기
* 기본키 지정 추가하기
🎮 buy 테이블 생성하기
* 외래키 지정 추가
👉🏻 데이터 입력하기
🎮 member 테이블 데이터 입력하기
🎮 buy 테이블 데이터 입력하기
- 에이핑크가 회원이 아니라 에러남 (위와 같은 상황)
➡️ 둘 다 동일한 결과를 낸다
출처: https://youtu.be/DMNpkj_bZIs?si=cHpB1jocUVGQS0-d
'MySQL > 혼공SQL' 카테고리의 다른 글
14강. 가상의 테이블: 뷰(생성, 수정, 삭제) (2) | 2023.11.27 |
---|---|
13강. SQL 테이블 제약조건(기본키, 외래키, 고유키) (1) | 2023.11.24 |
[SQL 기초 강의] 11강. SQL 프로그래밍(IF문, CASE문, WHILE문, 동적SQL) (0) | 2023.11.14 |
[SQL 기초 강의] 10강. 두 테이블을 묶는 JOIN(INNER JOIN, OUTER JOIN, CROSS JOIN, SELF JOIN) (1) | 2023.11.13 |
[SQL 기초 강의] 9강. MySQL의 데이터 형식(정수형, 문자형, 실수형, 날짜형)과 형 변환 (0) | 2023.11.11 |