본문 바로가기

데이터베이스9

[SQLD] 관리 구문 - DML TCL DDL DCL 01 DML DML은 Data Manipulation Language란 의미로 DDL에서 정의한 대로 데이터를 입력하고, 입력된 데이터를 수정, 삭제, 조회하는 명령어이다. INSERT 테이블에 데이터를 입력하는 명령어이다. INSERT INTO 테이블명 (컬럼명1, 컬럼명2, ...) VALUES (데이터1, 데이터2, ....); INSERT INTO 테이블명 VALUES (전체 컬럼에 입력될 데이터 리트스); UPDATE 이미 저장된 데이터를 수정하고 싶을 때 사용하는 명령어이다. WHERE 절이 없으면 테이블의 모든 Row가 변경되니 주의해야 한다. UPDATE 테이블명 SET 컬럼명 = 새로운 데이터(WHERE 수정할 데이터에 대한 조건); DELETE 이미 저장된 데이터를 삭제하고 싶을 대 사.. 2023. 8. 24.
[SQLD] SQL 활용 (3) - Top-N 쿼리, 셀프 조인, 계층 쿼리 06 Top-N 쿼리 ROWNUM Oracle의 ROWNUM은 슈도 컬럼(Pseudo Column)이다. Pseudo는 사전적 의미로 '가짜'라는 뜻을 가지 있다. ROWNUM은 실제로는 존재하지 않는 가짜 컬럼이라고 대답할 수 있다. ROWNUM은 항상 < 조건이나 2023. 8. 24.
[SQLD] SQL 활용 (2) - 그룹 함수, 윈도우 함수 04 그룹 함수 데이터를 GROUP BY 하여 나타낼 수 있는 데이터를 구하는 함수이다. ROLLUP 소그룹 간의 소계 및 총계를 계산하는 함수 ROLLUP(A) A로 그룹핑 총합계 ROLLUP(A, B) A, B로 그룹핑 A로 그룹핑 총합계 ROLLUP(A, B, C) A, B, C로 그룹핑 A, B로 그룹핑 A로 그룹핑 총합계 CUBE 소그룹 간의 소계 및 총계를 다차원적으로 계산할 수 있는 함수이다. GROUP BY가 일방향으로 그룹핑하며 소계를 구했다면 CUBE는 조합할 수 있는 모든 그룹에 대한 소계를 집계한다. CUBE(A) A로 그룹핑 총합계 CUBE(A, B) A, B로 그룹핑 A로 그룹핑 B로 그룹핑 총합계 CUBE(A, B, C) A, B, C로 그룹핑 A, B로 그룹핑 A, C로 그룹.. 2023. 8. 22.
[SQLD] SQL 활용 (1) - 서브쿼리, 뷰, 집합연산자 01 서브쿼리(Subquery) 하나의 쿼리 안에 존재하는 또 다른 쿼리이다. 서브쿼리는 위치에 따라 다음과 같이나 나눌 수 있다. SELECT 절 스칼라 서브쿼리(Scalar Subquery) FROM 절 인라인 뷰(Inline View) WHERE 절, HAVING 절 중첩 서브쿼리(Nested Subquery) 스칼라 서브쿼리 주로 SELECT 절에 위치하지만 컬럼이 올 수 있는 대부분 위치에 사용할 수 있다. 컬럼 대신 사용되므로 반드시 하나의 값만을 반환해야 하며 그렇지 않은 경우 에러를 발생시킨다. 인라인 뷰 FROM 절 등 테이블명이 올 수 있는 위치에 사용 가능하다. 중첩 서브쿼리 WHERE 절과 HAVING 절에 사용할 수 있다. 중첩 서브쿼리는 메인 쿼리와의 관계에 따라 다음과 같이 나.. 2023. 8. 20.
[SQLD] SQL 기본 (3) 07 JOIN JOIN 이란? 조인은 각기 다른 테이블을 한 번에 보여줄 때 쓰는 쿼리이다. EQUI JOIN EQUI JOIN은 Equal(=) 조건으로 JOIN하는 것으로 가장 흔히 볼 수 있는 JOIN의 방식이라고 할 수 있다. Non EQUI JOIN Non EQUI JOIN은 Equal(=) 조건이 아닌 다른 조건(BETWEEN, >, >=, 2023. 8. 19.
[SQLD] SQL 기본 (2) 04 WHERE 절 INSERT를 제외한 DML 문을 수행할 때 원하는 데이터만 골라 수행할 수 있도록 해주는 구문이다. 비교 연산자 연산자 의미 = 같음 = 크거나 같음 부정 비교 연산자 연산자 의미 != 같지 않음 ^= 같지 않음 같지 않음 not 컬럼명 = 같지 않음 not 컬럼명 > 크지 않음 SQL 연산자 연산자 의미 BETWEEN A AND B A와 B의 사이(A, B 포함) LIKE '%비교 문자열%' 비교 문자열을 포함 IN (LIST) LIST 중 하나와 일치 IS NULL NULL 값 부정 SQL 연산자 연산자 의미 NOT BETWEEN A AND B A와 B의 사이가 아님(A, B 미포함) NOT IN (LIST) LIST 중 일치하는 것이 없음 IS NOT NULL NULL 값이 아.. 2023. 8. 19.
[SQLD] SQL 기본 (1) 01 관계형 데이터베이스 개요 관계형 데이터베이스 관계형 데이터베이스의 설계는 모든 데이터를 2차원 테이블 형태로 표현한 뒤 각 테이블 간의 관계를 정의한 것으로 시작된다. TABLE 항목을 나타내는 각각의 세로 열을 컬럼(Column)이라고 하고 각각의 가로 행을 로우(Row)라고 한다. SQL(Structured Query Language) SQL은 관계형 데이터베이스에서 데이터를 다루기 위해 사용하는 언어이다. 02 SELECT 문 SELECT 저장되어 있는 데이터를 조회하고자 할 때 사용하는 명령어 SELECT * FROM 테이블; 산술 연산자 수학에서 사용하는 사칙연산의 기능을 가진 연산자이다. 연산자 의미 우선순위 () 괄호로 우선순위를 조정할 수 있음 1 * 곱하기 2 / 나누기 + 더하기 .. 2023. 8. 18.
[SQLD] 데이터 모델과 SQL 01 정규화 데이터의 정합성(데이터의 정확성과 일관성을 유지하고 보장)을 위해 엔터티를 작은 단위로 분리하는 과정이다. 제1정규형 모든 속성은 반드시 하나의 값만 가져야 한다. 제2정규형 엔터티의 모든 일반속성은 반드시 모든 주식별자에 종속되어야 한다. 제3정규형 주식별자가 아닌 모든 속성 간에는 서로 종속될 수 없다. 주의사항 적절한 정규화는 성능상 이롭지만 지나친 정규화는 오히려 성능 저하를 일으킬 수 있다. 02 반정규화 데이터의 조회 성능을 향상시키기 위해 데이터의 중복을 허용하거나 데이터를 그룹핑하는 과정이다. 반정규화 과정은 정규화가 끝난 후 거치게 된다. 데이터 정합성 이슈가 발생할 수 있다. 테이블 반정규화 테이블 병합 테이블 분할 테이블 추가 컬럼 반정규화 중복 컬럼 추가 파생 컬럼 추가.. 2023. 8. 17.
[SQLD] 데이터 모델링의 이해 01 데이터 모델의 이해 모델링이란? 데이터베이스의 모델링은 '현실 세계를 단순화하여 표현하는 기법'이다. 모델은 현실 세계에서 일어날 수 있는 다양한 현상에 대해서 일정한 표기법에 의해 표현해 놓은 모형 모델링은 이런 모델을 만들어가는 일 모델링이 갖춰야 할 조건 현실세계를 반영해야 한다. 단순화하여 표현해야 한다. 관리하고자 하는 데이터를 모델로 설계한다. 모델링의 특징 추상화 단순화 명확화 모델링의 세 가지 관점 데이터 관점 프로세스 관점 데이터와 프로세스의 상관 관점 모델링의 세 가지 단계 개념적 데이터 모델링 논리적 데이터 모델링 물리적 데이터 모델링 3단계 스키마 구조 외부스키마 - 사용자의 관점 개념스키마 - 통합된 관점 내부스키마 - 물리적인 관점 3단계 스키마 구조가 보장하는 독립성 논리.. 2023. 8. 16.