사실 웬만한 공부는 NOTION 개인페이지에 정리해둔다. 사유는 노션이 검색이 쉽고 수정이 용이하기 때문.
다양한 문법을 배웠지만 사실 기획자 수준에서 데이터추출용으로 쓰이는 것은 한정 되어있다.
하지만 사수님께 지식은 공유할수록 확장된다 들었다. 하여, 공개 블로그에 공유해볼까 한다.
SELECT문 : 모든 조건문에서 SELECT~FROM은 기본임
: SELECT * FROM 테이블명
오름차순과 내림차순 : DECS를 해주지 않으면 기본적으로 오름차순 추출됨
- 오름차순 : ORDER BY ASC
- 내림차순 : ORDER BY DECS
첫문자만 대문자로
INITCAP(데이터)
전체 소문자로
LOWER(데이터)
전체 대문자로
UPPER(데이터)
글자수를 리턴
LENGTH(데이터)
별칭
- WHERE절은 별칭 사용불가
- 띄어쓰기가 들어가면 ""로 묶어 입력 필요
- 테이블 별칭 : SELECT 컬럼 FROM 테이블명 AS 별칭;
- 컬럼 별칭 : SELECT 컬럼 AS 별칭 FROM 테이블명;
특정 문자열만 추출
- 양수로 추출하기 : SUBSTR(원본 문자열OR컬럼명, 시작위치, 추출개수)
EX) 이미선 -> SUBSTR(이미선,1,2) = 이미 AS 두개만 추출
- 음수로 추출하기 : SUBSTR(원본 문자열OR컬럼명, 시작점 : 단어 맨끝 기준 위치로 양수와 동일하게 왼쪽부터 추출)
EX) 010-1234-1234에서 끝에 4자리만 추출을 원함 = SUBSTR(010-1234-1234,-4)
COUNT 절
- 모든 로우 조회 : SELECT COUNT(*) FROM 테이블명
- NOT NULL인 ROW만 조회 : SELECT COUNT(column) FROM 테이블명
- 조건맞는 컬럼의 NOT NULL만 조회 : SELECT COUNT(DISTINCT CASE WHEN 조건 THEN 결과)
JOIN함수-INNER JOIN = 기본 JOIN
SELECT 컬럼 FROM 테이블1 INNER JOIN 테이블2 ON 조인조건 [ WHERE 검색조건 ]
JOIN함수-OUTER JOIN : 종류는 LEFT, RIGHT, FULL
SELECT 컬럼 FROM 왼쪽테이블 OUTER JOIN 오른쪽테이블 ON 테이블명1.컬럼명 = 테이블명2.컬럼명 [WHERE 검색조건]
JOIN함수-특정컬럼명을 위한 검색
INNER JOIN 징검다리할 테이블명 ON 테이블1.컬럼명1 테이블2.컬럼명2 ON 테이블명1.컬럼명 = 테이블명2.컬럼명
JOIN함수-SELF JOIN
SELECT 컬럼 FROM 테이블명1 AS 별칭1 INNER JOIN 테이블명2 AS 별칭2 ON 테이블명1.컬럼명 = 테이블명2.컬럼명 [WHERE 검색 조건]
LIKE구문
WHERE 컬럼명 LIKE 'LIKE구문중 하나';
- LIKE 구문 유형
A% = A로 시작하는 문자열 | %A% = A를 포함하는 문자열 | A___= A로 시작하는 4자리 문자 |
%A = A로 끝나는 문자열 | A__ = A로 시작하는 3자리 문자 | [^A] = A가 첫문자가 A아닌 모든 문자열 |
IF절
IF(수량 < 숫자, '기대 결과','비기대 결과') AS '필수여부' FROM 테이블명
CASE WHEN절
CASE WEHN (조건1과 조건1) TEHN '결과1'
WHEN(조건2와 조건2) THEN '결과2'
ELSE '결과3' END AS '정의명'
반복 존재값 찾기
SELECT COUNT(컬럼명) AS cnt, 컬럼명 FROM 테이블명
GROUP BY절
- 조건 처리 후 그룹화 : SELECT 컬럼명 FROM 테이블명 (WHERE 조건식) GROUP BY 컬럼명
- 그룹화 후 조건 처리 : SELECT 컬럼명 FROM 테이블명 GROUP BY 그룹화 컬럼 HAVING 조건절
- 조건처리 하고 컬럼 그룹화 하고 다시 조건 처리 : SELECT 컬럼명 WEHRE 조건식 GROUP BY 컬럼명 HAVING 조건절
WHERE절
GROUP BY 컬럼명 HAVING COUNT(컬럼명) > 중복건수
EX_ 과일 테이블의 동일한 id를 찾기 = SELECT COUNT(ID) AS cnt, id FROM 과일 GROUP BY id HAVING COUNT(id)>1
*그룹된 컬럼에서 숫자가 1개이상 같다 = 중복이다.
데이터 형태 함수
DATE_FORMAT(날짜 혹은 테이블의 컬럼명,'형식') AS 별칭
- 형식
%Y = 4자리년도 | %M = 긴 월 | %d = 2자리 일자 |
%y = 2자리년도 | %b = 짧은 월 | %H = 24시간 |
원하는 년도
SELECT 컬럼 FROM 테이블 WHERE YEAR(컬럼명) = '년도'
*달,일도 엑셀함수와 파라미터명 동일
중복 제거하기
SELECT DISTINCT 컬럼 FROM 테이블 WHERE 조건명 ;
특정 단어 우선 조회
- SELECT 컬럼 FROM 테이블 ORDER BY DECODE(컬럼명, '컬럼 결과할 로우명') 내림혹은 올림차순;
- SELECT 컬럼 FROM 테이블 ORDER BY(CASE WHEN 컬럼명 = '컬럼의 로우명' TEHN 순위 ELES 다른 순위 END)내림림혹은올림차순;
'분석 역량 > 데이터 분석(SQL)' 카테고리의 다른 글
[SQL] MYSQL 알아보기 (0) | 2023.01.03 |
---|---|
[SQL] 자주 쓰지만 헷갈리는! SQL 예제 정리하기 (1) | 2022.12.24 |
PM이 데이터를 알아야 하는 이유 (0) | 2022.12.17 |
[ SQL ] postgreSQL : 불필요한 DB삭제하기 (데이터베이스를 다른 사용자가 액세스하기 시작했습니다 뜨는 경우) (0) | 2022.12.16 |
데이터 베이스와 관리 언어 (0) | 2022.12.15 |