엑셀보다 쉬운 SQL 문법정리

SQL 문법정리

  • 배운 모든 문법이 들어간 형태
select <필드> from <테이블> a
where <필드에 적용될 조건>
inner(or left)join <붙일 테이블> b on a.키값 = b.키값
group by <묶을 테이블(보통 "~별로 찾아라"라는 조건에 사용)>
order by <정렬 기준 필드> (기본 오름차순, desc를 적으면 내림차순)
**subquery는 select, from, where, join 그 어떤 자리라도 들어갈 수 있음**

Select

  • 보고싶은 필드를 적는다
  • group by나 where에 들어간 필드가 들어가면 보기 편한 것 같다
  • 테이블에 없는 필드라도 보고싶은 통계(계산) 수치나 subquery를 넣어서 보면 된다

From

  • select의 필드가 들어있는 테이블을 적는다

Where

  • 보고싶은 데이터의 조건을 입력한다
  • 특정 필드에 대한 조건을 입력한다
  • ex) name like '이xx' -> name 필드에 '이xx'인 데이터를 불러오라는 조건

Group by

  • 특정 필드에 중복되는 값을 기준으로 데이터를 묶어서 표시한다
  • ex) group by name -> name 필드에 같은 이름인 데이터로 묶는다
  • 특정 그룹의 정보를 기준으로 통계치를 작성할 때 사용

Order by

  • 특정 필드를 기준으로 오름차순 또는 내림차순으로 정보를 정렬한다
  • ex) order by name desc -> name 필드를 기준으로 내림차순으로 데이터 정렬

Join

  • 기준이 되는 키값을 통해 두 개 이상의 테이블을 연결하고 하나의 테이블만으로는 확인할 수 없는 테이터를 확인한다
  • left join과 inner join 두 가지를 주로 사용한다
  • left join은 select문에 쓴 테이블을 기준으로 테이블을 붙이고, 붙은 테이블에 없는 정보는 NONE으로 표시된다
  • inner join은 교집합 개념
  • ex) table1에는 name, point 필드가, table2에는 name, age 필드가 있다면, name을 키값으로 하고 join을 사용하여 name별 point와 age를 함께 확인하거나 age별 point 평균을 구할 수 있다
    <age별 point 평균을 구하는 코드>
select avg(t2.point) from table1 t1
inner join table2 t2 on t1.name = t2.name
  • union: select를 두 번하지 않고 한번에 확인하고 싶을 때 사용(다른 조건의 두 쿼리를 한번에 표시)

Subquery

  • 하나의 완성된 쿼리를 작성하여 목적에 따라 앞선 문법의 위치에 넣는 쿼리
  • 현실 언어에 비유하면 부사절과 같다
  • 조인을 사용하지 않고도 조인과 같은 효과를 낼 수 있다
  • with절을 이용하면 더 깔끔하게 코드를 구성할 수 있다(미리 서브쿼리를 선언하고 뒤에선 서브쿼리의 as를 이용해서 코드를 작성)

etc.

  • show tables를 하면 DB안의 모든 테이블 이름을 확인할 수 있다
  • 문자열(substring, substring_index), 조건문(case), like, 별칭(as),
  • 이미 앞선 SQL개발일지에서 세세한 코드 내용들은 적어뒀기 때문에 전체적인 각 문법의 내용을 이해할 수 있도록 정리했다

좋은 웹페이지 즐겨찾기