[DB] SubQuery

Featured image for [DB] SubQuery

부속 질의 (subquery) 부속질의란 하나의 SQL 문 안에 다른 SQL 문이 중첩된 질의를 말함. 다른 테이블에서 가져온 데이터로 현재 테이블에 있는 정보를 찾거나 가공할 때 사용함. 보통 데이터가 대량일 때 데이터를 모두 합쳐서 연산하는 조인보다 데이터만 찾아서 공급해주는 부속질의가 성능이 더 좋음. Join과 Subquery의 성능 차이는 case by case다. 데이터베이스 최적화, 인덱스 사용 여부, 쿼리 … 더 읽기

[DB] JOIN

Featured image for [DB] JOIN

1. JOIN 둘 이상의 테이블에서 데이터가 필요할 때 관련 있는 속성을 기준으로 복수의 테이블을 ‘관계’ 지어주는 연산. 그래서 관계형 데이터베이스의 꽃이라 부른다. 일반적으로 각 테이블의 PK 및 FK로 구성된 조인 조건을 포함하는 WHERE 절을 작성해야 한다. 가. JOIN의 종류 조인은 크게 일반적인 조인(혹은 내부 조인)과 외부 조인으로 나눌 수 있다. 2. INNER JOIN 두 테이블 … 더 읽기

[DB] VIEW

Featured image for [DB] VIEW

1. View 가. View란? 데이터베이스에 존재하는 ‘가상의 테이블’ 실제 행과 열을 가지고 있지만 데이터를 저장하고 있지 않고 SQL만 저장한다. MySQL에서는 단지 다른 테이블이나 View의 데이터를 보여주는 역할만 수행한다. 복잡한 Join이나 Subquery를 View를 사용해서 단순하게 만들 수 있다. 나. 장점 예를 들어, 다음과 같은 복잡한 쿼리를 가지고 있다고 가정해 본다. (실제로는 더 복잡하고 반복되겠죠?) 뷰를 사용하면 … 더 읽기

[DB] INDEX

Featured image for [DB] INDEX

1. Index 데이터베이스(DB)의 인덱스란 데이터 검색 속도를 높이기 위해 사용하는 기술이다. 또한 특정 항목들에 대하여 중복이 발생하지 않도록 관리하기 위해서 사용되기도 한다. 하지만, 인덱스는 별도의 공간을 차지하고, 데이터가 변경될 때마다 추가적인 연산이 발생한다. 인덱스를 사용할지 말지 신중하게 따져봐야 한다. 2. Index의 종류 인덱스는 몇 가지 조건에 따라서 생성된다.   PK 존재 PK 없음 Clustered index … 더 읽기

[DB] Transaction

Featured image for [DB] Transaction

1. Transaction 트랙잭션 도구 설명 START TRANSACTION 트랜잭션을 시작하는 명령어 COMMIT 수정된 내용을 데이터베이스에 반영하는 명령어 ROLLBACK 트랜잭션에서 수행된 모든 변경을 원래대로 되돌리는 명령어 SAVEPOINT 롤백을 원하는 특정 시점을 지정하는 명령어 mysql은 기본적으로 autocommit으로 설정되어 있다. autocommit이면 실행과 동시에 데이터베이스에 변화를 반영한다. 끄면 commit 전까진 메모리 상에서만 데이터를 변경하고 실제 데이터베이스에선 변화하지 않는다. 단, DCL, … 더 읽기

[DB] SET Operator

Featured image for [DB] SET Operator

1. SET Operator Operator 설명 중복 UNION 합집합 제거 UNION ALL 합집합 유지 INTERSECT 교집합 없음 MINUS 차집합 없음 mysql은 UNION, UNION ALL 연산자는 제공한다. 단, MINUS, INTERSECT 연산자는 지원하지 않는다. 그래서 동일한 기능을 다른 방식으로 구현해야 한다. 2. INTERSECT 극복 동일한 기능을 mysql에서는 inner join으로 극복해야 한다. 3. MINUS 극복 동일한 기능을 mysql에서는 not … 더 읽기

[DB] 내장함수

Featured image for [DB] 내장함수

1. 내장함수 가. 숫자 함수 설명 ABS(x) x의 절대값을 반환 CEILING(x) x보다 크거나 같은 가장 작은 정수를 반환 (올림) FLOOR(x) x보다 작거나 같은 가장 큰 정수를 반환 (내림) ROUND(x, d) x를 d 소수점 자리에서 반올림 TRUNCATE(x, d) x를 소수점 자릿수 d 까지 버림. POW(x, y) x의 y 거듭제곱 값을 반환 MOD(x, y) x를 y로 나눈 … 더 읽기

[DB] NULL, CASE, ESCAPE

Featured image for [DB] NULL, CASE, ESCAPE

1. NULL DBMS에서 null는 “값을 알 수 없음”을 의미한다. 가. IS NULL null는 “값을 알 수 없음”을 의미한다. 그래서 다음과 같은 방식으로 null인 row를 찾을 수 없다. null 값을 찾고 싶다면 = null이 아닌 is null 을 사용할 것. is not null도 가능한다. 나. IFNULL() 다. NULLIF() 라. null 논리연산 값을 알 수 없다는 것은 … 더 읽기

[Servlet_JSP] JSTL

Featured image for [Servlet_JSP] JSTL

1. JSTL이란? 2. JSTL 환경 설정 JSP에서 JSTL을 사용하기 위해서는 라이브러리를 설치해야 한다. Maven Repository: jakarta.servlet.jsp.jstl » jakarta.servlet.jsp.jstl-api Maven에서 Jakarta Standard Tag Library API와 Jakarta Standard Tag Library Implementation을 검색한다. pom.xml에 추가한다. JSP 상단에 <%@ taglib prefix=”c” uri=”jakarta.tags.core” %>를 추가한다. 3. JSTL Tag JSTL을 사용하기 위해서 JSP에 추가한다. JSTL 태그의 종류 prefix 설명 URI Core … 더 읽기

[Servlet_JSP] EL

Featured image for [Servlet_JSP] EL

1. EL이란? JSP의 표현식 <%= %>를 대신해서 속성 값을 쉽게 출력하도록 고안된 언어다. EL 표현식의 도트 연산자()의… EL에서 제공하는 기능 2. 문법 특정 스코프 영역을 설정할 수도 있다. 스코프 영역을 비워두면 자동으로 pageScope → requestScope → sessionScope → applicationScope 순으로 확인한다. 프로퍼티나 key에 띄어쓰기라던가 특수 문자가 존재해서 Dot표기법을 사용할 수 없는 경우. []을 사용할 수 … 더 읽기