ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • mysql Join 절을 알아보자 - inner 조인
    카테고리 없음 2019. 9. 4. 18:45

    조인은 관계형 데이터 베이스에서 일반적으로 많이 사용하며, 충분한 이해없이 사용하기 쉬운부분이다.

    조인의 종류가 그사용하는 예에 대해서 공부해 보자.

    1.INNER 조인

    2.LEFT OUTER, RIGHT OUTER, OUTER 조인

    3.카티전 조인(CROSS 조인)

    4.셀프 조인

     

    우선 JOIN을 할 두 테이블을 생성하자

    CREATE TABLE girl_group
    (
     _id INT PRIMARY KEY AUTO_INCREMENT,
     name VARCHAR(32) NOT NULL,
     debut DATE NOT NULL,
     hit_song_id INT
     );
    
    CREATE TABLE song
    (
     _id INT PRIMARY KEY AUTO_INCREMENT,
     title VARCHAR(32) NOT NULL,
     lyrics VARCHAR(32)
     )
    
    INSERT INTO song( _id, title, lyrics) VALUE (101, 'TELL ME', 'tell me tell me tetetete tell me');
    INSERT INTO song( title, lyrics) VALUES ('Gee', 'GEE GEE GEE GEE BABY BABY');
    
    INSERT INTO girl_group (name, debut, hit_song_id)
    VALUES( '원더걸스', '2007-09-12', 101);
    INSERT INTO girl_group (name, debut, hit_song_id) VALUES ('소녀시대', '2009-06-03', 102);
    

    위와같이 테이블을 만들었다

     

    1. INNER JOIN

    INNER JOIN은 우리가 생각하는 일반적인 용도에 사용가능하다

    SELECT gg._id, gg.name, s.title

              FROM girl_group AS gg  JOIN song AS s

             ON s._id = gg.hit_song_id;

     

    ON 대신 WHERE 를 쓸수 있다

    INNER 조인은 mysql에서는 간략히 JOIN 으로 나타낸다 일반적으로 사용하는 JOIN 이다.

    핵심내용은 JOIN 뒤에 ON 인데, 두 테이블이 결합하는 조건을 나타낸다.

    두테이블 모두 노래의 _id를 가지고 있으며, 서로 모두 포함하는 레코드를 합쳐서 표현한다.

    '위 아래' 라는 곡의 id는 115 인데 109번까지만  girl_group 테이블에 존재하기에 115번곡은 나오지 않는다.

    교집합인 셈이다

     

    2. LEFT OUTER, RIGHT OUTER 조인

    히트곡이 저장되어 있지 않은 에프터 스쿨, 포미닛의 경우, 곡이 표시되지 않더라도 보이고 싶을 때는 하나의 테이블을 기준으로 합치는 조인을 사용가능하다

    mysql SELECT gg._id, gg.name, s.title

            FROM girl_group AS gg LEFT JOIN AS s

            ON s._id = gg.hit_song_id;

    mysql SELECT s._id, s.title, gg.name 

            FROM girl_group AS gg RIGHT OUTER JOIN song AS s 

            ON s._id = gg.hit_song_id;

     

     

    댓글

Designed by Tistory.