ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • mysql 기본 명령어 (select from)
    비전공자의 CS 개념 잡기/mysql 2023. 2. 5. 15:24

    - 특정 테이블의 전체 컬럼 검색

    SELECT * FROM [테이블 명];

     

    - 특정 테이블의 조회 중 중복 제거 검색

    SELECT DISTNCT [컬럼명] FROM [테이블명];

     

    - 특정 조건에 해당하는 데이터 조회 (where 사용) - WHERE 정리

    SELECT [컬럼 명] FROM [테이블 명] WHERE [조건];

     

    - 원하는 조건대로 정렬 (ORDER BY) - ORDER BY 정리

    SELECT [컬럼명] FROM [테이블명] ORDER BY [컬럼명];

     

    - 집계 함수 (종류 : SUM, AVG, MIN, MAX, COUNT)

    SELECT SUM([컬럼명])
    FROM [테이블명];

    위 처럼 사용할 경우 결과 값이 테이블에 별도 이름없이 SUM([컬럼명]) 으로 저장되기 때문에 가공해서 사용하기 어렵다. 따라서, 아래와 같이 AS 키워드를 사용한다. (AS를 생략해도 된다)

    SELECT SUM([컬럼명]) AS [임시 컬럼명]
    FROM [테이블명];
    
    - AS 생략버전 -
    SELECT SUM([컬럼명]) [임시 컬럼명]
    FROM [테이블명];

     

    집계함수 종류

    1. SUM : 합계
    2. AVG : 평균
    3. MIN : 최저가
    4. MAX: 최고가
    5. COUNT : 행의 개수
    • COUNT 예시
    SELECT COUNT(*)
    FROM [테이블명];

     

    - GROUP BY와 HAVING (해당 블로그 설명 👍 : https://extbrain.tistory.com/56)

    1. GROUP BY
      • GROUP BY로 그룹으로 묶은 후 SELECT 절에는 GROUP BY에서 사용한 컬럼과 집계 함수만 올 수 있다.
    SELECT [컬럼명] FROM [테이블명] GROUP BY [그룹화할 컬럼명];
    1. HAVING
      • WHERE과 HAVING은 다름.
      • WHERE은 GROUP BY 태우기 전에 사용하는 조건절이고, HAVING은 GROUP BY 실행 후에 사용하는 조건절
      • HAVING은 반드시 GROUP BY 와 함께 사용해야 함
      • WHERE 절 보다 뒤에 나와야 함
      • 검색조건에는 SUM, AVG, MIN, MAX, COUNT와 같은 집계함수가 와야함
    • GROUP BY 절이 포함된 SQL 문의 실행 순서
      1. FROM 에서 테이블을 읽는다.
      2. WHERE 절을 통해 필터링을 한다.
      3. GROUP BY 문에서 조건을 준 컬럼으로 그룹핑을 한다.
      4. HAVING 절을 통해 필터링을 한다.
      5. SELECT 절을 통해 원하는 컬럼명을 리턴한다.
      6. ORDER BY 절을 통해 리턴된 값을 조건을 준 컬럼으로 정렬시킨다.

     

    - 조인 : 두 개의 다른 테이블의 데이터를 하나의 테이블로 합치는 것

    SELECT *
    FROM [테이블명 1], [테이블명 2];

    *위처럼 아무 조건 없이 이렇게 테이블을 조인시키면, 각각의 모든 테이블들의 값들에 서로 조인이 된다. 따라서 하위와 같이 조건을 걸어야 한다.

    SELECT *
    FROM [테이블명1], [테이블명2]
    WHERE [조인조건] AND [검색조건];

     

    - 셀프 조인: 테이블이 자기자신을 조인해야 할 때 FROM 옆에 임시로 이름을 붙혀 사용할 수 있다.

    SELECT staff.emname, staff.job
    FROM EMP staff, EMP manager
    WHERE staff.mgr=manager.empno and manager.ename LIKE "홍길동"

     

    - 외부 조인 : NULL 인 값도 가지고 올 수 있다. (LEFT OUTER JOIN .. ON .. 과 RIGHT OUTER JOIN ... ON .. , FULL OUTER JOIN ... ON 이 있다.)

    SELECT [컬럼명1], [컬럼명2]
    FROM [테이블명1] [LEFT || RIGHT || FULL] OUTER JOIN [테이블명2] ON [조인조건]
    WHERE [검색조건];
    1. LEFT OUTER JOIN .. ON : 왼쪽에 있는 테이블명1을 테이블명2에 다가 조인시킨다.
    2. RIGHT OUTER JOIN .. ON : 오른쪽에 있는 테이블명2를 테이블명1에 다가 조인시킨다.
    3. FULL OUTER JOIN .. ON : 양쪽 테이블 모두에 질의한다.

     

    - 부속질의 : sql 문 내부에 또 다른 sql 문을 작성

    • 실행순서 : 몇개의 sql을 중첩해서 하던, 가장 하위의 sql 부터 해석해서 상위 sql을 해석한다.
    • 여러개의 테이블에서 예시
    SELECT name
    FROM Customer
    WHERE custid IN(
    SELECT custid FROM Orders WHERE bookid IN(
    SELECT bookid FROM Book WHERE publisher='대한미디어'
    )
    );
    • 한 개의 테이블 예시
    SELECT b1.bookname
    FROM Book b1
    WHERE b1.price > (
    SELECT avg(b2.price) FROM Book b2 WHERE b2.publisher = b1.publisher
    );

     

    - 투플 변수 : 테이블 이름이 같거나 한 개의 테이블이 SQL 문에 두 번 사용될때 혼란을 피하기 위해서 사용. 위 SQL 문에서 b1, b2 와 같이 FROM 옆에 선언하여 사용한다.

     

    - 부속질의와 조인은 여러 테이블을 하나의 SQL 문에서 사용하는 점은 같지만, 차이점이 있다. 부속질의는 SELECT 에서 사용할 수 있는 속성은 FROM 에서 가져온 특정 테이블에서만 얻을 수 있고, 조인은 조인한 테이블 전체에서 얻을 수 있다. *팁: 한개의 테이블에서만 결과는 얻는 여러 테이블 질의는 조인보다 부속질의를 사용하면 훨씬 편하다)

    '비전공자의 CS 개념 잡기 > mysql' 카테고리의 다른 글

    mysql ORDER BY 정리  (0) 2023.02.05
    mysql Where 조건절 정리  (0) 2023.02.05
    mysql LIKE문 와일드 문자 정리  (0) 2023.02.05
    mysql 기본 명령어  (0) 2023.01.29
Designed by Tistory.