SQL공부 일지_1주차(스파르타코딩클럽)
학습과정과 현재
1주 - Select, Where 2주 - Group by, Order by 3주 - Join 4주 - Subquery, 그 외 |
SQL은 왜 배워야 할까?
많은 양의 데이터를 저장, 수정 사용하기 위해서 데이터베이스에 저장하여 활용하는게 충돌 및 에러를 줄일 수 있다.
데이터 베이스 = 책장
*데이터 베이스란? 여러 사람들이 같이 사용할 목적으로 데이터를 담는 통이다.
서점에 가면 여러가지 책들이 정리되어있는것을 볼 수 있다.
우리는 원하는 책을 빠르게 찾기 위해서 책들을 책장에 분류하여 정리한다.
데이터를 잘 꺼내오기 위해 정리되어있는 것들이 바로 데이터 베이스라는 말이다.
데이터 베이스는 통상적으로 CRUD에 해당하는 기능을 지원하는데
C -(CREATE) : 데이터의 생성을 의미함 R - (READ) : 저장된 데이터를 읽어오는 것을 의미함 -----> 이 부분이 앞으로 공부할 지점이다. U - (UPDATE) : 저장된 데이터를 변경 하는것 D - (Delete) : 저장된 데이터를 삭제하는 것을 의미함 |
Select 쿼리문은 무엇인가?
쿼리(Query)란 '질의'라는 뜻으로 데이터베이스에 명령을 내리는 것을 의미한다.
Select query문의란 데이버베이스에서 '데이터를 선택해서 가져올래'라는 의미다.
Select query문은 '어떤테이블'에서 '어떤 필드의 데이터를'가져올지가 중요하다.
Select 어떤 필드 from 어떤 테이블
'테이블'은 뭘까? 표를 말한다.
'필드'는 뭘까? 위의 표에서 order_no , created_at, course_title, user_id 를 지칭한다.
show tables 입력하고 ctrl+enter 누르면? - 모든 테이블
* 는 ‘모두’라는 뜻임
select * from orders 라고 할땐
—> oders라고 하는 테이블의 모든 필터를 가지고와 라는 뜻
tip. sql은 쓰면서 복잡해 지기 때문에 문장을 나눠서 정리하면서 작성하는 것이 좋다.
문자열이 아닌것들은 ‘ ’(작은따옴표)를 사용한다.
만일 그냥 쓴다면, 컴퓨터는 어떠한 것을 지칭 하는건 줄 알아 듣기 때문
where절은 무엇일까?
Select쿼리문으로 가져올 데이터들에서 조건을 달아줄 때 사용되는 것이다.
select * from orders
where payment_method = "kakaopay";
그럼 where절과 함께 쓰이는 문법 알아보기!
같지 않다. ! =
범위 조건
where created_at between ~~~and ~~~
포함 조건
where week in (1,3) '주차별 week필드에서 1주 또는 3주차로 적혀있는걸 가져와줘' 라는 뜻
'패턴' (문자열 규칙) 조건 걸어보기
where email like '%daum.net'
%를 앞에 붙이면 이 앞에 뭐가있든 중간에 뭐가있든 상관없다는 말이된다. ex) a로 시작해서 t로 끝난다 ——> a%t
테이블에 어떤 데이터가 있는지 잠깐 보려고 할때 (목록을 다 보면 로딩이 오래걸리니까)
limit 5 (5개만 보여줘)
원하는 데이터들에서 종류가 어떤게 있는지 궁금할 때 (중복값 제외하고 보기) distinct
Select distinct (payment_method) from orders 'orders테이블에서 payment_method를 보여주는데 중복 값을 제외한 값을 보여줘'
목록이 몇개인지 세고 싶을 때(orders테이블에 있는 목록들의 갯수를 모두 세어보고 싶을 때)
Select count(*) from orders
distinct와 count를 함께 써보자
Select count(distinct(name)) from users
'users라는 테이블에서 name에 있는 목록의 중복값을 제외하고는 몇개가 있는거야?'