SQL란?
SQL은 서버와 이야기하느 방법
데이터베이스= 서버의 기억 창고
SQL을 사용해 서버에세 "창고에서 이 물건을 찾아줘" 또는 "이 물건을 창고에 추가해줘" 와 같은 요청이 가능하다.
테이블 - 데이터베이스에서 데이터를 저장하는 기본구조.
엑셀 시트처럼 행(Row)과 열(Column)or field으로 구성됨
SQL 데이터 조회하기
1) SELECT / FROM 문의 개념
SELECT : 데이터를 가져오는 기본 명령어로, 데이터를 조회하는 모든 Query 에 사용됨
FROM : 데이터를 가져올 테이블을 특정해주는 문법
* : 모든 컬럼을 가져와준다는 의미
ex) Query 실행
Query기본 구조
원하는 컬럼 선택
select 컬럼1, 컬럼2
from 테이블
ex)
select order_id, restaurant_name
from food_orders
컬럼에 별명(alias)을 주기
SQL에서 컬럼에 별명을 붙이는 방법은 AS 키워드를 사용하는 것.
AS 뒤에 원하는 별명을 붙이면 된다.
-기본 형식
SELECT 컬럼명 AS 별명 F
ROM 테이블명;
ex)
컬럼 name을 사용자이름이라는 별명으로 바꾸기.
계산된 값에 별명 사용
다수의 컬럼에 별명 사용
함수 결과에 별명 사용
그룹화된 데이터에 별명 사용
조건문 사용
별명 지을 때 유의사항
구분 | 영문, 언더바 | 특수문자, 한글 |
방법 | 별명만 적음 | "별명"으로 큰 따옴표 안에 적어줌 |
예시 | ord_no | "ord no" "주문번호" |
- 별명은 쿼리 결과를 더 읽기 쉽게 만들고, 복잡한 컬럼 이름을 간단하게 표현하거나 계산된 값에 의미 있는 이름을 부여하는 데 사용된다.
- AS 키워드를 사용하여 컬럼에 별명을 붙이는 것이 일반적인 방법.
- 별명을 통해 가독성을 높이고, 결과를 더 직관적으로 이해할 수 있게 돕는 것이 목적.
조건에 맞는 데이터로 필터링하기 (WHERE 이란)
WHERE 절은 SQL 쿼리에서 특정 조건을 사용하여 데이터를 필터링하거나 제한할 때 사용된다.
쉽게 말하면, WHERE 절은 "어떤 조건을 만족하는 데이터만 선택해줘" 라는 요청을 할 때 쓰는 도구이다. 이 절은 SELECT, UPDATE, DELETE 같은 명령문과 함께 사용되며, 테이블에서 원하는 데이터만 가져오거나 변경 또는 삭제할 수 있도록 도와준다.
기본형식
SELECT 컬럼명
FROM 테이블명
WHERE 조건;
FROM customers
WHERE age=21
필터링은 숫자가 아닌 문자에도 사용 가능합니다. 문자를 사용할 때는 작은 따옴표를 사용합니다.
(대소문자 구분 없이 사용 가능)
고객 (customers) 테이블에서 여성을 필터링하면 아래와 같습니다.
SELECT *
FROM customers
WHERE gender='female'
필터링 할 때 유용한 표현
필터링은 같다 (=) 조건을 포함하여, 크다 (>), 작다 (<) 등을 모두 사용할 수 있습니다.
비교연산자의 종류
비교연산자 | 의미 | 예시 |
= | 같다 | age=21 gender='female' |
<> | 같지 않다(다르다) | age<>21 gender<>'female' |
> | 크다 | age>21 |
>= | 크거나 같다 | age>=21 |
< | 작다 | age<21 |
<= | 작거나 같다 | age<=21 |
비교연산자를 이용하여 ‘나이가 21세 미만인’ 고객을 조회한 예시
SELECT*
FROM customers
WHERE age<21
따라서
- HERE 절은 SQL 쿼리에서 조건을 적용하여 데이터를 필터링하는 데 사용된다.
- 다양한 비교 연산자와 논리 연산자를 사용하여 데이터를 세밀하게 필터링할 수 있다.
- WHERE 절은 SELECT, UPDATE, DELETE 같은 명령문에서 데이터를 제한하거나 변경할 때 필수적으로 사용된다.
다양한 조건의 종류 (BETWEEN, IN, LIKE)
BETWEEM : A 와 B 사이
기본 문법 : between a and b
SELECT *
FROM users
WHERE age BETWEEN 20 AND 30;
IN : ‘포함’ 하는 조건 주기
기본 문법 : in (A, B, C)
SELECT * FROM users
WHERE city IN ('Seoul', 'Busan', 'Incheon');
city가 'Seoul', 'Busan', 'Incheon' 중 하나인 사용자 검색.
LIKE : 완전히 똑같지는 않지만, 비슷한 값을 조건으로 주기
특정한 문자로 시작하는 경우
기본 문법 : like ‘시작문자**%**’
예시 : ‘김’ 으로 시작하는 이름
name like '김%'
특정한 문자를 포함하는 경우
기본 문법 : like ‘%포함문자%’
예시 : 식당 이름에 ‘Next’ 를 포함하는 경우
restaurant_name like '%Next%'
특정한 문자로 끝나는 경우
기본 문법 : like ‘**%**시작문자’
예시 : ‘임’ 으로 끝나는 이름
name like '%임'
여러 개의 조건으로 필터링하기( 논리연산)
-여러개의 조건을 적용할 때 사용되는 연산이 '논리연산'입니다.
논리연산자 | 의미 | 예시 |
AND | 그리고 | age>20 and gender=’female’ → 나이가 20세 이상이고, 여성 |
OR | 또는 | age>20 or gender=’female’ → 나이가 20세 이상이거나, 여성 |
NOT | 아닌 | not gender=’female’ → 여성이 아닌 |
WHERE 절의 논리 연산자
NULL 값 검사 (IS NULL)
값이 NULL인지 확인할 때:
예제: 복합 조건
복합 조건을 사용할 때는 괄호를 사용하여 조건을 그룹화할 수 있어:
응용: UPDATE, DELETE와 함께 사용
UPDATE
- id가 1인 사용자의 email을 'example@example.com'으로 수정한다.
DELETE