SQL 문법 정리

reggias·2022년 11월 16일
0

코딩공부

목록 보기
10/10

먼저 SQL은 왜 필요한가 부터 생각해보겠다.
SQL은 효과적으로 데이터를 서버에 저장하고 서버로부터 꺼내 열람을 하기위해 필요로 한다. 예를 들어 내가 치킨집 사장이라면 많은 고객들의 번호와 이름에 대한 데이터를 가지고 있을 것이고 나는 그들이 평소 내 가게에서 선호하는 메뉴들이 무엇인지 궁금해할 것이다. 그래야만 어떤 메뉴가 잘 팔리고 안팔리는지 알 것이고 어느 지역의 어느 연령대의 사람이 치킨을 선호하는지 알아야 거기에 맞는 경영 전략을 세울 수 있기 때문이다.

데이터베이스라는 것은 마치 상자에 물건을 넣고 쌓아올리는 것과 같다. 그거보다 더 큰 데이터베이스는 마치 창고와 같다. 그럼 중구난방하게 물건을 쌓아놓고있으면 어디에 무엇이 있는지 금방 찾아 써먹기가 어려울 것이다. 그러므로 이 0과 1로 이루어진 데이터를 한곳에 모아두었을때 어떤 방법으로 빠르게 꺼낼 수 있고 또 다시 비슷한 것끼리 넣어놓을 수 있을까? 바로 SQL이라는 프로그래밍 언어를 활용하는 것이다. SQL의 약자는 Structured Query Language로 데이터베이스에 요청(Query)을 날려서 원하는 데이터를 가져오는 것을 도와주는 언어다.

스파르타 코딩클럽의 단기SQL 강의를 들으면서 배운 SQL 문법들을 정리하려고 한다. 이것들을 잘 요리조리 요리할 수 있는 실력이 있다면 회사에서도 데이터를 열람하는 데에 있어서 전혀 문제가 없다고 생각이 든다.

1. select쿼리문

select * from 테이블명
  • 의미 : 데이터를 선택해서 가져오겠다.
  • 가장 기본적인 문법이자 거의 모든 쿼리문에 들어간다.
  • ' * ' 대신 필드명을 넣어 특정 필드만을 확인할 수 있다.

2. where절

select * from 테이블명
where 필드명
  • 의미 : Select 쿼리문으로 가져올 데이터에 조건을 걸어주는 것이다.

3. distinct

select distinct(필드명) from 테이블명
  • 중복 데이터는 제외하고 가져온다.

4. count

select count(*) from 테이블명
  • 숫자 세기
  • ' * ' 대신 필드명 가능

5. group by

select 필드명1, count(필드명) from 테이블명
group by 필드명1
  • 범주의 통계를 내준다.
  • 실행순서 : from -> group by -> select
  • ~ 별로 ( 예. 이름 필드라면 성씨별로 어떤게 있는지 보여준다 )

6. order by

select * from 테이블명
order by 필드명 desc
  • 정렬기능
  • 실행순서 : from -> group by -> select -> order by
  • asc 오름차순(생략가능) desc 내림차순

7. join

  • 서로 다른 테이블에 동일한 필드가 존재할때 합치기
  • 실행순서 : from → join → select
  • 실행순서2 : from → join → where → group by → select

1) left join

select * from 테이블명1 a
left join 테이블명2 b on a.(테이블1의 동일한 필드명) = b.(테이블2의 동일한 필드명)
  • A와 B 사이 겹치지않는 부분을 구할때 사용!

2) inner join

select * from 테이블명1 a
inner join 테이블명2 b on a.(테이블1의 동일한 필드명) = b.(테이블2의 동일한 필드명)
  • A와 B 사이 겹치는 부분을 구할때 사용!(교집합)

8. union all

(select * from 테이블명
order by 필드명 desc

간단한 명령어들

1. show

show tables
  • 테이블 전체를 보여준다.

2. limit

select * from 테이블명 limit 10
  • 전체말고 10개까지만 보여줘!
  • 말로 표현할 수 없을 정도의 분량의 데이터베이스를 아무 생각 없이 전체를 한번에 열었다간 렉이 걸리거나 시간이 너무 오래걸리니 제한을 거는 것이다.
profile
sparkle

0개의 댓글