[내일배움캠프 사전공부 SQL 1주차]

안떽왕·2023년 2월 18일
0
post-thumbnail

데이터베이스

데이터 베이스란?

여러 사람들이 같이 사용할 목적으로 데이터를 담는 통이라 이해하면 편함
데이터베이스에 내가 원하는형태로 데이터를 가지고 올수 있게 SQL-Query문이 존재
저장의 역할보다는 데이터를 잘 꺼내오기 위해 존재

SQL과 데이터베이스의 필요성

  1. 방대한 양의 데이터 저장 가능
  2. 그 많은 데이터안에서 내가 원하는 데이터를 신속하게 가져올 수 있음

데이터베이스의 CRUD 기능

원하는대로 데이터를 저장하고 사용하기위해선 통상적으로 CRUD기능이 필요

C(Create): 데이터의 생성
R(Read): 저장된 데이터를 읽음
U(Update): 저장된 데이터 변경
D(Delete): 저장된 데이터 삭제 → 실무에서 거의 쓰이지않음

SQL

데이터베이스에 뭔가 명령을 내리려면 데이터베이스와 약속된 규칙이나 언어가 필요한데 그게 바로 SQL

SELECT QUERY문

쿼리문이란? 쿼리는 질의를 의미함. 데이터베이스에 명령을 내리는것을 의미
secect쿼리문은 데이터베이스에서 데이터를 선택해 가져오겠다는 의미
어떤 테이블에서 어떤 필드의 데이터를 가져올지가 핵심

테이블과 필드

엑셀로 빗대어 표현을 해본다면 테이블은 시트를 의미하고 필드는 컬럼명을 말함
특정필드만 보고싶다라는것은 해당 컬럼의 데이터를 보고싶다는의미

DBeaver에서 조작하기

SHOW TABLES

모든 테이블을 보는것

SELECT * FROM point_users

“*” = 모든 데이터를 의미
고로 이 코드는 point_users에 있는 모든 데이터를 보여달라는것

SELECT * FROM orders 
WHERE payment_method = 'kakaopay'

point_users에 있는 모든 데이터에서 payment_method라는 필드가 kakaopay인 데이터만 보여달라는것
kakaopay를 따옴표로 가둬둬야 문자열로 인식하기때문에 반드시 따옴표를 붙혀야함

SELECT * FROM point_users
WHERE point >= 5000

포인트가 5000 이상인 데이터만 노출

SELECT * FROM orders
WHERE course_title = '앱개발 종합반' AND payment_method = 'CARD'

앱개발 종합반이면서 card인 경우만 노출
card라고 작성해도 실행은 하지만 추후 찾기 편하게 실제 데이터에 기재되어 있는 값으로 기재해주는것이 제일 베스트

WHERE절과 잘 쓰이는 문구

  • 같지않음 조건(!와=을 통해 가능)
  • 범위 조건(between, 무엇 사이에 있는 값만 나옴)

SELECT * FROM orders
WHERE created_at BETWEEN '2020-07-13' and '2020-07-15'
  • 포함 조건(week가 1, 3인 데이터만 노출)

SELECT * FROM checkins
WHERE week in (1,3)
  • 패턴 조건(like)

SELECT * FROM users
WHERE email like '%daum.net'

like + % = 앞에 있는 무언가가 있던 간에
위 코드를 해석하면 email필드에 daum.net이 있는 데이터를 찾아라 그 앞에 무엇이 있는 간에
ex) like ‘a%t’ = a로 시작해서 t로 끝남

이외에 다른 태그

limit

노출된 결과를 그 만큼 제한
주로 데이터가 어떻게 생겨먹었는지 볼때 사용

SELECT * FROM orders
where payment_method = 'kakaopay'
limit 5

distict

중복제거하고 보기

SELECT DISTINCT (payment_method)  FROM orders

일반적으로 검색하면 결과가 너무 많이 나오니 중복을 제거하고 어떠한 요소가 있는지만 나옴

count

노출된 결과의 갯수를 셈

SELECT count(DISTINCT(name)) FROM users

유저 테이블에 네임필드중 중복을 제거한 데이터 갯수를 셈.

1주차 숙제

네이버메일을 사용하며, 웹개발 종합반을 수강하고 결제방식이 카카오페이인 데이터만 보기

SELECT * FROM orders
WHERE (email LIKE '%naver.com' AND course_title = '웹개발 종합반' and payment_method = 'kakaopay')
profile
이제 막 개발 배우는 코린이

0개의 댓글