[SQL] 03-1 SELECT ~ FROM ~ WHERE

김민서·2024년 7월 10일

혼자 공부하는 SQL

목록 보기
5/19

기본 개념

  1. SELECT 문
    1) 구축이 완료된 테이블에서 데이터를 추출하는 기능을 하므로, SELECT를 아무리 많이 사용해도 기존의 데이터가 변경되지 않음.
    2) SELECT의 기본형식은 SELECT ~ FROM ~ WHERE임.
    3) SELECT 바로 다음에는 열의 이름이, FROM 다음에는 테이블의 이름이 나오며 WHERE 다음에는 조건식이 나옴.

실습용 데이터베이스 구축

실습용 데이터베이스 개요

  1. SELECT를 실행하기 위해서는 데이터베이스가 있어야 함.
  2. 예제 계획: 그룹으로 이루어진 가수만 가입 가능한 인터넷 마켓
    1) 가수 그룹의 리더 -> 회원가입
    2) 입력한 회원정보는 회원 테이블(member)에 입력됨.
    3) 회원 테이블에는 아이디, 이름, 인원, 주소, 국번, 전화번호, 평균 키, 데뷔 일자 등만 입력함.
    4) 인터넷 마켓에서 물건을 구매하면, 회원이 구매한 정보는 구매 테이블(buy)에 입력됨.
    5) 배송 담당자는 구매 테이블을 통해서 회원이 주문한 물건을 준비하고, 회원 테이브ㄹ에서 구매 테이블의 아이디와 일치하는 회원의 아이디를 찾아서 그 행의 주소로 물품을 배송함.

실습용 데이터베이스 만들기

  1. 회원 테이블(member) 만들기

    1) USE 문은 market_db 데이터베이스를 선택하는 문장임.
    2) SQL에서 --이 입력되면 그 이후는 주석(remark)을 의미함.

  2. 구매 테이블(buy) 만들기

    1) AUTO_INCREMENT는 자동으로 숫자를 입력해준다는 의미임. 즉, 순번을 직접 입력할 필요 없이 1, 2, 3과 같은 방식으로 자동으로 증가함.

  3. 데이터 입력하기

기본 조회하기: SELECT ~ FROM

USE 문

  1. USE 데이터베이스_이름;

    1) market_db를 사용하려면 쿼리 창에 위와 같이 입력함.
    2) 이렇게 지정해놓은 후에 다시 USE 문을 사용하거나 다른 DB를 사용하겠다고 명시하지 않으면, 앞으로 모든 SQL 문은 market_db에서 수행됨.

SELECT 문의 기본 형식

SELECT select_expr
	[FROM table_references]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}]
    [HAVING where_condition]
    [ORDER BY {col_name | expr | position}]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
  1. SELECT 열_이름
  2. FROM 테이블_이름
  3. WHERE 조건식
  4. GROUP BY 열_이름
  5. HAVING 조건식
  6. ORDER BY 열_이름
  7. LIMIT 숫자

SELECT와 FROM

  1. 테이블에서 데이터를 가져올 때 사용하는 예약어

    1) * 가 사용된 위치가 열 이름이 나올 곳이므로 모든 열을 말하며, 여기서는 member 테이블의 8개 열 모두를 의미함.
    2) FROM 다음에 테이블 이름이 나오며, 테이블에서 내용을 가져온다는 의미임.
    3) 즉, 위의 코드는 member 테이블에서 모든 열의 내용을 가져와라는 뜻

  2. 원래 테이블의 전체 이름은 '데이터베이스 이름.테이블 이름'
    1) 원칙은 SELECT * FROM market_db.member;
    2) SELECT * FROM market_db.member;SELECT * FROM member은 동일한 것이 됨. (후자의 것은 사전에 USE market_db;를 사용했으므로)

  3. 회원 테이블에서 특정 열만 추출하기

특정한 조건만 조회하기: SELECT ~ FROM ~ WHERE

기본적인 WHERE 절

  1. SELECT 열 이름 FROM 테이블 이름 WHERE 조건식;
    1) 그룹 이름이 블랙핑크인 그룹만 추출함.

    2) 멤버 수가 4명인 그룹들만 추출함.

관계 연산자, 논리 연산자의 사용

  1. 관계 연산자
    1) 평균 키가 162 이하인 회원을 검색하려면 <= 이라는 관계 연산자를 사용하여 조회할 수 있음.

  2. 논리 연산자
    1) 평균 키 165 이상이면서 인원도 6명 초과인 회원 조회와 같이 2가지 이상의 조건을 만족하도록 하기 위해서 논리 연산자 AND를 사용해 조회할 수 있음.

    2) 평균 키 165 이상이거나 인원이 6명 초과인 회원 조회를 위해 논리 연산자 OR을 사용해 조회할 수 있음.

BETWEEN ~ AND

  1. AND를 사용하여 평균 키가 163~165인 회원 조회하기

  2. BETWEEN ~ AND 사용하기

IN ()

  1. 주소와 같이 문자로 표현되는 데이터는 BETWEEN을 사용할 수 없으며 OR로 일일이 써주어야 함.

  2. IN()을 사용하면 코드를 훨씬 간결하게 작성할 수 있음.

LIKE

  1. 문자열의 일부 글자를 검색하기 위해 LIKE를 사용함.
    1) 이름의 첫 글자가 '우'로 시작하는 회원 조회

  2. 한 글자와 매치하기 위해서는 언더바를 사용함.

서브 쿼리(하위 쿼리)

SELECT 안에 들어간 또 다른 SELECT를 의미함.

이름이 '에이핑크'인 회원의 평균 키보다 큰 회원 검색하기

서브 쿼리 이용 X

  1. 에이핑크의 키 알아내기

    1) 164임을 파악

  2. 164보다 큰 키를 가진 회원 조회하기

서브 쿼리 이용 O

0개의 댓글