Database/SQL

· Database/SQL
LAG이전(과거 시점) 행의 값을 반환.전년/전월/전일 대비직전 상태와 비교하고자 할 때 기본 구조LAG(컬럼, offset, default) OVER (PARTITION BY ... ORDER BY ...)`offset` : 몇 칸 전을 확인할지(디폴트값 = 1)`default` : 값이 없을때 반환할 값(생략 가능, 생략할 경우 `NULL`) LEAD다음(미래 시점) 행의 값을 반환한다.다음 시점까지의 간격다음 값과 비교 기본 구조LEAD(컬럼, offset, default) OVER (PARTITION BY ... ORDER BY ...)`offset` : 몇 칸 뒤를 확인할지(디폴트값 = 1)`default` : 값이 없을때 반환할 값(생략 가능, 생략할 경우 `NULL`) ..
· Database/SQL
기본적으로 SQL은 반복을 하지 못하기 때문에, 가령 1부터 10까지의 숫자를 만들고 싶을 떄가 참 난감하다.이런 경우에 대응해서 사용할 수 있는 문법이 바로 `WITH RECURSIVE` 문이다. WITH RECURSIVE자기 자신을 계속 다시 불러오면서 결과를 한 줄 씩 쌓을 수 있는 재귀문 기본 구조언제 멈출지는 ②반복 부분의 `WHERE`절 조건으로 결정한다.WITH RECURSIVE 이름 AS ( -- ① 시작값 (anchor), 비반복문 SELECT FROM UNION ALL -- ② 반복 부분 (recursive) SELECT FROM WHERE -- 반복문 탈출 조건)SELECT * FROM 이름; 예제1) 7일치 날짜 만들기WITH RECURSIVE date..
· Database/SQL
1. CASE WHEN ~ ENDCASE WHEN 조건1 THEN 값1 WHEN 조건2 THEN 값2 .. ELSE 값END AS 별칭 ** `THEN` 뒤에 올 수 있는 값들의 형태는 아래와 같이 올 수 있으나, 주의할 점은 서로 값1, 값2, ... 값N이 모두 동일한 타입이어야 한다.숫자문자열컬럼계산식 (ex. `column * 2`)함수 (ex. `IFNULL(column, 0)`) 2. IF: 조건이 참이라면 참일때 값을, 아니라면 거짓일때 값을 출력한다. (중첩 사용 가능)SELECT IF(조건, 참일때값, 거짓일때값) AS 별칭 3. IFNUILL: 컬럼값이 `NULL`이면 대체값을, 아닐 경우 해당 컬럼값을 출력한다. (중첩 사용 가능)SELECT IFNULL(컬럼명, 대체값) ..
· Database/SQL
REGEXP정규 표현식을 이용해서 데이터를 찾는 연산자WHERE 컬럼 REGEXP '패턴'► 컬럼값이 정규표현식의 패턴과 일치하면 `TRUE`를, 일치하지 않으면 `FALSE`를 반환한다. 정규 표현식(Regular Expression)이란?문자열에서 특정 패턴을 만족하는 부분을 찾을 때 사용하는 형식 언어 대표 정규표현식1. `^` : 문자열의 시작을 표현함-- 컬럼값 중 A로 시작하는 행WHERE 컬럼명 REGEXP '^A' 2. `$` : 문자열의 끝을 표현함-- 컬럼값 중 A로 끝나는 행WHERE 컬럼명 REGEXP 'A$' 3. `.` : 임의의 문자 1개를 표현함-- 컬럼값 중 길이가 3인 문자열을 가진 행WHERE 컬럼명 REGEXP '^...$' 4. `[]` : 문자 집합을 표..
· Database/SQL
비트 연산이란?정수를 2진수(bit) 단위로 쪼개서 연산하는 것 비트 연산자** SQL에서는 변환할 정수를 2진수로 바꾸지 않고도 비트 연산자를 사용할 수 있다. 1. AND (`&`): 둘다 1이면 1-- 5 = 0101 (2진수)-- 3 = 0011 (2진수)SELECT 5 & 3; -- 10101 & 0011 → 0001 (1) 2. OR(`|`): 하나라도 1이면 1SELECT 5 | 3; -- 70101 | 0011 → 0111 (7) 3. XOR(`^`): 서로 다르면 1, 같으면 0SELECT 5 ^ 3; --60101 ^ 0011 → 110 (6) 4. NOT(`~`): 0이면 1을, 1이면 0으로 정반대SELECT ~5; -- 2SELECT ~3; -- 4~0101 → 10 (2)~..
· Database/SQL
이제 본격적으로 실습했던 것들 복습해보자. 나는 csv파일을 불러와서 실습하고 싶었을 뿐인데, 스키마 만드는 법조차 모르니까 너무 헤맸다.. 🥲 (강의에서는 그냥 실습부터 시작하기도 했고 Workbench가 아니라 MariaDB로 사용해서 참고하기가 어려웠다.) 마침 딱 실습하려던 캐글 csv파일로 튜토리얼을 알려주는 유튜브 영상이 있어서 참고했다. (아래 링크 참고) 1. MySQL Workbench를 열어보자. 제일 처음 보이는 화면에서 (+) 버튼을 누른다. 2. 'Connection Name'에 새로운 연결 이름을 입력해준다. 나머지 항목들은 따로 건들지 말고 'Test Connection' 버튼을 눌러준다. 'Connection Warning (Local instance 3306' 이라는 경고창..
· Database/SQL
MySQL Workbench는 MySQL에서 공식적으로 제공하는 GUI 기반의 MySQL 클라이언트 프로그램이다. 설치하는 방법은 유튜브 '생활코딩'님의 영상을 참고했다. 나는 초보자 입장에서 (나중에 내가 보기 편하게) 설치 튜토리얼을 작성할 예정이기 때문에, 혹시 내 블로그 설명이 부족하다고 느끼는 분들은 아래 링크를 참고하면 좋을 것 같다. [🔗 Youtube '생활코딩' - DATABASE2 MySQL - 20.MySQL Workbench] 필자는 코드잇 홈페이지도 참고했는데, 자세하게 설명되있기도 하고 작성일자가 비교적 최근이라 설치하면서 보여지는 화면들이 제일 비슷했다. 🔗 참고 링크 : https://www.codeit.kr/tutorials/12/MySQL-Workbench-%EC%84%A..
상급닌자연습생
'Database/SQL' 카테고리의 글 목록