본문 바로가기

728x90

1. Programming

(17)
[SQLD: PART 2] 관리 구문 본 포스팅은 SQLD 자격증 취득을 위해 공부한 내용을 정리하기 위한 포스팅입니다.1. DML(Data Manipulation Language)1. INSERT2. UPDATE3. DELETE4. MERGE2. TCL(Transaction Control Language)원자성일관성고립성지속성1. COMMIT2. ROLLBACK3. SAVEPOINT3. DDL(Data Definition Language)ORACLE의 경우 DDL은 ROLLBACK이 불가능하다.(AUTO COMMIT)1. CRATE컬럼에 대한 정의는 괄호( ) 안에 명시한다. 테이블명과 컬럼명은 숫자로 시작할 수 없다.2. ALTER(1) ADD COLUMN(2) DROP COLUMN(3) MODIFY COLUMN(4) RENAME COL..
[SQLD: PART 2] SQL 활용 본 포스팅은 SQLD 자격증 취득을 위해 공부한 내용을 정리하기 위한 포스팅입니다.1. 서브 쿼리1. SELECT 절: 스칼라 서브쿼리2. FROM 절: 인라인 뷰3. WHERE, HAVING 절: 중첩 서브쿼리 2. 중첩 서브 쿼리1. 비연관 서브쿼리2. 연관 서브쿼리(1) 단일 행 서브쿼리(2) 다중 행 서브쿼리(3) 다중 컬럼 서브쿼리3. 뷰(VIEW)보안성: 보안이 필요한 컬럼을 가진 테이블의 경우 해당 컬럼을 제외한 별도의 VIEW를 생성하여 제공함으로써 보안을 유지할 수 있다.독립성: 테이블 스키마가 변경되었을 경우 애플리케이션은 변경하지 않고 관련 VIEW만 수행한다.편리성: 복잡한 쿼리 구문을 VIEW명으로 단축시킴으로써 가독성을 높이고 편리하게 사용할 수 있다.4. 집합 연산자1. UNI..
[SQLD: PART 2] SQL 기본 본 포스팅은 SQLD 자격증 취득을 위해 공부한 내용을 정리하기 위한 포스팅입니다.1. 산술 연산자 (), *, /, +, -, %/의 경우 0으로 나눌 경우 ERROR 발생 %의 경우 0으로 나눈 나머지의 경우 NULL을 반환 2. 문자 함수1. CHR()2. LOWER(문자열)3. UPPER(문자열)4. LTRIM(문자열[, 특정문자])5. RTRIM(문자열[, 특정문자])6. TRIM([위치][특정문자][FROM]문자열): 위치의 경우 LEADING, TRAILING, BOTH7. SUBSTR(문자열, 시작점[, 길이])8. LENGTH(문자열)9. REPLACE(문자열, 변경 전 문자열[. 변경 후 문자열]) ex) REPLACE('블랙핑크‘, ’블랙‘) = ’핑크‘10. LPAD(문자열, 길이,..
[SQLD: PART 1] 데이터 모델링의 이해 본 포스팅은 SQLD 자격증 취득을 위해 공부한 내용을 정리하기 위한 포스팅입니다.1. 모델링 현실 세계의 비즈니스 프로세스와 데이터 요구 사항을 추상적이고 구조화된 형태로 표현하는 과정을 뜻한다.추상화단순화명확화1. 데이터 모델링의 세 가지 관점(1) 데이터 관점(2) 프로세스 관점(3) 데이터와 프로세스의 상관 관점2. 모델링시 유의해야 할 점(1) 중복: 같은 데이터가 여러 엔터티에 중복으로 저장되는 현상을 지양한다.(2) 비유연성: 데이터 모델과 프로세스를 분리하여 유연성을 높여야 한다.(3) 비일관성: 데이터 간의 연관 관계에 대해 명확히 정의해야 한다.3. 모델링의 세 가지 단계(1) 개념적 데이터 모델링: 추상화 레벨이 가장 높다.(2) 논리적 데이터 모델링: 재사용성이 가장 높다.(3) 물..
[SQLD: PART 1] 데이터 모델과 SQL 본 포스팅은 SQLD 자격증 취득을 위해 공부한 내용을 정리하기 위한 포스팅입니다.1. 정규화 엔터티를 작은 단위로 분해하는 과정을 말한다. 입력, 수정, 삭제 성능은 일반적으로 향상되지만, 데이터 조회 성능은 처리조건에 따라 향상되는 경우도 있고 저하되는 경우도 있다.1. 제 1 정규화(원자성) 모든 속성은 반드시 하나의 속성값만 가져야 한다.2. 제 2 정규화 엔터티의 모든 일반속성은 반드시 모든 주식별자에 종속되어야 하며, 제 1정규형에서 완전 함수 종속을 만들도록 한다. PK가 2개 이상일때 발생하며 PK 일부와 종속되는 경우가 있다면 분리해야 한다.3. 제 3 정규화 주식별자가 아닌 모든 속성 간에는 서로 종속될 수 없으며, 제 2 정규형에서 이행적 종속을 없애도록 한다. 이행적 종속이란 A-..
[Baekjoon] 2156번: 포도주 시식(Dynamic Programming) # Baekjoon 2156번: 포도주 시식import sysinput = sys.stdin.readlineN = int(input())cost = []dp = [0] * Nfor i in range(N): cost.append(int(input()))if N == 1: dp[0] = cost[0]elif N == 2: dp[1] = cost[0] + cost[1]else: dp[0] = cost[0] dp[1] = cost[0] + cost[1] dp[2] = max(cost[0] + cost[2], dp[1], cost[1] + cost[2])for i in range(3, N): dp[i] = max(dp[i-2] + cost[i], dp[i-3] + cost[..
[Baekjoon/Python] 1149번: RGB거리(Dynamic Programming) # Baekjoon 1149번: RGB거리import sysinput = sys.stdin.readlineN = int(input())RGB = []dp = [[0]*3 for _ in range(N+1)]for i in range(N): cost = list(map(int, input().split())) RGB.append(cost)dp[0][0] = RGB[0][0]dp[0][1] = RGB[0][1]dp[0][2] = RGB[0][2]for i in range(1, N): dp[i][0] = min(dp[i-1][1], dp[i-1][2]) + RGB[i][0] dp[i][1] = min(dp[i-1][0], dp[i-1][2]) + RGB[i][1] dp[i][2] =..
[Baekjoon/Python] 10026번: 적록색약(BFS) # Baekjoon 10026번: 적록색약import syssys.setrecursionlimit(10**9)from collections import dequeinput = sys.stdin.readlineN = int(input())painting = [[] for _ in range(N)]nor_visited = [[] for _ in range(N)]abnor_visited = [[] for _ in range(N)]normal, abnormal = 0, 0for i in range(N): paint = input().rstrip() for j in paint: painting[i].append(j) nor_visited[i].append(0) ab..

728x90