다대다 조인
이미 2개의 테이블 조인은 공부했기 때문에 다른 설명은 생략하고 들어가겠다
그림으로 간단하게 설명하면 다음과 같다
맨위 : item 테이블 , 중간 : review 테이블 ,마지막 : member 테이블
이렇게 3개의 테이블을 reivew 테이블에 있는 각각의 id로 연결해서묶어 주는 것이다.
이렇게 실행을 해보면 다음과 같이 나온다 .
말로 조금 설명을 하자면 처음 조인에서 LEFT OUTER JOIN으로 item테이블 기준으로 조인이 되었다.
그리고 조인이 이루어진 테이블기준으로 member테이블을 조인을 해준 것이다.
첫 기준이 item테이블이기때문에 아이템 테이블에 있는 것들은 다 출력이 되었지만 해당 간에 다른 테이블들의 정보가 없기 때문에 null로 표현 된것이다.
기본적으로 이렇게 조인이 되고 INNER JOIN도 가능하다.
이렇게 INNER조인으로 하게 되면 합집합으로 각자있는 것들만 출력하기 때문에 보시다시피 null 이 하나도 없는 것을 볼수 있다.
테이블 생성과 제약조건
테이블 생성
@데이터 베이스 제거하기
#노란부분은 해당 데이터 베이스가 존재하면 지우라는 명령어, 만약shopdb가 없는 상태에서 이 명령어를 작성 안하면 여기서 오류나면서 멈추게 된다.
@데이터 베이스 생성
@테이블생성 (전에 실습해봄 복습겸 간단하게 )
@몇가지 옵션 설정
NOT NULL :널값이 되면 안된다
NULL :널값 허용
@PRIMARY KEY 설정
@AUTO_INCREMENT 추가하기
@외래키 지정 ( FOREIGN KEY)
노랑색 : 나의 정보 , 파란색 : 참조 당하는곳
@테이블에 데이터 넣기 ( 이거도 전에 해봄 복습)
AUTO_INCREMENT는 자동으로 증가하기 때문에 null 적어도되고 안적어도 된다
제약조건
@기본키 제약조건
파란부분 : 프라이머리키 이름 지정 , 노란부분: 프라이머리키 2개도 가능
#여기서 알아야할부분은 프라이머리키로 설정하면 따로 NOT NULL 안주어도 들어간다
프라이머리키 주는 방법은 3가지가 있는데
처음에 바로 주는 방법 , 맨 마지막줄에 제약조건 명시후 주는 방법 , 나중에 ALTER로 추가해주는 방법
@외래키(FOREIGN KEY) 제약조건
# 두 테이블 사이의 관계를 선언함으로써 데이터의 무결성을 보장하는 역활함
#테이블 사이에 외래키 관계를 설정하면 하나의 테이블이 다른 테이블에 의존하게 된다
#외래키를 지정하는 테이블이 외래키 테이블 , 참조가 되는 테이블이 기준 테이블 이라함
위에 추가 하는 방법 있는데 이것또한 테이블 생성하면서 설정가능하고 위에 프라이머리키 처럼 ALTER TABLE로도 가능하다 .
@UNIQUE 제약조건
#중복되지 않는 유일한 값을 입력해야함
#기본키와 비슷하지만 null값 허용 한다.
이렇게 2가지 방법으로 추가해줄수 있다.
@DEFAULT 제약조건
#값을 입력하지 않았을 경우에 자동으로 입력되는 기본 값을 정의함
ALTER로 추가 해주어도 된다.
마지막으로 이렇게 설정이 되어 있다면 INSERT INTO로 값을 넣을때 해당 칸에 DEFAULT를 적어주면 자동으로 DEFAULT값 입력됨
'아옳옳의 코딩공부 > 아옳이의 데이터베이스 MySQL' 카테고리의 다른 글
2021-06-02 MySQL 데이터베이스 인덱스 (0) | 2021.06.02 |
---|---|
2021-06-01 MySQL 데이터베이스 테이블 종합 실습 , 유저권한 , 트렌젝션 , 뷰 (0) | 2021.06.01 |
2021-05-28 MySQL 데이터베이스 내부조인 (0) | 2021.05.28 |
2021-05-27 MySQL 데이터베이스 내장함수 (0) | 2021.05.27 |
2021-05-27 MySQL 데이터베이스 데이터 형식 (0) | 2021.05.27 |