학습주제
- SQL과 RDB란 무엇인가
- 데이터 조회 : SELECT, FROM, WHERE
- 비교 연산자와 논리 연산자
- 정렬과 집계
- 기초 SQL 함수
- DDL, DML
주요 메모 사항 소개
- SQL을 사용하면 좋은 점 입니다.
- 원하는 형태로 데이터를 가져올 수 있다.
- 효율적으로 데이터를 가져올 수 있다.
- 간단한 데이터 분석을 수행할 수 있다.
- RDBMS / SQL 개요입니다.
- SQL (Structured Query Language) : 관계형 데이터베이스를 사용하기 위한 표준언어
- 쿼리 : 기초 구문
- Atomicity (원자성) : 전부 반영되거나 아무것도 반영되지 않아야 한다.
- Consistency (일관성) : 입력 값의 commit 전 후가 동일해야한다.
- Isolation (격리성) : 하나의 트랜잭션이 다른 트랜잭션을 방해할 수 없다.
- Durability (지속성) : commit 된 데이터는 H/W 결함이 발생하거나, DB가 죽더라도 보존되어야 한다.
- 실습환경 ( https://sqlfiddle.com/)에 접속하시면 웹으로 Database를 사용할 수 있습니다.
- SQL 문의 실행순서
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY - FROM
- 테이블 명(어디에서) - WHERE
- 행 (어떤 조건에서)
- 비교, 조건 연산자를 사용할 수 있다. (항상 참인 조건)
- 그룹화 하기전 필터링 - LIMIT(TOP, ROWNUM)
- 상위 행 필터링
- ex)LIMIT 2 = 상위 2개 행만 필터링 - AS
- 기존 테이블에 이름을 재정의
ex) SELECT name AS name_v2
- 기존 테이블에 새로운 문자열을 정의
ex) SELECT name AS name_v2, 'programmers' as new_col1 - 비교연산자
- =, >, <, >=, <=, <> (같지 않음), != - 논리연산자
- AND, OR
- NOT : 참 거짓을 뒤집는 연산자
ex) AND NOT category = '키즈' : '키즈'가 아닌 다른 카테고리 행 - IN : 괄호안의 값을 참으로 반환
ex) AND category IN ('스포츠', '디지털', '식품') : '스포츠', '디지털', '식품' 에 포함된 category 반환 - NOT IN
- LIKE : 문자열 필터링시 사용 ※ '_ ': 한개의 문자열, '%' : 모든 문자열
ex) AND name LIKE '%보호%' : 보호가 포함된 데이터 반환 - BETWEEN : 양쪽 끝값을 포함해 데이터 반환
ex) AND purchase_date between '20231001' and '20231003' - IS NULL : NULL 값 출력
ex) AND purchase_date Is NULL
- 정렬
- ORDER BY : 정렬하고자 하는 칼럼으로 정렬(반환 순서)
※ ASC : 오름차순, DESC : 내림차순, 입력안할 시 자동으로 ASC
ex) ORDER BY column DESC, column2 (ASC) - 전체집계
- count(*) : Null 값 포함하여 계산
- count(column_name) : Null값 제외하고 계산
- distinct : 중복제거한 유니크 값
- GROUP BY : column 별로 그룹지어서 반환
ex) GROUP BY 1, 2 : 여기서 1, 2는 SELECT절의 순서와 동일 - HAVING : 그룹화 이후 필터링
- 기초 SQL 함수
- CONCAT
- 여러 컬럼의 문자열 값을 하나의 컬럼으로 합치는 함수
- 문자열 없이 공백도 가능 ( 이어줄 문자에 space)
ex) CONCAT (column1, '이어줄 문자', column2) - SUBSTRING
- 문자열을 잘라서 부분반환
ex) (column1, 시작위치, 위치부터 자를갯수) : - LEFT, RIGHT
- 맨 왼쪽, 오른쪽부터 갯수출력하여 출력
ex) left(column_name, 2) - UPPER, LOWER
- 대문자, 소문자로 변환하여 출력
ex) UPPER('John') - CHAR_LENGTH
- 문자열 길이 반환함수
ex) SELECT CHAR_LENGTH(column_name) - ROUND
- 반올림
ex) ROUND(avg(price)) - CELI, FLOOR, TRUNCATE
-올림, 내림, 특정 자릿수 이하 잘라서 버림 - ABS
- 절댓값
ex) ABS(-1.0) - MOD
- 나머지를 구하는 함수, 특정숫자 배수 검색시 사용
ex) MOD(pirce, product_id) - POW
- 두 인자를 받아 x의 y제곱을 구함 - GREATEST
- 함수안의 인자들 중 최댓값 - LEAST
- 함수안의 인자들 중 최솟값 - COALESCE
- 칼럼안의 Null 값을 채우기 위해 사용
- CONCAT
- DDL (Data Definition Language) : 데이터베이스 구조를 정의하고 관리
- CREATE : 테이블 / 뷰 / 인덱스 생성
- ALTER : 테이블 / 뷰/ 인덱스 구조 변경
- DROP : 테이블 / 뷰/ 인덱스 삭제
- DML (Data Manipulation Language) : 데이터를 쿼리하거나 조작
- SELECT : 질의
- INSERT : 삽입
- UPDATE : 수정
- DELETE : 삭제
- CHAR / VARCHAR
- 문자열을 정의, 스토리지를 얼마나 사용하는지 정의
- CHAR ( ) : 고정된 문자열이다, 짧은 문자열도 뒤에 space로 채워준다.
- VARCHAR ( ) : 데이터에 따라 차지하는 크기가 다르다.
공부하면서 어려웠던 내용
- 막상 써보니 생각보다 어려웠다 SELECT, FROM ,WHERE을 기본으로 쓰고 WHERE 절에 AND를 붙혀 어려가지 구문을 사용해 봐야겠다 생각이 들었다.
반응형
'데이터분석' 카테고리의 다른 글
13. 데이터 타입 (1) | 2023.12.06 |
---|---|
12. SQL문 (1) | 2023.12.05 |
10. 결측치란? (0) | 2023.12.01 |
9. 캐글 시작 (1) | 2023.11.30 |
8. 엑셀(구글 시트) 기본 수식 사용 (0) | 2023.11.29 |