1. 정규화 : 중복 없애기- 중복 시 생기는 문제: 이상현상- 왜 해야할까? 데이터의 무결성을 지키기 위해 2. DB 설계- 디자인 보고 기능별로 저장해야하는 데이터 파악하기(UI가 나오기 전이라면, 요구사항 정의서를 보고 파악)- 그룹핑해서 분류하기 (상위개념 찾기)[예시] - 아이디, 패스워드, 이름, 이메일 : 사용자- 게시글 제목, 게시글 내용, 게시글 생성 시간 : 게시글- 6가지 규칙에 의해 테이블(엔티티) 분리시키기 [ 규칙1. 한칸에는 한가지 정보만(제1정규형) ]- 여러 정보가 들어갈 경우 데이터를 추출하고 또 가공해야해서 실수를 할 수 있다.※ 한가지 정보: 서비스에서 데이터의 사용 방식에 따라 다르다 (성, 이름이 따로 필요한 경우 따로 저장) [잘못된 예] 이메일 칸에 2가지 정보..
리트코드 Curated SQL 70 중 Medium 1) case이용select stock_name, sum(case when operation = "BUY" then -price else price end ) as capital_gain_lossfrom Stocksgroup by stock_name 2) self join 이용with grouped as (select stock_name, operation, sum(price) as price from Stocks group by stock_name, operation order by stock_name, o..
리트코드 Curated SQL 70 중 Medium 1. 윈도우 함수 기본 구조() OVER ( [PARTITION BY ] [ORDER BY ] [ROWS/RANGE ]) 2. 주요 요소1) FUNCTION_NAME: SUM, AVG, ROW_NUMBER, RANK 등2) OVER : 윈도우 함수를 사용하는 것을 나타내며, 뒤에 윈도우 정의를 포함3) PARTITION BY : 선택사항, 데이터를 특정 그룹으로 나눔. 그룹별로 윈도우 함수가 계산 됨4) ORDER BY : 선택사항, 데이터를 정렬하여 계산 순서를 지정5) ROWS/ RANGE : 선택사항: 윈도우의 범위를 지정, 특정 행 또는 범위 내에서 계산 3. 마지막 버스 탑승객select person_namefrom (se..
프로그래머스 SQL 고득점 kit 14일차( String, Date 6문제) 1. 문자열 중간에 특정 문자 삽입 : INSERT(원본 문자열, 새 문자열을 삽입할 위치, 대체할 문자길이, 삽입할 문자열)- 위치는 1부터 시작,- 0: 기존문자열을 삭제하지 않고 삽입만 함- n: 해당 길이만큼 기존 문자열을 대체SELECT INSERT('01053422914', 4, 3, '-') AS result;# 010-22914## 534을 -로 대체- 조건에 맞는 사용자 정보 조회하기SELECT B.WRITER_ID, U.NICKNAME, CONCAT(U.CITY,' ',U.STREET_ADDRESS1,' ',STREET_ADDRESS2 ) AS 전체주소, INSERT(INSERT(TLNO,..
프로그래머스 SQL 고득점 kit 13일차( JOIN 5문제, String, Date 13문제) 1. 날짜에 단순히 + / - 를하면, 문자열을 정수변환해서 잘못 계산한다20220916 - 20220807 = 109 2. 날짜/시간의 계산1) 빼기- 날짜: DATEDIFFSELECT DATEDIFF('2022-09-16', '2022-08-07') AS days_difference;# 40- 시간: TIMESTAMPDIFF-- 두 날짜의 시간 단위 차이SELECT TIMESTAMPDIFF(HOUR, '2022-08-07', '2022-09-16') AS hours_difference; 2) 더하기: DATE_ADD (SQL표준) 또는 ADDATE(MYSQL)-- 10일 더하기SELECT DATE_ADD..
프로그래머스 SQL 고득점 kit 12일차( GROUP BY 1문제, JOIN 7문제 ) 1. ON에 AND 사용 가능- 여러 조건을 동시에 만족해야 하는 경우 사용(필요하지 않은 데이터 배제)- ON에 있는 경우, 조건이 두 테이블의 연결 기준으로 작용, WHERE에 있는 경우 모든 데이터를 연결한 후 필터링 2. 특정기간동안 대여 가능한 자동차들의 대여 비용 구하기- 2022-11-01에서 2022-11-30 동안 대여 가능한 차량 조회- 1번의 경우 중복이 발생할 수 있다. 합집합이 아닌 교집합인 2번 방법을 사용# 1번(START_DATE BETWEEN '2022-01-01' AND '2022-11-30')OR (END_DATE BETWEEN '2022-01-01' AND '2022-11-30'..
프로그래머스 SQL 고득점 kit 11일차( GROUP BY 1문제) 1. JOIN 시 ON 조건에 비트연산(&)을 활용하면 특정 조건에서 하나라도 포함하는 조건의 열을 가져올 수 있다.SELECT D.EMAIL, BIN(D.SKILL_CODE) AS SKILL_CODE, C.NAME, BIN(C.CODE) AS CODEFROM DEVELOPERS DLEFT JOIN SKILLCODES CON (D.SKILL_CODE & C.CODE) != 0- 출력 결과EMAILSKILL_CODENAMECODEJERAMI_EDWARDS@GREPP.CO110010000Python100000000JERAMI_EDWARDS@GREPP.CO110010000Java10000000JERAMI_EDWARDS@GREPP.CO110..
- Total
- Today
- Yesterday
- 고득점 Kit
- 오블완
- 줄넘기
- C언어
- SQL
- opic
- 30분
- 습관
- 갓생
- ChatGPT
- 스크랩
- 영어회화
- 미라클모닝
- 뉴스
- 아침운동
- Python
- IH
- 루틴
- 오픽
- 운동
- 경제
- llm
- 아침
- 다이어트
- 실기
- 기초
- 빅데이터 분석기사
- 티스토리챌린지
- 프로그래머스
- Ai
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |