SQL 이란?
-SQL : 구조적 쿼리 언어
-관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어
-데이터베이스와 대화를 하기 위한 언어
-SQL은 코드가 아니라 데이터베이스에 요청을 하기 위한 '언어'
*Query(쿼리) : SQL 언어를 이용하여 데이터베이스에 요청을 하는 질의
데이터베이스, 테이블, 칼럼
-데이터베이스 : 데이터가 저장되어 있는 큰 폴더
*보통 '데이터베이스'라는 폴더가 있고, 그 안에 '테이블'이라는 파일이 있다고 생각하면 된다.
-테이블 : 엑셀과 유사한 구조로 데이터를 가지고 있고, 각 열을 '컬럼' 또는 '필드'라고 부른다.
※예시
[테이블 목록]
-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
'내배캠 > sql' 카테고리의 다른 글
[내일배움캠프/사전캠프] SQL 강의 5주차 (1) | 2024.09.23 |
---|---|
[내일배움캠프/사전캠프] SQL 강의 4주차 (3) | 2024.09.20 |
[내일배움캠프/사전캠프] SQL 강의 3주차 (1) | 2024.09.19 |
[내일배움캠프/사전캠프] SQL 강의 2주차 (1) | 2024.09.13 |