SQL...? (Structured Query Language)
● 데이터베이스와 대화를 하기 위한 언어
● 데이터베이스에 요청을 하는 '질의' = Query
데이터베이스 (DataBase)
● 파일 탐색기(WindowOS 폴더)로 비유했을 때,
- 데이터베이스(DB) = 폴더(Folder)
- 테이블(TABLE) = 파일(File)
● 테이블 (TABLE)
- 각 열을 칼럼(COLUMN), 혹은 필드(FIELD)
(즉, 표에서 분류 아래의 정보들)
TABLE1 (고객정보)
고객번호 | 이름 | 성별 | 나이 | |
1 | 1001 | 홍길동 | 남 | 20 |
2 | 1002 | 김지우 | 여 | 24 |
=> COLUMN or FIELD
TABLE2 (상품정보)
상품번호 | 상품명 | 수량 | |
1 | 2001 | 독서대 | 17 |
2 | 2002 | 책갈피 | 13 |
테이블 목록 : 고객정보, 상품정보
TABLE1 - 고객정보
TABLE2 - 상품정보
SQL 명령문 - 1
● SELECT : 어떤 Query에서 데이터를 가져올까?
- * : 모든 칼럼
- 칼럼별로 가져올 수 있음
예) SELECT 고객번호, 이름
- from : ~에서 가져올게
예) SELECT *
from 고객정보 => from 다음에는 TABLE 입력
● WHERE : 특정 조건을 만족하는 데이터를 검색해야 할 때
- 숫자 : WHERE 칼럼명 (number)
예) WHERE 수량 17
- 문자 : WHERE 컬럼명 '(char)' => 문자를 입력할 때는 ' '를 사용해야 함
- 비교연산 : <, >, =, <=, >=, <>
- BETWEEN : 값과 값 사이의 값을 필터링
예) WHERE 나이 BETWEEN 10 and 20
- IN : 특정 값만을 필터링
예) WHERE 나이 IN (20, 24) => 나이에 있는 데이터 중에서
20, 24에 해당하는 값을 가져오기
- LIKE : 문자, 숫자의 특정 부분만을 가지고 필터링
예) WHERE 이름 LIKE '홍%' => %를 사용함으로
어떤 문자, 숫자를 기준으로 필터링할지 결정
추가적인 조건 : AND, OR, NOT
- 두 가지 이상의 조건이 겹칠 때 : AND
예) WHERE 나이 <= 20 AND 성별 = '남'
- 두 가지 이상의 조건을 만족하는 것을 검색할 때 : OR
예) WHERE 나이 <= 20 OR 성별 = '남'
- 조건을 제외하고 검색할 때 : NOT
예) WHERE NOT 성별 = '남'
SQL 명령문 - 2
● SQL에서 숫자 연산 사용 가능 : +, -, *, /
● 계산 함수 : SUM, AVERAGE, COUNT, MIN, MAX
(Excel과 함수가 비슷함)
사용방법
- SUM : 선택한 칼럼의 데이터 합. 예) SELECT SUM(칼럼)
- AVG : 선택한 칼럼의 데이터 평균. 예) SELECT AVG(칼럼)
- COUNT : 선택한 칼럼의 데이터의 수.
→ COUNT(1) : 테이블의 전체 데이터의 수 (COUNT(*)과 같은 의미)
→ 전체 값 말고 해당 칼럼의 값만을 구할 때 : DISTINCT
- MIN : 선택한 칼럼의 최솟값. 예) SELECT MIN(칼럼)
- MAX : 선택한 칼럼의 최댓값. 예) SELECT MAX(칼럼)
● GROUP BY : 선택한 칼럼 내에서 수식 함수 계산
- 기본 형태 : SELECT 분류할 칼럼, SUM(칼럼)
FROM 테이블
GROUP BY 분류할 칼럼
● ORDER BY : 분류된 칼럼의 내림차순 정렬 혹은 오름차순 정렬
- 기본 형태 : SELECT 분류할 칼럼, SUM(칼럼)
FROM 테이블
GROUP BY 분류할 칼럼
ORDER BY 정렬을 원하는 칼럼
원하는 데이터를 뽑고 계산하려면
TABLE : 상품정보
상품번호 | 상품명 | 가격 | 수량 | |
1 | 1001 | 장패드 | 17000 | 11 |
2 | 1002 | 키보드 | 59000 | 13 |
3 | 1003 | 스탠드 | 22000 | 14 |
4 | 1004 | 마우스 | 39000 | 12 |
● 위의 데이터에서
'상품의 가격이 50000원 이하인 상품의 수량의 합'을 구한다고 했을 때,
ⅰ. SQL(Query)을 적기 전에 단계 별로 생각해 볼 것.
1. 어떤 테이블에서 데이터를 찾을 것인지
2. 어떤 칼럼(열)을 사용할 것인지
3. 어떤 조건을 지정해야 할지
4. 어떤 함수를 사용할 것인지
ⅱ. 구문으로 만들어보기
1. 어떤 테이블에서 데이터를 찾을 것인지 → FROM 상품정보
2. 어떤 칼럼(열)을 사용할 것인지 → 수량
3. 어떤 조건을 지정해야 할지 → WHERE 가격 < 50000
4. 어떤 함수를 사용할 것인지 → SUM(수량)
ⅲ. 전체 구문
SELECT SUM(수량) FROM 상품정보 WHERE 가격 < 50000 |
'Programming Language' 카테고리의 다른 글
[SQL] 4-1. SQL과 제약 조건 (0) | 2024.11.25 |
---|---|
[SQL] 3. DDL, DML, DCL, TCL (0) | 2024.11.22 |
2. SQL 추가 기능 - Window Function (2) | 2024.10.18 |
1-3 데이터베이스, SQL 기초 (2) | 2024.10.11 |
1-2. 데이터베이스, SQL 기초 (3) | 2024.10.10 |