ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [MySQL] UNION, JOIN, SUB QUERY
    CSE/MySQL 2015. 6. 12. 16:25

    이번 장을 진행하기전에 기존의 sale table을 삭제하고 


    아래 새로운 테이블을 작성한다.



     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    create table sale(
        number varchar(10),
        sales int,
        month int
    );
     
    create table employ(
        number varchar(10),
        name varchar(10),
        age int
    );
     
    create table another_employ(
        number varchar(10),
        name varchar(10),
        age int
    );
     
    create table loc(
        number varchar(10),
        city varchar(5)
    );
    cs




     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    insert into sale values('A103'1014);
    insert into sale values('A102'545);
    insert into sale values('A104'1814);
    insert into sale values('A101'1844);
    insert into sale values('A103'175);
    insert into sale values('A101'3005);
    insert into sale values('A102'2056);
    insert into sale values('A104'935);
    insert into sale values('A103'126);
    insert into sale values('A107'876);
     
     
    insert into employ values('A101''강신우'49);
    insert into employ values('A102''김기덕'28);
    insert into employ values('A103''김민호'20);
    insert into employ values('A104''문소리'23);
    insert into employ values('A105''박문수'35);
     
    insert into another_employ values('A106''권명철'26);
    insert into another_employ values('A107''김우진'24);
    insert into another_employ values('A108''남수현'23);
    insert into another_employ values('A109''박지수'25);
    insert into another_employ values('A110''서연재'27);
     
     
    insert into loc values('A101''서울');
    insert into loc values('A102''부산');
    insert into loc values('A103''대구');
    insert into loc values('A104''대전');
    insert into loc values('A105''인천');
     
    cs






     여러 개의 추출 결과를 함께 표시(UNION)


     

    1
    2
    3
    4
    5
    select column_name1 FROM table_name UNION SELECT column_name2 FROM table_name_1;
     
    SELECT * FROM employ 
    UNION
    SELECT * FROM another_employ;
    cs



     




     여러 개의 테이블 결합(Join)



    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT column_name
    FROM table_name
    JOIN joined_table_name
    ON table_name.column = joined_table_name.column
     
     
    select *
    from sale
    JOIN employ
    ON sale.number = employ.number;
    cs

     






      

     내부 조인(inner-Join)


    1
    2
    select * from sale INNER JOIN employ ON sale.number = employ.number;
     
    cs
     



     



     결합한 테이블에 WHERE 조건 설정


    1
    2
    3
    4
    5
     
    select sale.number AS 사원번호, employ.name AS 이름, sale.sales AS 매출
    from sale
    join employ USING(number)
    WHERE sale.sales >= 100
    cs
     



     



     여러 테이블에서 데이터 추출


    1
    2
    3
    4
    5
     
    select sale.number, sale.sales, employ.name, loc.city
    from sale
    join employ using (number)
    join loc using (number)
    cs
     



     





     하위 질의 


    1
    2
    select * from sale 
    where sales in (select max(sales) from sale);
    cs

     








     

     평균 이상의 레코드 추출 - 하위 질의 


    1
    select * from employ where age >= (select avg(age) from employ)
    cs
     

     



    댓글

Designed by Tistory.