SQL 10

[데이터베이스] 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

[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문..

[SQLD] DDL (데이터 정의어)

[1] DDL (Data Definition Language, 데이터 정의어) 1. 정의 - 데이터베이스를 정의하는 언어를 말하며, 데이터를 생성하거나 수정, 삭제 등 데이터의 전체 골격을 결정하는 역할의 언어 - DDL의 대상은 스키마, 도메인, 테이블, 뷰, 인덱스 등 - 입력하는 순간 즉시 COMMIT 됨 (AUTO COMMIT) 2. CREATE - 데이터베이스를 만들거나, 테이블, VIEW를 만들 때 사용되는 명령 CREATE DATABASE (데이터베이스 이름); CREATE TABLE (테이블 이름) { 컬럼명1, 컬럼 타입1 (제약조건), 컬럼명2, 컬럼 타입2 (제약조건)}; 3. ALTER - 기존에 저장된 데이터베이스, 테이블 등의 구조를 수정하는 데 사용되는 명령어 ALTER TAB..

[정보처리기사 필기] SW 개발 : 절차형 SQL

정보처리기사 필기 2과목 - 소프트웨어 개발 : 절차형 SQL P.222 [1] 개요 - C, JAVA 등의 프로그래밍 언어와 같이 연속적인 실행이나 분기, 반복 등의 제어가 가능한 SQL - 일반적인 프로그래밍 언어에 비해 효율이 떨어짐 - 연속적인 작업들을 처리하는 데 적합 - BEGIN ~ END 형식으로 작성되는 블록(Block) 구조로 기능별 모듈화 가능 1. 프로시저 (Procedure) - 호출을 통해 실행되어 미리 저장해 놓은 SQL 작업 수행 - 처리 결과는 한 개 이상의 값 반환 또는 반환을 아예 하지 않음 2. 트리거 (Trigger) - 입력, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업을 자동 수행 3. 사용자 정의 함수 - 프로시저와 유사하게 SQL을 사용해 일련의 작업을..

[정보처리기사 필기] SW 개발 : 프로시저

정보처리기사 필기 2과목 - 소프트웨어 개발 : 프로시저 [1] 프로시저 1. SQL 정의 * 프로시저 : 프로시저란 SQL을 이용하여 만들어진 데이터를 조작하는 일종의 트랜잭션 언어로, 데이터베이스 내부에 저장되고 일정한 조건(외부 입력, 특정 시간 등)이 되면 자동으로 수행됨 * SQL (Structured Query Language) : 일정한 데이터 집합으로부터 더 쉽게 자료를 검색하고 입력/수정/삭제와 같은 조작을 할 수 있도록 고안된 언어 2. SQL 분류 1) 데이터 정의어 (DDL, Data Definition Language) - 데이터를 저장하고 있는 테이블 등의 구조를 생성하고 변경하기 위하여 사용되는 명령어들 의미 - 명령어 수행이 되면 이전 상태로 복귀할 수 없으므로 신중히 사용 ..