기획자가 SQL을 공부하려면 어디서부터 어디까지 공부해야하나요?
위 질문에 대해 저는 아직 역량이 부족하여 답을 드릴 수는 없지만,
제가 이전에 인상 깊게 보았던 강미경님의 발표로 답을 대신합니다.
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 |