내배캠/sql

[내일배움캠프/사전캠프] SQL 강의 1주차

jy3574 2024. 9. 12. 23:18
SQL 이란?

 

-SQL : 구조적 쿼리 언어

-관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어

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

-SQL은 코드가 아니라 데이터베이스에 요청을 하기 위한 '언어'

 

*Query(쿼리) : SQL 언어를 이용하여 데이터베이스에 요청을 하는 질의

 

 

데이터베이스, 테이블, 칼럼

 

-데이터베이스 : 데이터가 저장되어 있는 큰 폴더

*보통 '데이터베이스'라는 폴더가 있고, 그 안에 '테이블'이라는 파일이 있다고 생각하면 된다.

 

-테이블 : 엑셀과 유사한 구조로 데이터를 가지고 있고, 각 열을 '컬럼' 또는 '필드'라고 부른다.

테이블의 email 컬럼

※예시

[테이블 목록]                                      

-food_orders                                       [food_orders 테이블]

-payments                                             -order_id

-customers                                            -customer_id 등

 

 

SQL 데이터 조회하기
SELECT, FROM
(가장 기본구조)

 

-SQL에서 가장 기본은 '어느 테이블에서 데이터를 가져올까' 이다.

-SELECT : 데이터를 가져오는 기본 명령어, 데이터를 조회하는 모든 Query에 사용  

-FROM : 데이터를 가져올 테이블을 특정

-* : 모든 컬럼을 가져온다.

select  조회하고 싶은 데이터(컬럼)
from 데이터를 가져올 테이블

 

※예시

select *

from customers

-----------------------------customers 테이블의 모든 데이터 조회하기

 

 

테이블에서 원하는 컬럼만 선택하는 방법

 

-테이블에서 원하는 컬럼을 선택할 때, select 뒤에 , 로 구분

-테이블의 모든 컬럼이 필요하지 않을 때 사용

select  컬럼1, 컬럼2
from  테이블

 

※예시

select order_id, restaurant_name

from food_orders

-----------------------------food_orders 테이블의 order_id, restaurant_name 데이터 조회하기

 

 

컬럼에 별명(alias)을 주기
-컬럼 이름 바꾸기

 

-원하는 컬럼을 뽑은 후에 명칭을 바꾸고 싶을 때 사용

-두 가지 방법 중 편한 방법으로 사용

방법1 : 컬럼1 as 별명1
방법2 : 컬럼2 별명2
구분 영문, 언더바 특수문자(띄어쓰기 등), 한글
방법 별명만 적음 "별명" 으로, 큰 따옴표 안에 적어줌
예시 ord_no "ord no"
"주문번호"

 

※예시

select name "이름",

          email "e-mail"

from customers

-----------------------------customers 테이블의 order_id, restaurant_name 데이터 가져와서 이름, e-mail로 별명 짓기

 

 

조건에 맞는 데이터로 필터링하기
Where 절
(필터링의 기초문법)

 

-데이터 중에 특정 조건을 필터링 해야할 때 사용

-전체 데이터 중 원하는 데이터만 필터링 할 수 있음

-숫자가 아닌 문자도 필터링 가능

 단, 문자를 사용할 때는 작은 따옴표 사용

select 컬럼
from 테이블
where 필터링 조건

 

※예시1

select *

from customers

where age=21

-----------------------------customers 테이블에서 나이가 21살인 사람을 필터링

 

※예시2

select *

from customers

where gender='female'

-----------------------------customers 테이블에서 여성을 필터링

 

 

 

필터링 할 때 유용한 표현
비교연산, Between, In, Like
필터링 조건을 다양하게 지정하는 방법

 

1. 같음, 큼, 작음 등의 조건 지정

비교연산자 의미 예시
= 같다 age=21 /  gender='female'
<> 같지 않다 (다르다) age <> 21 /  gender <> 'female'
> 크다 ag>21
>= 크거나 같다 age>=21
< 작다 age<21
<= 작거나 같다 age<=21 

 

※예시

select *

from customers

where age<21

-----------------------------customers 테이블에서 나이가 21살 미만인 사람을 필터링

 

2. 다양한 조건의 종류

-Between : A와 B 사이

조건 지정하고 싶은 것 between A and B

 

※예시

select *

from customers

where age between 10 and 20

-----------------------------customers 테이블에서 나이가 10과 20 사이 사람을 필터링

 

-In : ~을 '포함'하는 조건

조건 지정하고 싶은 것 in (A,B)

 

※예시

select *

from customers

where age in(15,21,31)

-----------------------------customers 테이블에서 나이가 15,21,31인 사람을 필터링

 

-Like : 완전 똑같지는 않지만, 비슷한 값

like '시작문자%'
like '%포함문자%'
like '%끝나는 문자'

 

※예시1

select *

from customers

where name like '김%'

-----------------------------customers 테이블에서 이름이 김으로 시작하는 사람을 필터링

 

※예시2

select *

from customers

where name like '%%'

-----------------------------customers 테이블에서 이름에 임이 포함되는 사람을 필터링

 

※예시3

select *

from customers

where name like '%임'

-----------------------------customers 테이블에서 이름이 임으로 끝나는 사람을 필터링

 

 

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

 

-필터링 조건 여러개를 하나의 Query문에 적용할 때 사용

-여러개의 조건을 적용할 때 사용되는 연산이 '논리연산'

논리연산자 의미 예시
AND 그리고 age>20 and gender='female'
-나이가 20세 이상이고, 여성인 조건
OR 또는 age>20 or gender='female'
-나이가 20세 이상이거나, 여성인 조건
NOT 아닌 not gender='female'
-여성이 아닌

 

※예시

select *

from food_orders

where cuisine_type='korean' and price>=30000

-----------------------------food_orders 테이블에서 한국음식이면서 가격이 3만원 이상인 조건 필터링

 

 

에러메시지

 

-에러코드가 아닌 '에러가 난 이유'를 보기

 

-자주 볼 수 있는 에러메시지

 

1. 테이블 명을 다르게 적었을 때 - 테이블이 존재하지 않는다는 메시지

 

2. 컬럼 명을 다르게 적었을 때 - 필드명이 잘못 되었다는 메시지

 

3. 필터링 조건을 줄 때 문자에 따옴표 안했을 때


*사용하는 프로그램 : DBeaver

https://dbeaver.io/download/