반응형

분류 전체보기 141

[SQLD] SQL 기본 및 활용 Section 02. SQL 활용 (2) 그룹 함수부터

4. 그룹 함수 (Group Function) 01. ROLLUP GROUP BY의 칼럼에 대해 Subtotal을 만들어 줌 ROLLUP함수는 뒤에 오는 칼럼의 순서에 따라 서브토탈을 다르게 만들 수 있다. 즉, 칼럼 순서가 중요하다 ROLLUP(COL1, COL2)일 경우 COL1별 합계, COL1별 COL2 합계, 전체 합계가 조회되며, 반대의 경우에는 COL2별 합계, COL2별 COL1합계, 전체 합계가 조회됨 CREATE TABLE DEPT ( DEPTNO NUMBER(10) PRIMARY KEY, DEPTNAME VARCHAR2(20) ); INSERT INTO DEPT VALUES (1000, '총무부'); INSERT INTO DEPT VALUES (1001, '기획부'); INSERT I..

[SQLD] SQL 기본 및 활용 Section 02. SQL 활용 (1) 조인부터 서브쿼리

1. 조인(JOIN) 01. EQUI JOIN (1) EQUI JOIN 여러 개의 릴레이션을 사용해 새로운 릴레이션을 만듦 EQUI JOIN은 어떤 칼럼을 기준으로 두 개의 테이블 간의 교집합을 산출함 CREATE TABLE DEPT ( DEPTNO NUMBER(10) PRIMARY KEY, DEPTNAME VARCHAR2(20) ); CREATE TABLE EMP ( EMPNO NUMBER(10) PRIMARY KEY, ENAME VARCHAR2(20), DEPTNO_ID NUMBER(10) NOT NULL, SAL NUMBER(20), CONSTRAINT DEPT_PK FOREIGN KEY (DEPTNO_ID) REFERENCES DEPT(DEPTNO) ON DELETE CASCADE ); INSER..

[SQLD] SQL 기본 및 활용 Section 01. SQL 기본 (3) 내장형 함수부터 끝까지

9. 내장형 함수 ( BUILT-IN FUNCTION ) 모든 데이터베이스는 SQL에서 사용할 수 있는 내장형 함수를 가짐 DBMS 벤더별로 약간의 차이가 있지만 거의 비슷한 방법으로 사용이 가능함 내장형 함수로는 형변환 함수, 문자열 및 숫자형 함수, 날짜형 함수 등이 있음 01. DUAL 테이블 DUAL 테이블은 오라클 데이터베이스에 의해 자동으로 생성되는 테이블임 오라클 데이터베이스 사용자가 임시로 사용할 수 있는 테이블로 내장형 함수를 실행할 때도 사용 가능함 모든 사용자에게 공유되는 특별한 단일 행 테이블로서 주로 상수, 순수 함수, 다른 SQL 표현식의 결과값을 조회할 때나 테스트 쿼리나 일시적인 결과를 생성할 때 사용함 SELECT * FROM DUAL; SELECT SYSDATE FROM ..

[SQLD] SQL 기본 및 활용 Section 01. SQL 기본 (2) DML부터 형변환까지

4. DML ( Data Manipulation Language ) 01. INSERT 일반적인 데이터 삽입 SELECT * FROM EMP; INSERT INTO EMP VALUES (5, '강순자', 700, '1002', sysdate); SELECT * FROM EMP; 테이블에 행(튜플)을 삽입하기 위해서는 INSERT INTO ~ VALUES (~) 구문을 사용하면 된다. INSERT INTO EMP(EMPNO, ENAME, DEPTNO_ID) VALUES (6, '곽민재', '1001'); 위와 같이 일부 열(칼럼)만 선택해서 데이터를 삽입할 수 있다. 다만 빠진 열에 not null 제약조건이 있을 경우 오류가 발생한다. ❗ INSERT문을 실행했다고 데이터 파일에 저장되는 것은 아니며, ..

[SQLD] SQL 기본 및 활용 Section 01. SQL 기본 (1) SQL기초와 DDL까지

1. 관계형 데이터베이스(Relation Database) 01. 관계형 데이터베이스 1970년대 E.F. Codd박사의 논문에서 처음 소개된 데이터베이스로 릴레이션(Relation)과 릴레이션의 조인 연산을 통해 합집합, 교집합, 차집합 등을 만들 수 있는 특징이 있다. 현재 기업에서 가장 많이 사용하는 데이터베이스로 Oracle, MS-SQL, MySQL, Sybase등의 다양한 RDBMS가 있다 관계형 데이터베이스 집합 연산과 관계 연산 집합 연산 집합 연산 설명 합집합(Union) - 두 개의 릴레이션을 하나로 합하는 것 - 중복된 행(튜플)은 한 번만 조회 차집합(Difference) - 본래 릴레이션에는 존재하지만 다른 릴레이션에는 존재하지 않는 튜플을 조회 교집합(Intersection) -..

[SQLD] 데이터 모델링의 이해 Section 02. Data Model and Performance

1. 정규화 ( Normalization ) 01. 정규화 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법 데이터를 분해하는 과정 반정규화 데이터 중복을 제거하고 데이터 모델의 독립성을 확보함 테이블을 분해해서 각 테이블들의 관련성을 최소화하기 때문에 데이터 모델의 유연성을 높임 따라서 정규화를 수행하면 비즈니스에 변화가 발행해도 데이터 모델의 변경을 최소화 가능 제1정규화~제5정규화까지 있지만 보통 제3정규화까지만 수행 🔍정규화를 수행하지 않으면 부서 테이블과 직원 테이블이 하나로 합쳐져 있을 수 있다. 그러면 어떤 직원의 부서가 아직 정해지지 않았을 때 부서 코드를 임의로 할당해야 하는 등의 문제가 발생한다. 이러한 문제를 이상현상(Anormaly)이라고 함 🎯 정규화 절..

[SQLD] 데이터 모델링의 이해 Section 01. Data Modeling

1. 데이터 모델링의 이해 01. 데이터 모델링 현실 세계를 가상 공간인 데이터베이스로 표현하기 위해 추상화하는 것 데이터 모델링을 하기 위해서는 고객과의 의사소통을 통해 고객의 업무 프로세스를 완전히 이해해야 함 고객의 업무 프로세스를 이해하고 난 뒤에 데이터 모델링 표기법을 사용해서 모델링함. 고객이 쉽게 이해할 수 있도록 복잡하지 않게 모델링 되어야 함 고객의 업무 프로세스를 추상화하고, 소프트웨어를 분석, 설계해 가면서 점점 더 상세해짐 고객의 비지니스 프로세스를 이해하고 비지니스 프로세스의 규칙을 정의한다. 정의된 비지니스 규칙을 데이터 모델로 표현함. 🔍데이터 모델링 표기법 바커 표기법 (Baker Notation) - 영국 컨설팅 회사 CACI에서 처음 개발되었고 바커에 의해 지속적으로 발전..

[코딩테스트] 2021 Dev-Matching: 웹 백엔드 개발자(상반기)다단계 - 칫솔 판매

문제 https://school.programmers.co.kr/learn/courses/30/lessons/77486 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 칫솔을 판매하는 다단계 업체에서 위쪽으로 10%씩 떼어줘야 할 때, 각 사람이 가질 돈을 구하는 문제 칫솔 하나당 100원이며, 10%를 떼어주는 금액이 1원 미만이면 떼어주지 않아도 된다. seller, amount의 묶음, 즉 판매량에 seller가 중복해서 들어있을 수 있다. 하지만 seller의 판매 금액을 합쳐서 한번에 계산하면 안된다. 따로따로 계산했을 때 10%가 1원 미만이 되..

[Data Structure] Linear - (2) Linked List - Singly Linked List

링크드 리스트는 파이썬의 리스트처럼 선형 자료 구조로서, 데이터를 순서대로 저장할 수 있고 계속해서 요소를 추가할 수 있다. 이는 데이터와 다음 노드에 대한 레퍼런스를 가진 노드를 사용해 구현하는데, 노드들은 메모리 공간 여기저기 흩어진 상태로 저장되지만 각 노드에는 다음 노드나 이전 노드에 대한 레퍼런스를 가지고 있어서 선형적으로 다음 노드를 탐색할 수 있는 특징이 있다. 싱글리 링크드 리스트 (Singly Linked List) 노드들이 다음 노드에 대한 레퍼런스만을 가진 링크드 리스트를 싱글리 링크드 리스트라고 한다. 다음 노드에 대한 레퍼런스를 가지고 있기 때문에 한 방향으로 탐색할 수 있는 특징이 있다. 노드(Node) class Node: """노드 클래스""" def __init__(self..

[Data Structure] Linear - (1) Array

파이썬 리스트는 c의 배열을 이용해 만들어졌다. 두 자료구조의 큰 차이점은 정적 배열(Static Array)이냐 동적 배열(Dynamic Array)이냐다. c의 배열은 정적배열로서, 처음에 메모리에 배열의 크기를 정해놓고 시작한다. 즉, 크기가 고정되어 있다. 반대로 파이썬의 리스트는 동적배열로, append()메소드를 이용해 데이터를 추가할 때마다 배열의 크기가 가변적으로 늘어날 수 있고 반대로 del 예약어 등으로 크기가 자동적으로 줄어들 수도 있다. 01. 정적 배열 vs 동적 배열 (Static Array versus Dynamic Array) 위에 언급한 것처럼 c의 배열은 정적 배열이고, c의 배열을 이용해 만든 파이썬의 리스트는 동적 배열이다. 정적 배열 우선 c의 배열은 int newA..

반응형