본문 바로가기
data & AI

주니어 기획자, SQL 공부를 시작해보자 - 1편

by jessicahan96 2023. 4. 16.

기획자가 SQL을 공부하려면 어디서부터 어디까지 공부해야하나요?

위 질문에 대해 저는 아직 역량이 부족하여 답을 드릴 수는 없지만,

제가 이전에 인상 깊게 보았던 강미경님의 발표로 답을 대신합니다.

 

https://youtu.be/8pB6FcRT7bM

SQL이란?

구조적 쿼리 언어(SQL)는 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어입니다. 관계형 데이터베이스는 정보를 표 형식으로 저장하며, 행과 열은 다양한 데이터 속성과 데이터 값 간의 다양한 관계를 나타냅니다. SQL 문을 사용하여 데이터베이스에서 정보를 저장, 업데이트, 제거, 검색 및 검색할 수 있습니다. 데이터베이스 성능을 유지 관리하고 최적화하는 데 SQL을 사용할 수도 있죠.

 

SQL이 중요한 이유는 무엇인가요?

구조적 쿼리 언어(SQL)는 모든 유형의 애플리케이션에서 자주 사용되는 널리 사용되는 쿼리 언어입니다. 데이터 분석가와 개발자는 SQL이 서로 다른 프로그래밍 언어와 잘 통합되므로 SQL을 배우고 사용합니다. 예를 들어, Java 프로그래밍 언어로 SQL 쿼리를 포함시켜 Oracle 또는 MS SQL Server와 같은 주요 SQL 데이터베이스 시스템으로 고성능 데이터 처리 애플리케이션을 빌드할 수 있습니다. SQL은 문에 일반적인 영어 키워드를 사용하기 때문에 배우기가 매우 쉽습니다.

 

https://aws.amazon.com/ko/what-is/sql/

 

SQL이란 무엇인가요? - 구조적 쿼리 언어(SQL) 설명 - AWS

구조적 쿼리 언어(SQL)는 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어입니다. 관계형 데이터베이스는 정보를 표 형식으로 저장하며, 행과 열은 다양한 데이터 속성과

aws.amazon.com


오늘은 간단하게 SQL의 간단한 쿼리문을 학습해보고, 다음부터는 실습을 해보도록 하겠습니다.

무료 강의가 있어서, 강의를 들으며 필기한 내용을 공유합니다.

 

https://edu.goorm.io/lecture/18815/select-all-from-sql

 

SELECT ALL FROM SQL - 구름EDU

SQL 설치 없이 1시간만에 배우세요! SELECT 하나로 원하는 데이터를 쏙 추출해봅시다

edu.goorm.io


SELECT (줘)

SELECT 열이름(들) FROM 테이블명;
= 테이블명에서 열 이름(들)을 가지고 와라
SELECT CustomerID, CustomerName FROM [Customers];
SELECT * FROM [Customers];

옵션 1) 숫자 제한(LIMIT)
SELECT CustomerID FROM [Customers] LIMIT 5;

옵션 2) 정렬(ORDER BY)
SELECT CustomerID FROM [Customers] ORDER BY CustomerID DESC;
SELECT CustomerID FROM [Customers] ORDER BY CustomerID ASC;

옵션 1) 중복 제거(DISTINCT)
SELECT DISTINCT Country FROM [Customers];

WHERE(조건에 맞는 걸로)

SELECT 열이름(들) FROM 테이블명 WHERE 조건;
= 테이블명에서 열 이름을 가지고 오는데 조건에 맞는 것만 가지고 와라
SELECT * FROM [Products] WHERE SupplierID = 1;

옵션 1) 논리연산자(=, !=, >=, >, <=, <)
SELECT ProductID, Price FROM [Products] WHERE Price >= 15;

옵션 2) 목록 포함(IN, NOT IN)
SELECT ProductID, SupplierID FROM [Products] WHERE SupplierID IN ('1', '2');
SELECT ProductID, SupplierID FROM [Products] WHERE SupplierID NOT IN ('1', '2');

옵션 3) 문자열 포함(LIKE)
SELECT ProductID, Unit FROM [Products] WHERE Unit LIKE '%boxes%';

옵션 4) AND, OR
SELECT ProductID, Unit, Price FROM [Products] WHERE Unit LIKE '%boxes%' AND Price >= 15;

GROUP BY(묶어서)

SELECT 열이름, 통계함수 FROM 테이블명 GROUP BY 열이름;
SELECT Country, COUNT(CustomerID) FROM Customers GROUP BY Country;

옵션 1) HAVING
SELECT Country, COUNT(CustomerID) FROM Customers GROUP BY Country HAVING COUNT(CustomerID) > 10;

JOIN(얘랑 엮어서)

SELECT 열이름 FROM 테이블명A GROUP BY 열이름;

옵션 1)
SELECT C.CustomerID, O.OrderID
FROM [Customers] AS C;

INNER JOIN Orders AS O
On O.CustomerID = C.CustomerID;

옵션 2)
SELECT C.CustomerID, O.OrderID
FROM [Customers] AS C;

LEFT JOIN Orders AS O
On O.CustomerID = C.CustomerID;

SUBQUERY

CustomerID 기준 ShipperID 별 배송 횟수를 구하여라.

SELECT C.CustomerID,
IFNULL(O1.ShipperID_1, 0) AS ShipperID_1,
IFNULL(O2.ShipperID_2, 0) AS ShipperID_2
IFNULL(O3.ShipperID_3, 0) AS ShipperID_3
FROM Customers AS C;

LEFT JOIN (

SELECT CustomerID, COUNT(OrderID) AS ShipperID_1
FROM Orders
WHERE ShipperID = 1
GROUP BY CustomerID

) AS O1
ON O1.CustomerID = C.CustomerID

LEFT JOIN (

SELECT CustomerID, COUNT(OrderID) AS ShipperID_2
FROM Orders
WHERE ShipperID = 2
GROUP BY CustomerID

) AS O2
ON O2.CustomerID = C.CustomerID

LEFT JOIN (

SELECT CustomerID, COUNT(OrderID) AS ShipperID_3
FROM Orders
WHERE ShipperID = 3
GROUP BY CustomerID

) AS O3
ON O3.CustomerID = C.CustomerID

 

SQL 관련해서는 국가 공인 데이터자격시험도 있으니,

학습 후 자격증 취득도 관심 있는 분들은 아래 링크를 확인해보세요 - !

 

https://www.dataq.or.kr/www/sub/a_04.do

 

데이터자격시험

SQL(Structured Query Language)은 데이터베이스를 직접적으로 액세스할 수 있는 언어로, 데이터를 정의하고(Data Definition), 조작하며(Data Manipulation), 조작한 결과를 적용하거나 취소할 수 있고(Transaction Con

www.dataq.or.kr

 

'data & AI' 카테고리의 다른 글

matplotlib 연습  (0) 2021.06.08
Part 2. GAIQ (구글 애널리틱스 인증 시험)  (0) 2020.05.23
Part 1. Google Analytics Setting  (2) 2020.05.23