SQL

[SQL] SELECT ALL FROM SQL

zzoming 2024. 1. 3. 23:32

기초 문법을 다시 되짚어보고자 강의를 수강했으며 현재 인프런에서 박범진님께서 무료로 강의를 제공해주고 있습니다. 

무한한 감사를 드리며.. 😊 

https://www.inflearn.com/course/sql-select/dashboard

 

[지금 무료] SELECT ALL FROM SQL 강의 - 인프런

SQL 설치 없이 시작하는 SQL SELECT 기초 문법 강의입니다., SQL Select로 실제 데이터 추출까지! 강의 소개📝 • SQL의 SELECT 문법을 통하여 자신이 원하는 데이터를 추출할 수 있도록 만든 강의입니다.

www.inflearn.com

 

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 구문에서만 사용가능 

 


✍️ https://thebook.io/006977/

 

모두의 SQL

더북(TheBook): (주)도서출판 길벗에서 제공하는 IT 도서 열람 서비스입니다.

thebook.io

 

 

'SQL' 카테고리의 다른 글

SQLD 개발자 자격증 준비 과정 및 후기  (0) 2023.09.10