엑셀보다 쉽고 빠른 SQL

엑셀보다 쉽고 빠른 SQL 1주차

김호진02 2024. 10. 11. 18:44

 

1. SQL 이란

2. DVeaver 설치하기

3. 데이터 조회해보기(SELECT)

4.필요한 항목만 조회하기(원하는 컬럼)

5. 컬럼명을 별명으로 바꿔 조회하기

6. 조건문 사용해보기(WHERE)

7. 조건문 필터링 함수

8. 여러개의 조건으로 필터링하여 조회하기 (AND, OR)

9. 다양한 에러 해결하기

10. 과제

 

 


1. SQL( Structured Query Language )이란

사전 정의: 데이터베이스 시스템에서 자료를 처리하는 용도로 사용되는 구조적 데이터 질의 언어

데이터 베이스와 대화를 하기 위한 언어

- SQL == Query

 


2. DVeaver 설치하기

DVeaver

https://dbeaver.io/download/

운영체제에 맞는 파일을 다운로드한다!

 

Server host : sparta.cbt9ceqjwlr9.ap-northeast-2.rds.amazonaws.com

작성 후 Test Connect..

 

테스트 연결 성공! >> 성공 후 완료 누르면 sparta 데이터베이스가 생긴것을 확인 할 수 있다.

 

데이터베이스 == 폴더

파일 == 테이블(엑셀 파일과 같은 행과 열 형태)

 

열 == 컬럼  == 필드

 

예시 테이블 종류

food_orders : 음식 주문 정보 테이블

payments : 결제 정보 테이블

customers : 고객 정보 테이블

 


 

3. 데이터 조회해보기(SELECT)

왼쪽 상단에 SQL버튼을 누르면 SQL을 작성할 수 있는 필드를 볼 수 있다.

SELECT *

FROM food_orders;

퀴리문 작성 후 Ctrl + Enter를 누르면 아래 조회 정보를 볼 수 있다

SELECT : 데이터를 조회 하는 기본 명령어

FROM : 어떤 테이블에서 가져올지 테이블을 정해주는 문법

* : 해당 테이블의 모든 데이터를 조회

 

실습 

1. payments 테이블의 데이터 조회하기

SELECT *

FROM payments;

payments 테이블의 테이터들

 

2. customers 테이블의 데이터 조회하기

SELECT *

FROM customers;

customers  테이블의 테이터들

 




4. 필요한 항목만 조회하기(원하는 컬럼)

SELECT restaurant_name,addr

FROM food_orders;

SELCT옆에 컬럼명을 지정하여 조회한 결과

SELECT 컬럼1, 컬럼2

FROM 테이블명;

원하는 컬럼을 조회하는 SQL문

 




5. 컬럼명을 별명으로 바꿔 조회하기

방법1 :SELECT 컬럼1 as 별명1

방법2 :SELECT 컬럼2 별명2

SELECT restaurant_name as "음식점",addr address

FROM food_orders;

 

별명이 영어 또는 영어+언더바 일 경우는 별명만 적음.

address 또는 add_ress

 

별명이 한글 또는 특수문자가 포함된 경우 큰 따옴표 안에 적어줌.

"음식점" 또는 "add ress"

다른 이름으로 컬럼명을 표시

 

실습 2

1.주문 (food_orders) 테이블에서 order_id, price, quantity 를 가져와서 ord_no, 가격, 수량 으로 별명 지어주기

SELECT order_id ord_no,

               price "가격",

               quantity "수량"

FROM food_orders;

실습1 실행 결과

2.고객 (customers) 테이블에서 name, email 을 가져와서 이름, e-mail 으로 별명 지어주기

SELECT name "이름",

               email "e-mail"

FROM customers;

실습2 실행 결과

 




6. 조건문 사용해보기(WHERE)

예시) customers테이블에서 21살인 고객을 조회

SELECT *

FROM customers

WHERE age=21;

 

21인 고객들의 정보만 조회된 결과

예시2) 남성고객들만 조회

SELECT *

FROM customers

WHERE gender="male";

남성 고객정보만 조회 된 결

 

WHERE절의 구조

SELECT *

FROM 테이블명

WHERE 조건;

 

실습

1.주문 (food_orders) 테이블에서 한국음식을 주문한 경우만 조회하기

SELECT *

FROM food_orders

WHERE cuisine_type="Korean";

실습1 실행결과

 

2.결제 (payments) 테이블에서 카드로 결제한 경우만 조회하기

SELECT *

FROM payments

WHERE pay_type ="card";

실습2 실행결과

 




 

7. 조건문 필터링 함수

 

비교연산자의 종류 그

그 외의 BETWEEN, IN, LIKE

 

BETWEEN 

기본 문법 : between a and b

a와b의 사이

 

IN

in (A, B, C)

A,B,C 인경우

 

LIKE

  • 특정한 문자로 시작하는 경우
    • 기본 문법 : like ‘시작문자%’
  • 특정한 문자를 포함하는 경우
    • 기본 문법 : like%포함문자%
  • 특정한 문자로 끝나는 경우
    • 기본 문법 : like ‘**%**끝나는문자’

실습

1.고객 (customers) 테이블에서 나이가 40세 이상인 고객 조회하기

SELECT *

FROM customers

WHERE age >=40;

실습1 실행 결과

2. 주문 (food_orders) 테이블에서 주문 금액이 15,000원 미만인 고객 조회하기

SELECT *

FROM food_orders

WHERE price<15000;

실습2 실행 결과

3. 주문 (food_orders) 테이블에서 주문 금액이 20,000~30,000원 사이인 고객 조회하기

SELECT *

FROM food_orders

WHERE price BETWEEN 20000 and 30000 ;

실습3 실행 결과

4. 주문 (food_orders) 테이블에서 B 로 시작하는 상점의 주문 조회하기

SELECT *

FROM food_orders

WHERE restaurant_name LIKE "B%";

실습4 실행 결과

5. 고객 (customers) 테이블에서 윤주아, 정현준 인 이름이 포함된 고객 조회하기

SELECT *

FROM customers

WHERE name in("윤주아","정현준");

실습5 실행 결과

 

 




8. 여러개의 조건으로 필터링하여 조회하기 (AND, OR)

논리연산자 종류

 

예시) 고객정보 테이블에서 나이가 21살 이상이고(and) 성별이 남자인 데이터 조회

SELECT *

FROM customers

WHERE age >= 21

AND gender ="male";

 

 

실습

1. 주문 (food_orders) 테이블에서 한국음식이면서, 가격이 30,000원 이상인 경우 조회

SELECT *

FROM food_orders

WHERE cuisine_type ="Korean"

AND price >=30000;

실습1 실행 결과

2. 결제 (payments) 테이블에서 카드로 결제했거나, vat 율이 0.2 이하인 경우 조회

SELECT *

FROM payments

WHERE pay_type ="card"

OR vat <=0.2;

 

실습2 실행 결과

 

 




9. 다양한 에러 해결하기

테이블 명이 잘못되었을 때
컬럼명이 잘못되었을 때
조건문에 문제가 있을 때

 




 

10. 과제

 

상품 준비시간이 20~30분 사이인, 한국음식점의 식당명과 고객번호 조회하기

  1. - 조회해야 할 컬럼 특정하기
  2. - ‘사이’ 조건 : BETWEEN
  3. - 특정 조건 지정 : =
  4. - 복수의 조건 지정 : AND

 

SELECT restaurant_name,customer_id

FROM food_orders

WHERE food_preparation_time BETWEEN 20 AND 30

AND cuisine_type = "Korean";

 

 

후기!

SQL문에 익숙했지만 많이 까먹어서 복습에 아주 큰 도움이 되었다!

까먹지 않도록 자주 실습하고, 복습해야겠다!