데이터베이스 11

[데이터베이스] JOIN(조인)

1. Join(조인) 이란?- 둘 이상의 테이블을 연결하여 하나의 결과를 만들어 내는 것 1) 전제조건- 연결하고자 하는 테이블들이 적어도 하나의 컬럼을 공유하고 있어야 함 (두 테이블의 조인을 위해서는 기본키(PK)와 외래키(FK) 관계로 맺어져야 함) 2. Join의 종류   1) INNER JOIN교집합기준 테이블과 JOIN 테이블의 중복된 값두 테이블에 모두 지정한 열의 데이터가 있어야 함 # 문법SELECT *FROM TABLE_A A INNER JOIN TABLE_B B ON A.KEY = B.KEYWHERE 조건 # JOIN 완료 후 그 다음 조건 따짐# 단순 문법 - FROM 절에 , 쓰면 INNER JOIN SELECT *FROM TABLE_A A, TABLE_B BWHERE A.KEY ..

데이터베이스 2024.07.10

[데이터베이스] VIEW

[1] VIEW 정의- 대게 SELECT를 위해 사용, 한 개 이상의 기본 테이블이나 다른 뷰를 이용하여 생성되는 가상 테이블- 기존에 생성된 테이블 또는 다른 뷰에서 접근할 수 있는 전체 데이터 중에서 일부만 접근할 수 있도록 제한하기 위한 기법- 뷰를 가상 테이블이라고 하는 이유는 테이블은 디스크 공간이 할당되어 데이터를 저장할 수 있지만, 뷰는 데이터 딕셔너리 테이블에 뷰에 대한 정의만 저장하고 디스크에 저장 공간이 할당되지 않음  [2] VIEW 특징1. 특징- 뷰 자체는 데이터를 갖지 않지만, 기초 테이블의 데이터를 조회하고 수정할 수 있는 창과 같음 (조작도 기본 테이블과 거의 같음)- 뷰는 데이터 값이 아니라 실질적으로는 질의 문장만을 가짐 - 물리적인 테이블을 근거한 논리적인 테이블 (저장..

데이터베이스 2024.07.10

[데이터베이스] RDBMS, NOSQL

[1] Database와 DBMS 그리고 SQL 1.  데이터베이스 (Database)일반적으로 컴퓨터 시스템에 전자 방식으로 저장된 구조화된 정보 또는 데이터의 체계적인 집합을 의미2. 데이터베이스 관리 시스템, DBMS(DataBase Management System)사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해주는 소프트웨어DBMS는 데이터에 대한 많은 보안을 제공하지 않으며 정규화를 수행할 수 없어 높은 중복성을 가질 수 있음 3. SQL(Structured Query Language)관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어  [2] RDB (Relational Database)1. RDB 정의- 관계..

데이터베이스 2024.07.07

[데이터베이스] 기초 개념 정리

[1] 데이터베이스(Database) 1. 정의여러 응용 프로그램 또는 사용자들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 모임데이터베이스는 단순한 저장소를 넘어 데이터 중복이 있을 경우 이를 통합하여 구조적이고 효율적으로 데이터를 저장함데이터베이스는 일반적으로 데이터베이스 관리 시스템(DBMS)에 의해 제어됨대부분의 데이터베이스는 데이터 작성 및 쿼리에 SQL(Structured Query Language)을 사용 2. 데이터베이스의 데이터 특징데이터베이스가 구조적인 형태를 유지하며 데이터를 저장하기 위해 아래와 같은 데이터 저장 규칙이 존재함 통합된 데이터 (Integrated Data)여러가지 데이터를 통합해 저장하는데 중복된 정보가 있다면, 이를 그대로 저장했을 때 용량 낭비라는 비효율적..

데이터베이스 2024.07.07

[SQLD] GROUP BY

1. GROUP BY - 특정 컬럼을 기준으로 그룹화하는 것으로, 합산, 평균, 최고값, 최소값 등의 수치를 확인하기 위해 사용 - 부서별 연봉 평균, 반 시험 최고 점수, 매장별 재고량과 같이 하나의 기준으로 그룹화 시킬 때는 한가지 결과만 확인하면 됨 - 두 가지 이상의 기준으로 GROUP BY를 시켰을 때 (가로 / 세로 : 부서별 / 팀별 연봉, 반별 / 과목별 시험 최고 점수, 매장별 / 카테고리별 재고량 처럼 2개의 기준 존재) 표 형식으로 나타나게 해주는 게 ROLL UP, CUBE, GROUPING SETS SELECT DEPARTMENT_ID, JOB_ID, SUM(SALARY) FROM EMPLOYEES WHERE DEPARTMENT_ID > 80 GROUP BY DEPARTMENT_I..

[SQLD] 서브쿼리

1. 서브쿼리 - 하나의 SQL문에 포함되어 있는 또 다른 SQL문 2. 서브쿼리 사용 시 주의사항 1) 서브쿼리는 괄호로 감싸서 사용 2) 서브쿼리는 단일 행 또는 복수 행 비교 연산자와 함께 사용 가능 3) 서브쿼리에서는 ORDER BY를 사용하지 못함 3. 서브쿼리가 사용 가능한 곳 1) SELECT 절 2) FROM 절 3) WHERE 절 4) HAVING 절 5) ORDER BY 절 6) INSERT 문의 VALUES 절 7) UPDATE 문의 SET 절 ** GROUP BY절에는 사용 불가 4. 서브쿼리의 분류 (WHERE절) * 단일 행 서브쿼리 / 다중 행 서브쿼리의 컬럼은 1개 1) 단일 행 서브쿼리 - 서브쿼리가 단일 행 비교 연산자(=, , =, )와 함께 사용될 때는 서브쿼리의 결과..

[SQLD] 계층형 질의

1. 계층형 질의 - 계층형 데이터를 다루는 쿼리를 수행하는 것 * 계층형 데이터: 동일한 테이블에 계층적으로 상위와 하위 데이터가 포함되어진 데이터 - EX. 사원 테이블에는 사원들의 데이터가 있지만, 분명 사원마다 직급이 있거나 관리자(직속 상관)가 있기 마련 (결과적으로 계층 존재) 2, 용어 1) 루트 노드(루트 데이터) : 가장 최상위 데이터 2) 리프 노드(리프 데이터) : 가장 최하위 데이터 3. 계층형 질의의 형태 SELECT FROM WHERE 조건 START WITH 조건 CONNECT BY [NOCYCLE] 조건 [ ORDER SIBLINGS BY 컬럼명1, 컬럼명2 ... ]; START WITH 절 - 데이터 전개가 시작될 데이터를 지정 CONNECT BY 절 - 자식 데이터를 지..

[SQLD] 순수 관계 연산자

1. 순수 관계 연산자 - 관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자 2. 종류 1) SELECT - 릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만듦 - 릴레이션의 가로(행)에 해당하는 튜플을 구하는 것이므로 수평 연산자라고도 함 - 연산자 기호는 시그마 2) PROJECT - 주어진 릴레이션에서 속성 LIST에 제시된 Attribute (속성)만을 추출하는 연산 - 릴레이션의 세로(열)에 해당하는 Attribute를 추출하는 것이므로 수직 연산자라고도 함 - 연산자의 기호는 파이 3) JOIN - 공통 속성을 중심으로 2개의 릴레이션을 하나로 합쳐 새로운 릴레이션을 만드는 연산 4) DIVISION - X ⊃ Y인 2개의 릴레이..

[SQLD] 집합연산자

1. 집합 연산자 - 조회(SELECT) 쿼리의 결과를 대상으로 연산을 수행하는 연산자 - 조회의 결과를 대상으로 연산을 수행하므로, 여러 개의 SELECT문을 하나의 쿼리로 만드는 연산자라고 할 수 있음 - SELECT절 UNION/UNION ALL SELECT절 형식으로 사용 2. 집합 연산자 종류 1) UNION - 합집합, 중복 제거됨 2) UNION ALL - UNION과 유사, UNION과의 차이점은 중복된 항목까지 모두 조회한다는 것 3) INTERSECT - 교집합 4) MINUS - 차집합 - 먼저 위치한 SELECT문을 기준으로, 다른 SELECT문과 공통된 레코드를 제외한 항목만 추출 3. 사용 시 주의할 점 1) SELECT문들은 같은 개수의 컬럼을 조회해야만 함 2) SELECT문..