😺Data Base/😻 SQLD

[SQL] 기초 SQL 문법

디카페인라떼 2022. 9. 8. 23:57

https://youtu.be/ZsYnTSSuSiw

 

select
  • 선택하다. 보고싶은 데이터를 고를때 사용
  • table : 엑셀과 비슷한 열column과 행 row으로 구성
  • 10r(10개의 행) 12c (12개의 열) : 특정 주제단위로 저장되어있음.

    SELECT * (아스타:테이블에 들어간 항목을 모두 본다) or 특정 컬럼명, 특정 컬럼명 으로도 조회 가능
    FROM 테이블명 
    LIMIT (MySql에서만  나는 몇개의 행만 보고싶다)10 (10개만보고싶다)

 

 

 

order by
  • 선택한 데이터를 정렬을 사용할때 쓰는 문법
  • 가장 마지막에 사용
  • limit  보다는 위에
  • 가나다 순 123 순으로 보고싶거나 오름차순

SELECT *

FROM 테이블명

'ORDER BY 컬럼명'

LIMIT 10


10 9 8 순 내림차순 
ORDER BY 컬럼명 desc

 

가장오래된거부터 뜸
ORDER BY YEAR,MONTH,day 

 

 

 

group by / count
  • count : 건수가 몇개인지 알아볼때 활용하는 문법

 

select count(*)
from 테이블명

 

  • 테이블명의 행의 갯수를 알고싶을때!
  • 특정 테이블에 들어있는 데이터의 전체 갯수를 알 수 있음.
  • 보통 group by문법과 같이 사용
  • 테이블의 전체가 아닌 특정 항목에 대한 합계나 갯수,평균등을 확인 할수 있음 중복을 제거할때도 사용
    연도별 매매 건수 등

    select 컬럼명,count(*)
    from 테이블명
    group by 합계나 갯수를 보고 싶은 컬럼명

    select 컬럼명
    from 테이블명
    group by 합계나 갯수를 보고 싶은 컬럼명
    => 각각다른 연도의 값이 나옴 (중복없음) => 중복제거를 위해서도 자주 사용/특정 항목의 갯수를 알기 위해서도 자주 사용

 

where / and / or
  • where : 테이블에 들어있는 모든 데이터가 아닌 일부 데이터만 보고싶을 때 사용하는 문법
    조건을 줄때 사용하는 문법

    SELECT 컬럼명  / *
    FROM 테이블명
    WHERE 컬럼명 = '조건'< 데이터 타입에따라서 ('문자' // 123)
    and (조건 추가 , 위와 동일함) (동시조건 동시에 둘다 만족하는 값만나옴)
    or (둘 중 하나만 만족해도 값이 나옴)
    LIMIT 10

 case when / else
  • case when: 데이터의 값이 특정한 조건일때 다르게 표현해주는 역할을 하는 문법
  • 10대,20대, 등 으로 나오게 grouping 할때 많이 쓰임
  • 보기좋게 grouping 가능

    select 컬럼명
    case when 조건 then '10대'< grouping 된 표현 항목
       when 조건2 then '20대'
       end
    from 테이블명
    limit 10

 

  • else와도 자주 쓰임
  • 조건을 여러개 적었는데 그중 포함되지않는 나머지

    select 컬럼명
    case when 조건 then '10대'< grouping 된 표현 항목
             when 조건2 then '20대'
           else 기타표현내용    
             end
    from 테이블명
    limit 10

like / not like
  • like : 특정단어가 포함되는 조건 
  • not like : 특정단어가 포함되지않는조건

    select 컬럼명
    from 테이블명
    where 컬럼명 like '% 조건 %'   ->앞뒤에 다른 이름이 나와도 상관없음 
    limit 10

서브쿼리
  • 산식이 들어간 칼럼을 재활용하거나 할때
  • 내가 가공한 쿼리를 재사용할때 여러번도 가능함

    select *
    from ( < 서브쿼리의 시작  ()안에 내용이 테이블의 내용
            select 컬럼명, count (*) 컬럼명 
            from 테이블명
            group by 컬럼명
    )a <서브쿼리의 끝
    where 컬럼명>100 (조건)

 

join (inner join)
  • a테이블과 b테이블 중 한 곳에만 있는 정보는 나오지 않음
  • 양쪽 테이블에 다 존재하는 정보만 보여줌
    • 하나의 쿼리에 여러개의 테이블 정보를 사용할 떄 사용/특정
      다양한 정보를 한번에 보고싶을때 

      select a.dong
                ,a.nm
                 .
                 .
                 .
      from 테이블명a , 테이블명b
      where a.area_cd=b.area_cd / a와b 테이블의 연결고리. 조인키, 두 테이블의 같은 값 연결고리
      limit 5

outer join
  • select a.dong
              ,a.nm
               .
    from 테이블명a (모두나옴)
    left outer join 테이블명b (조건에 맞는 데이터 표시)
          on a.area_cd=b.area_cd / a와b 테이블의 연결고리. 조인키, 두 테이블의 같은 값 연결고리
          and b.con_year=2020 (건축년이 2020인 아파트) (조건)
    limit 50

 

  • null은 비어있는 데이터 
    => 조건이 없을수도있음
  • 양쪽에 데이터가 존재하지않더라도 null값으로 표현하면서
  • 기준이 되는 데이터에 표시해줌

sum/min/max/AVG

select sum(컬럼명)
           min(컬럼명)
           max(컬럼명)
           avg(컬럼명)
from 테이블명
where 조건

 

  • group by 와도 활용 많이 됨

    select  컬럼명1
             sum(컬럼명)
             min(컬럼명)
             max(컬럼명)
             avg(컬럼명)
    from 테이블명
    group by 컬럼명1

  • 컬럼명1 별로 sum min max avg를 알수 있음 

'😺Data Base > 😻 SQLD' 카테고리의 다른 글

[DB] Index  (0) 2022.09.17
[RDBMS] 관계형 데이터 모델링 2  (0) 2022.09.16
[RDBMS] 관계형 데이터 모델링 1  (0) 2022.09.14
[DB] 트랜잭션 Transaction 이란?  (0) 2022.09.10
[DB] SQL 과 NoSQL  (0) 2022.09.08