[2024.07.18 TIL] sql 기본 구조와 문법

박지영·2024년 7월 18일
0

Today I Learned

목록 보기
17/67

SQL 기본 구조와 문법

SQL

  • 데이터베이스와 대화하기 위한 언어

Query

  • SQL이란 언어를 사용해서 데이터베이스에 요청을 하는 것

DBeaver

  • SQL 클라이언트 / 데이터베이스 관리 도구

데이터베이스

  • 데이터가 모여있는 집합체.
    테이블과 컬럼으로 구성 (테이블 = 폴더) (컬럼 = 파일)

SQL 사용 해보기

  • alias (별칭)
    한글, 특수 문자 사용시 ""로 별칭 지정
    ex) SELECT 컬럼 as "별칭" FROM 테이블명
    ex) SELECT 컬럼 별칭 FROM 테이블명

  • SELECT
    데이터 조회 / 검색 / WHERE (필터링)

    ex) SELECT 컬럼 FROM 테이블명 WHERE 조건식
    ex) SELECT 컬럼1, 컬럼2 FROM 테이블명 WHERE 컬럼 조건식( A = 10 )
    ex) SELECT 컬럼1, 컬럼2 FROM 테이블명 WHERE 컬럼 조건식( A > B ) and ( C > D )(비교 연산)
    ex) SELECT * FROM 테이블명 WHERE 컬럼 LIKE '%김' (%문자열 부분 검색) (** 모든 컬럼)
    ex) SELECT 컬럼 FROM 테이블명 WHERE 컬럼 BETWEEN 10 AND 20 (범위 설정)
    ex) SELECT 컬럼 FROM 테이블명 WHERE 컬럼 IN ( A, B, C ) (or 조건이 여러개인 경우)(포함)
    ex) SELECT 컬럼 FROM 테이블명 WHERE NOT 컬럼 IN ( A, B, C ) (NOT 반대 결과 반환)

    GROUP BY (범주)
    범주를 정하고 같은 값을 가진 행끼리 묶어서 하나의 그룹으로 보여준다.

    ex) SELECT genre,
               sum(qty) total
         FROM novel
         group by genre

    ORDER BY(정렬)
    조회 결과를 원하는 순서대로 정렬 (기본 오름차순 asc) (내림차순 desc)

  • SELECT문에 엑셀 함수 적용
    함수는 대소문자 구분X
    SUM(덧셈), AVG(평균)

    ex) SELECT 컬럼1, 컬럼2, 컬럼1 + 컬럼2 as 결과 컬럼명(별칭) FROM 테이블명
    ex) SELECT 컬럼1, 컬럼2, 컬럼1 * 컬럼2 as 결과 컬럼명(별칭) FROM 테이블명 
    ex) SELECT sum(컬럼1) 결과 컬럼명(별칭), AVG(컬럼2) 결과 컬럼명(별칭) FROM 테이블명 

    count(데이터 갯수) / DISTINCT(컬럼의 데이터 갯수)

    ex) SELECT COUNT(1) 결과 컬럼명(별칭) FROM 테이블명
    ex) SELECT COUNT(DISTINCT 컬럼) 결과 컬럼명(별칭) FROM 테이블명
    ex) 주문 번호 갯수 1800 / 주문을 한 고객수 1200 (중복 주문한 고객이 있기 때문)(distinct)

    MIN(최솟값) / MAX(최댓값)

    ex) SELECT MIN(컬럼) 결과 컬럼명(별칭), MAX(컬럼) 결과 컬럼명(별칭) FROM 테이블명
  • SQL 가공하기
    REPLACE(특정 문자열 변경)

    ex)SELECT addr "기존 주소",
               REPLACE(addr, '문곡리', '문가리') "바뀐 주소"
       FROM food_orders
       WHERE addr LIKE '%문곡리%'

    SUBSTRING(특정 문자열만 필요할 때 그 부분만 조회)
    substr(컬럼, 시작위치, 길이)

    ex)select addr "원래 주소",
              substr(addr, 1, 2) "시도"
        from food_orders
        where addr like '%서울특별시%'

    CONCAT(여러 컬럼의 문자 합치기)
    concat(붙이고 싶은 값1, 붙이고 싶은 값2)

    ex)select restaurant_name "원래 이름",   
              addr "원래 주소",
              concat('[', substring(addr, 1, 2), '] ', restaurant_name) "바뀐 이름"
       from food_orders
       where addr like '%서울%'

profile
신입 개발자

0개의 댓글