티스토리 뷰

728x90

 

 

SQL 1주차

 

 

[수업 목표]

  • 데이터베이스와 SQL 이 무엇인지 이해한다
  • SELECT, FROM 문을 이용하여 데이터를 조회한다
  • WHERE 절을 이용하여 데이터를 필터링한다

 

 

 

 

1. 설치하기

  •  DBeaver 다운로드 후 mySQL을 실행한다.
  • host와 password가 필요하다

 

2. 데이터베이스

  • '데이터 베이스'를 '폴더'라고 생각하고 '테이블'을 폴더 안에 있는 '파일'이라 할 수 있다.
  • 테이블을 엑셀과 비슷한 구조를 가지고 있다. 그 중 각 열을 '컬럼' 또는 '필드'라고 부른다.
  • 테이블 목록에는 아래처럼 각각의 목록이 있는데 그것을 찾아 조회 할 수 있다.(외울필요는 없이 필요할 때 찾아서 쓰는 용도)
    • 테이블1 - food_orders
      • order_id : 주문 번호
      • customer_id : 고객 번호
      • restaurant_name : 음식점 이름
      • cuisine_type : 음식 종류
      • price : 음식 가격
      • quantity : 주문 수량
      • day_of_the_week : 주말 구분
      • rating : 음식점 평점
      • food_preparation_time : 음식 준비 시간 (분)
      • delivery_time : 음식 배달 시간 (분)

 

3. SQL 데이터 조회하기 (SELECT, FROM)

  • DB를 열어 SQL의 양피지 모양의 아이콘을 클릭 후 실행
  • 아래의 코드를 입력하고 Ctrl + Enter 을 하면 실행된다.
SELECT *
from food_orders

 

 

 

  • 기본 명령어
    • SELECT : 데이터를 가져오는 기본 명령어로, 데이터를 조회하는 모든 Query 에 사용됨
    • FROM : 데이터를 가져올 테이블(각 파일)을 특정해주는 문법
    •  * : 모든 컬럼을 가져와준다는 의미
  • 쿼리를 작성하기 전에 코드가 아닌 데이터베이스에 대한 요청 '언어' 이므로 작성 전에 어떤 요청을 할 지 미리 생각해 보는 것이 좋다. 어떤 데이터, 파일을 가져올까?

 

 

  • 위의 그림처럼 payments 테이블의 데이터와 customers 테이블의 데이터가 조회되는 것을 볼 수 있다.

 

 

 

4. 필요한 항목만 뽑아서 사용하기

  • 원하는 컬럼 선택하기
    • select 컬럼1, 컬럼2  
      from 테이블

  • select 에서 ' * ' 모든을 선택하는 것에서 컬럼 1, 컬럼 2와 같이 선택하여 추출할 수 있다. 컬럼이 많아서 필요한 정보를 확인하기 어려웠던 것에서, 원하는 컬럼만 조회할 수 있다.
  • 컬럼의 이름이 길 때 바꾸어 줄 수 있다.
    • 방법 1 : 컬럼 1 as  별명 1
    • 방법 2 : 컬럼 2 별명 2   (띄어씌기만 해주고 나서 바꾸어 줄 수 있다.)
      • 별명을 지어줄 때 영어, 언어바로 적어주거나 특수문자와 한글은 "" 큰 따옴표 안에 적어준다. (예시 - ord_no, "ord no", "주문번호", "e-mail" (하이픈도 특수 문자라서 쌍따옴표 써줌) )
    • 아래의 사진처럼 바뀌는 것을 볼 수 있다.

 

 

 

 

 

 

5. 조건에 맞는 데이터로 필터링하기 (WHERE 이란)

  • WHERE 절의 개념
    • 데이터 중에서 특정 조건을 필터링하기 위해 쓰인다. 필터링은 숫자가 아닌 문자에도 사용 가능하다. 문자를 사용할 때에는 작은 따옴표 ' ' 를 사용한다.
    • 나이가 21살인 사람을 필터링 해보자.
select *         # 전체에서
from customers   # 테이블
where age=21     # 필터링 조건 (21살 이상)

 

 

  • 코리안을 적을 때 소문자, 대문자 구분해서 적어야 한다.

 

 

 

 

 

 

 

 

6. 필터링을 할 때 유용한 표현 알아보기 (비교연산, BETWEEN, IN, LIKE)

  • 비교연산자의미예시는 다음과 같다.
같다 age=21
gender=’female’
같지 않다 (다르다) age<>21
gender<>’female’
크다 age>21
크거나 같다 age>=21
작다 age<21
작거나 같다 age<=21

 

 

 

 

 

 

  • 다양한 조건의 종류 (BETWEEN, IN, LIKE)
    • between a and b :    예시 : where age between 10 and 20
    • IN : ‘포함’ 하는 조건 주기   예시 : age in (15, 21, 31) / cuisine_type in ('Korean', 'Japanese')
    • LIKE : 완전히 똑같지는 않지만, 비슷한 값을 조건으로 주기
      • 특정문자로 시작 예시 :  기본 문법 : like ‘시작문자**%**’ , ‘김’ 으로 시작하는 이름 : name like '김%'
      • 특정문자를 포함 예시 2 :  기본 문법 : like%포함문자%’  : 식당 이름에 ‘Next’ 를 포함하는 경우 restaurant_name like '%Next%'
      • 특정 문자로 끝남 예시 3 : ‘임’ 으로 끝나는 이름, 기본 문법 : like ‘**%**시작문자’ : name like '%임'
      •  

 

 

 

 

 

 

 

 

7. 여러 개의 조건으로 필터링하기 (논리연산)

  • 필터링 조건 여러개를 하나의 Query 문에서 적용해보자
  • 여러개의 조건을 적용할 때 사용되는 연산이 '논리연산'입니다.
  • 논리연산의 종류
    • AND : 그리고, age>20 and gender=’female’ → 나이가 20세 이상이고, 여성
    • OR : 또는 , age>20 or gender=’female’ → 나이가 20세 이상이거나, 여성
    • NOT : 아닌, not gender=’female’ → 여성이 아닌
  • 예시 : 1.주문 (food_orders) 테이블에서 한국음식이면서, 가격이 30,000원 이상인 경우 조회
  •  
select *
from food_orders
where cuisine_type='Korean' and price>=30000

 

  • 예시 : 2.결제 (payments) 테이블에서 카드로 결제했거나, vat 율이 0.2 이하인 경우 조회
  •  
select *
from payments
where pay_type='card' or vat<=0.2

 

 

 

 

 

 

 

8. 에러메세지에 당황하지 않고 스스로 문제 해결하기

  • 에러 메세지에 대처하는 자세
    • 당황하지 않고 왜 에러가 났는지 확인하는 것이 중요하다
    • 어떤 에러가 났는지 알려주기 때문에 확인을 해본다
  • 자주 만날 수 있는 에러메세지
    • ⚠️ 테이블 명을 다르게 적었을 때 : SQL Error [1146][42S02] : Table 'sparta_lecture.payment' doesn't exist 
    • ⚠️ 필터링 조건을 줄 때 문자에 ‘ ‘ 작은 따옴표를 안했을 때 → Korea 에 문제가 있다는 메시지 :  SQL Error [1054][42S22] : Unknown colum 'pay_typ' in 'field list'  
    • ⚠️ 컬럼 명을 다르게 적었을 때 → 필드명이 잘못 되었다는 메시지 : SQL Error [1054][42S22] :  Unknown colum 'Korea' in 'where clause'
    • 🔥 이 외에도 여러 경우가 있지만, 중요한 것은 ‘에러 메시지를 읽어보는 것’ 이다.

 

 

 

 

반응형

'AI웹 개발자 과정 공부 (팀스파르타) > SQL' 카테고리의 다른 글

SQL 문제 풀이  (0) 2024.05.30
반응형
TAG
more
최근에 올라온 글