기초 문법을 다시 되짚어보고자 강의를 수강했으며 현재 인프런에서 박범진님께서 무료로 강의를 제공해주고 있습니다.
무한한 감사를 드리며.. 😊
https://www.inflearn.com/course/sql-select/dashboard
1.SELECT (조회)
SELECT 열 이름(들) FROM 테이블명;
= 테이블며에서 열 이름(들)을 가지고 와라
- 숫자제한(LIMIT)
- SELECT CustomerID FROM Customers LIMIT 5;
- 정렬(ORDER BY)
- SELECT CustomerID FROM Customers ORDER BY CustomerID DESC;
- SELECT CustomerID FROM Customers ORDER BY CustomerID ASC;
- 중복제거(DISTINCT)
- SELECT DISTINCT Countty FROM Customers
- 별칭 (AS)
- 열 이름을 임시로 변경하려면 AS 접속사 사용
- SELECT employee_id AS 사원번호, first_name AS 이름, last_name As 성 FROM employees;
2. WHERE (조건절)
SELECT 열 이름 FROM 테이블명 WHERE 조건;
= 테이블명에서 열 이름을 가지고 오는데 조건에 맞는 것만 가지고 와라
- 비교 연산자 ( = , != , >= , > , <= , < )
- SELECT ProuductID, Price FROM Products WHERE Price >= 15;
- 목록 포함 (IN , NOT IN)
- SELECT ProuductID, SupplierID FROM Products WHERE SupplierID IN (1,2);
- SELECT ProuductID, SupplierID FROM Products WHERE SupplierID NOT IN (1,2);
- 문자열 포함 (LIKE)
- SELECT ProductID , unit FROM Prouducts WHERE Unit LIKE '%boxes%';
- % : '모든문자' , _ : '한 글자'
- 논리 연산자 (AND,OR)
- SELECT ProuductID, Price FROM Products WHERE Unit LIKE '%boxes' AND Price >= 15;
3. GROUP BY(묶어서)
SELECT 열 이름, 통계함수 FROM 테이블명 GROUP BY 열 이름;
- HAVING (그룹화된 값에 대한 조건식)
- WHERE 절에서는 그룹 함수를 사용할 수 없으므로 HAVING 절을 사용
- GROUP BY 절 다음에 기술하는 것이 논리적이고 가독성이 좋다
- SELECT Country , COUNT(CustomerID) FROM Customers GROUP BY Country HAVING COUNT(Customer) >= 10 (Customers 테이블에서 Country 별로 그룹화 하여 손님 수 를 구하되, 손님 수가 10보다 큰 값만 출력해라)
4. JOIN
INNER JOIN
SELECT 열 이름 FROM 테이블 명 A INNER JOIN 테이블명 B ON B.Key = A.Key
= 테이블 A와 테이블 B 중 Key 값이 같은 정보를 모두 합쳐라
- SELECT C.CustomerID , O.OrderID FROM Customers AS C INNER JOIN Orders AS O ON O.CustomerID = C.CustomerID
OUTER JOIN
4. SUBQUERY
서브쿼리란? SELECT 문 안에 다시 SELECT 문이 기술된 형탤의 쿼리(Query)이다.
EX) employees 테이블의 last_name이 'De Haan' 인 직원과 salary가 동일한 직원에는 누가 있는지 출력하시오
SELECT * FROM employees A
WHERE A.salary = ( SELECT salary FROM employees WHERE last_name = 'DE Haan' ) ;
EX) employees 테이블의 department_id별로 가장 낮은 salary가 얼마인지 찾아보고, 찾아낸 salary 에 해당하는 직원이 누구인지 출력하시오.
SELECT * FROM employees A
WHERE A.salary IN ( SELECT MIN(salary) FROM employees GROUP BY deparment_id )
ORDER BY A.salary DESC
5. SQL 구문순서
① SELECT 컬럼명
② FROM 테이블명
③ WHERE 테이블조건
④ GROUP BY 컬럼명
⑤ HAVING 그룹조건
⑥ ORDER BY 컬럼명
FROM : SQL 은 구문이 들어오며 가장 먼저 테이블을 확인
WHERE : 테이블을 확인했으면, 테이블에서 주어진 조건에 맞는 데이터를 추출
GROUP BY : 조건에 맞는 데이터가 추출되었으니, 공통적으로 데이터들끼리 묶어 그룹을 만든다.
HAVING : 공통적으로 데이터들이 묶여진 그룹 중, 주어진 조건에 맞는 그룹들을 추출
SELECT : 최종적으로 추출된 데이터들을 조회
ORDER BY : 추출된 데이터들을 정렬
✅ SELECT 다음으로 오는 구문은 ORDER BY 뿐이므로, SELECT 에서 만들어진 Alias는 ORDER BY 구문에서만 사용가능
'SQL' 카테고리의 다른 글
SQLD 개발자 자격증 준비 과정 및 후기 (0) | 2023.09.10 |
---|