서브쿼리(Subquery)란? ✅ 하나의 SQL 문에 포함되어 있는 또 다른 SQL 문 서브쿼리 사용시 주의사항 1. 서브쿼리를 괄호로 감싸서 사용한다. 2. 서브쿼리는 단일 행 또는 복수 행 비교 연산자와 함께 사용 가능하다. 3. 서브쿼리에서는 ORDER BY 를 사용하지 못한다. 서브쿼리는 위치에 따라 다음과 같이 나눌 수 있다. SELECT 절 스칼라 서브쿼리(Scalar Sunquery) FROM 절 인라인 뷰(Inline View) WHERE 절, HAVING 절 중첩 서브쿼리(Nested Subquery) 스칼라 서브쿼리(Scalar Sunquery) 주로 SELECT 절에 위치하지만 컬럼이 올 수 있는 대부분 위치에 사용할 수 있다. 컬럼 대신 사용되므로 반드시 하나의 값만을 반환해야 하며..
JOIN이란? 두 개 이상의 테이블을 서로 연결하여 데이터를 검색할 때 사용하는 방법 두 개의 테이블을 마치 하나의 테이블인 것처럼 보여준다. 기본 구조 SELECT 테이블.컬럼, 테이블.컬럼 FROM 테이블1,테이블2 WHERE 조건 JOIN의 종류 설명 INNER JOIN JOIN 조건에 충족하는 데이터만 출력 LEFT OUTER JOIN 왼쪽에 표기된 테이블의 데이터는 무조건 출력 RIGHT OUTER JOIN 오른쪽에 표기된 테이블의 데이터는 무조건 출력 FULL OUTER JOIN 왼쪽, 오른쪽 테이블의 데이터가 모두 출력 NATURAL JOIN A테이블과 B테이블에서 같은 이름을 가진 컬럼들이 모두 동일한 데이터를 가지고 있을 경우 JOIN되는 방식 CROSS JOIN A테이블과 B테이블 사이..
GROUP BY GROUP BY 절은 SQL 문에서 FROM 절과 WHERE 절 뒤에 오며, 데이터들을 작은 그룹으로 분류하여 소그룹에 대한 항목별로 통계 정보를 얻을 때 추가로 사용된다. 집계 함수 함수명 설명 COUNT(*) 전체 Row를 Count하여 반환 COUNT(컬럼) 컬럼값이 Null인 Row를 제외하고 Count하여 반환 COUNT(DISTINCT컬럼) 컬럼값이 Null인 아닌 Row에서 중복을 제거한 Count를 반환 SUM(컬럼) 컬럼값들의 합계를 반환 AVG(컬럼) 컬럼값들의 평균을 반환 MIN(컬럼) 컬럼값들의 최솟값을 반환 MAX(컬럼) 컬럼값들의 최댓값을 반환 HAVING HAVING 절은 GROUP BY 절을 사용할 때 WHERE 절처럼 사용하는 조건절이라고 생각하면 된다. 주..
비교 연산자 연산자 의미 예시 = 같음 where col = 10 = 크거나 같음 where col >= 10 부정 비교 연산자 연산자 의미 예시 != 같지 않음 where col != 10 ^= 같지 않음 where col ^= 10 같지 않음 where col 10 not 컬럼명 = 같지 않음 where not col = 10 not 컬럼명 > 크지 않음 where not col > 10 SQL 연산자 연산자 의미 예시 BETWEEN A AND B A와 B의 사이(A, B 포함) where col between 1 and 10 LIKE '비교 문자열' 비교 문자열을 포함 where col like '방탄%' where col like '&소년단' where col like '%탄소년%' where c..
문자 함수 []는 옵션 함수명 설명 CHR(ASCII 코드) 아스키 코드를 인수로 입력했을 때 매핑되는 문자가 무엇인지 알려주는 함수 예) CHR(65) ➡ A LOWER(문자열) 문자열을 소문자로 변환 예) LOWER('PINK') ➡ pink UPPER(문자열) 문자열을 대문자로 변환 예) UPPER('pink') ➡ PINK LTRIM(문자열 [,특정 문자) 특정 문자 X - 문자열의 왼쪽 공백 제거 특정 문자 O - 문자열의 왼쪽부터 한 글자씩 특정 문자와 비교하여 포함되어 있으면 제거 예) LTRIM('고양이율무', '고양이') ➡ 율무 RTRIM(문자열 [,특정 문자) 특정 문자 X - 문자열의 오른쪽 공백 제거 특정 문자 O - 문자열의 오른쪽부터 한 글자씩 특정 문자와 비교하여 포함되어 있..
속성(Attribute)이란? 속성은 엔터티의 특징을 나타내는 최소의 데이터 단위이다.※ 속성(Attribute)는 왜 분리되지 않는 단위인가?속성은 하나의 값만 가져야 한다. 그래야 해당 속성에 저장되는 데이터가 의미가 있고 그렇기에 멀티 파트가 되는 속성들은 쪼개서 하나의 의미만 가질 수 있도록 만들어야 한다. (= 하나의 속성이 여러개의 속성값을 갖는 경우 별도의 엔터티로 분리하는 것이 바람직하다.) 속성(Attribute)를 설정할 때 고려사항엔터티에 필요한 속성인가?속성이 하나의 값만을 가지고 있는가?속성이 하나의 의미만 가지고 있는가?동일한 의미를 가지는 속성이 하나만 존재하는가? 속성의 분류 특성에 따른 속성의 종류종류설명기본 속성(Basic Attribute)- 업무 프로세스 분석을 통..
엔터티(Entity)란? 엔터티(Entity)의 사전적인 의미는 독립체라는 뜻으로, 데이터베이스에서 엔터티는 식별이 가능한 객체라는 의미를 가지고 있다. 엔터티는 추상적인 의미를 가지며 학교나 학생처럼 현실 세계에서 눈에 보이는 개념일 수도 있고 주문이나 결제처럼 눈에 보이지 않는 개념일 수도 있다.엔터티(Entity) - Table : 엔터티는 데이터베이스 테이블이라고 생각하시면 이해가 편하다.인스턴스(Instance) - Row : 인스턴스는 데이터베이스에 저장된 데이터 내용의 전체 집합을 의미한다. 속성(Attribute) - Column : 속성은 인스턴스의 구성요소로써 더 이상 분리되지 않는 단위로, 업무에 필요한 데이터를 저장할 수 있다. 엔터티의 특징 1. 업무에서 필요로 하는 정보여야 한..
데이터베이스의 모델링(Modeling) 데이터베이스의 모델링은 현실 세계를 단순화하여 표현하는 기법이다. 모델링의 특징1. 추상화(Abstraction)=> 현실 세계를 일정한 형식으로 표현하는 것이다. 즉, 아이디어나 개념을 간략하게 표현하는 과정이다.2. 단순화(Simplification)=> 복잡한 현실 세계를 정해진 표기법으로 단순하고 쉽게 표현한다는 의미이다.3. 명확화(Clarity)=> 불분명함을 제거하고 명확하게 해석할 수 있도록 기술한다는 의미이다. 모델링의 세 가지 관점1. 데이터 관점(What, Data)=> 데이터 위주의 모델링. 어떤 데이터들이 업무와 얽혀있는지, 그리고 그 데이터 간에는 어떤 관계가 있는지에 대해서 모델링하는 방법이다.2. 프로세스 관점(How, Process)=..
SQL(Structured Query Language)이란? 1974년 IBM 연구소에서 개발한 SEQUEL에서 유래한다. 국제 표준 데이터베이스 언어이며, 많은 회사에서 관계형 데이터베이스(RDB)를 지원하는 언어로 채택하고 있다. 관계대수와 관계해석을 기초로 한 혼합 데이터 언어이다. 질의어지만 질의 기능만 있는 것이 아니라 데이터 구조의 정의, 데이터 조작, 데이터 제어 기능을 모두 갖추고 있다. SQL 문법의 종류 SQL 문법은 크게는 3가지의 종류로 나누어지며, 종류마다 정의는 아래와 같다. ✅ DDL(Data Definition Language, 데이터 정의어) SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용하는 언어이다. 논리적 데이터 구..
프로토콜(Protocol) 통신 프로토콜 또는 통신 규약은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계이다. 즉 통신 규약 및 약속이다. 프로토콜의 기본 요소 구문(Syntax) : 전송하고자 하는 데이터의 형식(Format), 부호화(Coding), 신호 레벨(Signal Level) 등을 규정의미(Semantics) : 두 기기 간의 효율적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보를 규정시간(Timing) : 두 기기 간의 통신 속도, 메시지의 순서 제어 등을 규정 프로토콜 종류 OSI 7계층 Layer 계층설명프로토콜상위계층응용(Application)사용자 친화 환경 제공(이메일, 웹 등)HTTP, SMTP, FTP, Telnet표현(P..