[TIL] 2023.04.28 MySQL_SELECT, WHERE

Today I Learned

  • Programmers 문제 풀기
  • mySQL 공부

 


MySQL 

SQL이란?

  • SQL은 Structured Query Language의 약자로, 관계형 데이터베이스 시스템에서 자료를 관리하고 처리하기 위해 설계된 언어를 의미함

 

mySQL이란?

  • MySQL은 오픈 소스 관계형 데이터베이스(RDBMS)
    • RDBMS는 데이터가 열과 행으로 저장되어 데이터 구조를 쉽게 파악하고 이해할 수 있도록 사전에 정의한 관계로 데이터를 구성하는 데이터베이스 시스템을 의미함

 

Select 쿼리문이란?

  • 데이터베이스에 명령을 내리는 것, 즉 데이터베이스에서 '데이터를 선택해서 가져오겠다'는 것을 의미함
  • Select 쿼리문은 1) 어떤 테이블에서 2) 어떤 필드의 데이터를 가져올지로 구성됨

 

테이블과 필드

  • 테이블: 테이블은 orders처럼 데이터가 담긴 엑셀 시트와 동일하다. 이런 형태의 값이 데이터베이스에 담기면, orders라는 이름의 테이블이 된다.
  • 필드: order_no, created_at, course_title, user_id, payment_method, email 각각이 필드입니다.

 

MySQL SELECT

SELECT *
  FROM Customers
  ;

 

  • SELECT문은 데이터베이스에서 데이터를 선택하는 데 사용된다.
  • SELECT *은 "Customers" 테이블에서 모든 열을 선택한다.

 

MySQL WHERE

SELECT *
  FROM Customers
 WHERE CustomerID = 3
 ;
  • WHERE절은 레코드를 필터링해서 지정된 조건을 충족하는 레코드만 추출하는 데 사용한다.

 

SELECT * 
  FROM orders
 WHERE course_title != "웹개발 종합반"
 ;
  • !=같지 않음 조건 걸기

 

SELECT * 
  FROM orders
 WHERE created_at 
 BETWEEN "2020-07-13" AND "2020-07-15"
 ;
  • BETWEEN으로 범위 조건 걸기

 

SELECT *
  FROM users
 WHERE email LIKE "s%com"
   AND name = '이**'
  ;
  • LIKE패턴(문자열 규칙) 조건 걸기
  • WHERE email LIKE 'a%': email 필드값이 a로 시작하는 모든 데이터
  • WHERE email LIKE '%a': email 필드값이 a로 끝나는 모든 데이터
  • WHERE email LIKE '%co%': email 필드값에 co를 포함하는 모든 데이터
  • WHERE email LIKE 'a%o': email 필드값이 a로 시작하고 o로 끝나는 모든 데이터

 

SELECT * 
  FROM checkins 
  WHERE week IN (1, 3)
  ;
  • IN으로 포함 조건 걸기
  • ex) 1, 3주차 사람들의 데이터만 보고 싶을 때

 

mySQL 유용한 문법

SELECT * 
  FROM orders 
 WHERE payment_method = "kakaopay"
 LIMIT 5
 ;
  • LIMIT일부 데이터만 가져오기
  • 데이터의 양이 많은 경우 데이터를 불러올 때 시간이 오래 걸릴 수 있기 때문에 실무에서 조회용으로 많이 사용

 

 SELECT DISTINCT(payment_method) 
   FROM orders
   ;
  • DISTINCT중복 데이터는 제외하고 가져오기
  • 필드에 어떤 종류의 데이터가 존재하는지 확인할 때 사용

distinct 사용 예시

 

SELECT COUNT(*) 
  FROM orders
  ;
  • COUNT데이터가 총 몇 개인지 숫자 세기

count 사용 예시

 

SELECT count(distinct(name)) 
  FROM users
  ;
  • Distinct와 Count를 같이 써보기
  • 회원들의 성(family name)씨가 몇 개인지 궁금하다면?

 


회고

SQL 생각보다 어렵지 않아서 금방 배우고 있다. 캠프 들어가서 초반에 하루종일 강의 듣던 때 생각도 나고 ㅎㅎ 오랜만에 제대로 공부하려니 재밌는 거 같다!