오늘은 SQL은 강의를 처음으로 진행한 날이다. 더불어 직무 세션 4회를 연달아 진행한 날이었다.
오늘의 일과
- 코드카타 1일차
- 아티클 1개 읽기
- SQL 라이브 세션 2회
- SQL 제공되는 강의 수강
- 발표 자료 준비
오늘 배운 내용의 대부분은 SQL의 기본적인 정의에 대한 내용이었다.
가장 먼저 SQL이 필요한 이유부터 정리해 보자면,
- SQL 은 데이터베이스와 대화를 하기 위한 언어이다.
- 옆의 사람에게 필요한 것을 요청할 때 ‘A 를 주시겠어요?’ 와 하는 것과 같이 데이터베이스에게도 ‘A를 주겠니?’ 라고 이야기할 때 사용하는 언어로 - 내가 찾고자 하는 내용을 코드를 넣어 찾아내는 것이다.
데이터베이스를 찾기 위해 Query를 입력하는데,
데이터베이스(DB)에 있는 정보를 요청하고 필요한 결과를 얻기 위해 질문을 던지는 언어를 의미한다.
또한, 이 언어에서도 SQL (Structured Query Language)는 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 관리하고 처리하기 위해 사용되는 표준 언어라고 할 수 있다.
DBMS라고 하는 용어가 등장했다. 이는 데이터베이스를 효율적으로 관리하고 접근할 수 있게하는 소프트웨어이다. 데이터의 저장, 검색, 업데이트, 삭제를 효율적으로 수행할 수 있도록 지원한다.
DBMS 제작사 운영 체제 특징
MySQL | Oracle | Unix, Linux, Windows, Mac | 오픈 소스, 중소규모 프로젝트에 적합 |
PostgreSQL | PostgreSQL Global Development Group | Unix, Linux, Windows | 고급 기능 지원, 대규모 데이터 처리 강점 |
Oracle | Oracle | Unix, Linux, Windows | 상용 DBMS 중 시장 점유율 1위 |
SQL Server | Microsoft | Windows | 주로 Windows 환경에 최적화 |
SQLite | SQLite Consortium | Unix, Linux, Windows | 경량 DBMS로 모바일 앱 개발에 사용 |
가장 대표적으로 많이 쓰이는 DBMS는 My SQL, Oracle이 있다. DBMS가 데이터를 저장하는 방식은 크게 관계형, 계층형, 망형으로 나뉘며, 가장 널리 사용되는 방식이 “관계형”이다.
1. SQL 코딩순서와 실행순서
SELECT → FROM → JOIN → ON → WHERE → GROUP BY → HAVING → ORDER BY → LIMIT
2. 기본 명령어
SELECT : 데이터를 가져오는 기본 명령어로, 데이터를 조회하는 모든 Query 에 사용됨
FROM : 데이터를 가져올 테이블을 특정해주는 문법
*: 모든 컬럼을 가져와준다는 의미
3. 컬럼에 별명 주기
구분 | 영문, 언더바 | 특수문자, 한글 |
방법 | 별명만 적음 | “별명” 으로, 큰 따옴표 안에 적어줌 |
예시 | ord_no | "ord no" "주문번호" |
4. WHERE: 조건에 맞는 데이터만 필터링 하기
예제) 주문 (food_orders) 테이블에서 한국음식을 주문한 경우만 조회하기
select *
from food_orders
where cuisine_type='Korean'
5. 여러 개의 조건으로 필터링하기
여러 개의 조건을 걸어 필터링을 할 때는 아래와 같은 논리연산자를 넣어주면 한 번에 찾을 수 있다.
논리연산자 | 의미 | 예시 |
AND | 그리고 | age>20 and gender=’female’ → 나이가 20세 이상이고, 여성 |
OR | 또는 | age>20 or gender=’female’ → 나이가 20세 이상이거나, 여성 |
NOt | 아닌 | not gender=’female’ → 여성이 아닌 |
예제) 주문 (food_orders) 테이블에서 한국음식이면서, 가격이 30,000원 이상인 경우 조회
select *
from food_orders
where cuisine_type='Korean' and price>=30000
6. 비교연산자 종류 (비교연산, BETWEEN, IN, LIKE)
비교연산자 | 의미 | 예시 |
= | 같다 | age=21 gender=’female’ |
<> | 같지 않다 (다르다) | age<>21 gender<>’female’ |
> | 크다 | age>21 |
>= | 크거나 같다 | age>=21 |
< | 작다 | age<21 |
<= | 작거나 같다 | age<=21 |
- BETWEEN : A 와 B 사이
- 기본 문법 : between a and b
- 예시 : 나이가 10 과 20 사이
- IN : ‘포함’ 하는 조건 주기
- LIKE : 완전히 똑같지는 않지만, 비슷한 값을 조건으로 주기
- 특정한 문자로 시작하는 경우
- 기본 문법 : like ‘시작문자**%**’
- 예시 : ‘김’ 으로 시작하는 이름
- name like '김%'
- 특정한 문자를 포함하는 경우
- 기본 문법 : like ‘%포함문자%’
- 예시 : 식당 이름에 ‘Next’ 를 포함하는 경우
- restaurant_name like '%Next%'
- 특정한 문자로 끝나는 경우
- 기본 문법 : like ‘**%**끝나는문자’
- 예시 : ‘임’ 으로 끝나는 이름
- name like '%임'
- 특정한 문자로 시작하는 경우
오늘은 직무세션을 4개를 연달아 들었더니, 생각보다 매우 피곤했다.
다들 데이터 분석가 비슷한 직군에 계시다 보니 더 피곤하다는 생각이 들었다.
SQL코드카타도 처음 해보았는데, 강의를 보면서 풀 때와는 달리 머리가 새하얘지는 기분이 들었다... 😰 그래도 조바심 내지말고 나의 페이스로 해내야겠다. 화이팅!! 😊
'데이터분석캠프 TIL' 카테고리의 다른 글
241202_ 데이터 분석 과정(JOIN, UNION, SUBQUERY, 윈도우 함수 ) (1) | 2024.12.02 |
---|---|
241129 (TIL_데이터 분석 과정_ WIL) (0) | 2024.11.29 |
241128 TIL_데이터 분석 과정(SQL - 집계함수, GROUP BY, HAVING, LAND, ORDER BY) (1) | 2024.11.28 |
241127 TIL_ 데이터 분석 과정(SQL 강의 2주차 WHERE, NULL, ORDER BY, GROUP BY, DISTINCT, LIMIT) (2) | 2024.11.27 |
241125 TIL - 데이터 분석 과정(OT, 데이터분석 직무 설명회, CRM 마케팅 직무 분석) (1) | 2024.11.25 |