스파르타 SQL 4주차 숙제

looggi·2022년 7월 16일
1

문법 총정리>>

-1주차

  • 쿼리: 데이터 베이스에 명령을 내린다

    select 쿼리문: 데이터베이스에서 데이터를 선택해서 가져온다.
    select 쿼리문에서 조건을 걸고싶을 때 where 뒤에 조건을 써준다.
    -조건 부호들

    = : 같음
    != : 같지 않음
    between ~and ~: 범위(~사이)
    in (범위/여러가지 값들을 ,로 이음): 포함
    like '패턴%패턴%패턴': 패턴(특정 문자(열)포함)
    limit : 데이터를 몇개만 보고 싶을 때
    distinct : 중복 제거
    count : 갯수 세어보기

그리고❗기본적이지만 꼭! 까먹으면 안되는 것❗
글자를 ''로 감싸면 변수가 아닌, 문자열(값)로 인식한다.

-2주차

  • group by: 동일한 범주의 데이터를 묶어준다. (~별로 정렬할 때 사용)

    쿼리 맨 마지막에 group by 필드명
    ex) select count(*) from 테이블 group by 필드명

  • order by: 데이터를 오름차순/내림차순으로 정렬해준다.

    쿼리 맨 마지막에 order by 필드명 (desc 내림차순)

정렬이 실행되는 순서를 알아두자~!
from → group by → select → order by

  • min(필드명):동일한 범주 최솟값
  • max(필드명):동일한 범주 최댓값
  • avg(필드명):동일한 범주 평균
  • sum(필드명):동일한 범주 합계
  • alias: 별칭
    -테이블에 별칭을 줘서 동일한 이름의 필드가 있을 때 어떤 테이블의 필드인지 간단하게 표현할 수 있다.
    -필드 뒤에도 as 별칭으로 별칭을 나타내면 별칭으로 필드 제목이 출력된다.

-3주차

  • join: 동일한 이름과 정보가 담긴 필드(key값)를 기준으로 두개 이상의 테이블을 연결

    select 필드 from 테이블1 a
    inner/left join 테이블2 b on a.필드명=b.필드명
    ➡ on 뒤의 조건이 참일 때 조인을 실행한다.

-left join:
어떤 데이터는 모든 필드가 채워져있지만, 어떤 데이터는 비어있는 필드가 있습니다.

꽉찬 데이터: 해당 데이터의 user_id 필드값이 point_users 테이블에 존재해서 연결한 경우
비어있는 데이터: 해당 데이터의 user_id 필드값이 point_users 테이블에 존재하지 않는 경우
비어있는 데이터의 경우, 회원이지만 수강을 등록/시작하지 않아 포인트를 획득하지 않은 회원인 경우에요!
➡ where절을 이용해서 확인해볼 수 있다.

-inner join: 교집합

  • union: 결과물 합치기

    (쿼리)union all(다른 쿼리)
    단, 합치려는 두 개의 필드명이 같아야 한다!
    정렬은 union all을 사용하면 정렬은 모두 깨진다.

-4주차

  • subquery: 쿼리 안에 들어가는 쿼리
    -select 필드,필드,(섭쿼) from 테이블
    -where 필드 in(섭쿼)
    -from 테이블 inner join (섭쿼) 섭쿼알리아스 on 조건

  • with절: 쿼리 맨 위에서 서브쿼리로 들어갈 테이블을 먼저 정의해준다
    -with table1 as(섭쿼), table2 as (섭쿼) ... select 문 시작

  • 문자열 문법:select 문에 필드로써 사용해준다.
    -substring_index: 문자열에 포함된 특정 문자를 기준으로 앞/뒤로 나눠 출력할 수 있다.

    substring_index(필드,쪼개는 기준,앞(1)또는 뒤(-1))

    -substring: 문자열의 특정 부분만 출력할 수 있다.

    substring(필드,시작점,시작점으로부터 몇글자까지)

    -case:조건에 따라 원하는 값을 새로운 필드를 생성해 출력할 수 있다.

    case when 특정 필드 조건 충족시 then 따로 필드를 생성해 '이렇게 문자열을 출력해라'
    when 또다른 조건일시 then '출력내용'
    else 충족하지 않는다면 '이렇게 출력' end

profile
looooggi

0개의 댓글