14강 반복문 의존증 SQL에는 반복문이 없다. - 일부러 반복문을 언어 설계에서 제외한 것, 처음부터 '반복문을 제외'하고 만들어진 언어 관계 조작은 관계 전체를 모두 조작의 대상으로 삼는다. 이러한 것의 목적은 반복을 제외하는 것이다. 최종 사용자의 생산성을 생각하면 이러한 조건을 만족해야 한다. 그래야만 응용 프로그래머의 생산성에도 기여할 수 있을 것이다. 1. 내부적으로는 반복문 사용 반복문이 없어 당황하는 사용자들은 일단 하나의 레코드마다 작은 SQL을 사용해 접근하고, 비즈니스 로직은 호스트 언어(절차형 언어)에서 반복 처리를 구현하는 것이 일반적 15강 반복계의 공포 1. 반복계의 단점 '성능' 같은 기능을 구현한다고 가정하면, 반복계로 구현한 코드는 포장계로 구현한 코드에 성능적으로 이길 ..
12강 집약 집약 함수 -COUNT -SUM -AVG -MAX -MIN 1. 여러 개의 레코드를 한 개의 레코드로 집약 필드 수가 다를 때 UNION으로 하나의 쿼리로 집약하는 것은 불가능SELECT id, CASE WHEN data_type = 'A' THEN data_1 ELSE NULL END AS data_1, CASE WHEN data_type = 'A' THEN data_2 ELSE NULL END AS data_2, CASE WHEN data_type = 'B' THEN data_3 ELSE NULL END AS data_3, CASE WHEN data_type = 'B' THEN data_4 ELSE NULL END AS data_4, CASE WHEN data_type = 'C' THEN..
8강 UNION을 사용한 쓸데없이 긴 표현 1, 정확한 판단 없는 UNION 사용 회피 SELECT item_name, year, price_tax_ex AS price FROM Items WHERE year = 2002; UNION 을 사용했을 때 -쓸데 없이 긴 SQL문, Items 테이블에 2회 접근 + 그때마다 TABLE ACCESS FULL 발생 -> 쓸데없는 테이블 접근을 발생시키며 SQL의 성능을 나쁘게 만듦 2. WHERE 구에서 조건 분기 "조건 분기를 WHERE 구로 하는 사람들은 초보자다. 잘 하는 사람은 SELECT 구만으로 조건 분기를 한다." 3. SELECT 구문에서 CASE 식을 사용한 조건분기 SELECT item_name, year, CASE WHEN year = 2002..
6강 - SELECT 구문 검색 = 질의 = 추출 검색을 위해 사용하는 SQL 구문 -> SELECT 구문 1. SELECT 구와 FROM 구 'SELECT [컬럼이름] FROM [테이블 이름] 'SELECT 1'처럼 상수를 선택하는 경우와 같은 예외를 제외하고는 FROM 구를 반드시 입력해야함 2. WHERE 구 레코드를 선택할 때 추가적인 조건을 지정할 수 있는 방법 '필터 조건' =, , >=, >, = 30; - WHERE구는 거대한 벤다이어그램 - IN으로 OR조건을 간단하게 작성할 수 있음 ex) WHERE address = '서울시' OR address = '인천시' OR address = '부산시'; => WHERE address IN('서울시', '인천시', '부산시'); - NULL은 ..
DBMS 아키텍쳐 개요 1. 쿼리 평가 엔진 사용자로부터 입력받은 SQL 구문을 분석하고, 어떤 순서로 기억장치의 데이터에 접근할지를 결정 계획을 세우고 실행하는 DBMS의 핵심 기능을 담당하는 모듈 • 실행계획: 결정되는 계획 • 접근 메서드: 실행 계획에 기반을 둬서 데이터에 접근하는 방법 2. 버퍼 매니저 DBMS는 버퍼라는 특별한 용도로 사용하는 메모리 영역을 확보해두는데, 이 때 메모리 영역을 관리하는 것이 버퍼 매니저 3. 디스크 용량 매니저 데이터베이스는 데이터를 영구적으로 저장해야 하므로, 어디에 어떻게 데이터를 저장할지를 관리하며 데이터의 읽고 쓰기를 제어 4. 트랜잭션 매니저와 락 매니저 수많은 사람들이 동시에 데이터베이스에 접근해서 사용하므로, 트랜잭션의 정합성을 유지하면서 실행시키고..
3장 SQL 최적화 기본 원리 1절옵티마이저와 실행계획 1. 옵티마이저: SQL문에 대한 최적의 실행방법을 결정하여 실행 계획 도출, SQL문에 대한 파싱 후 실행됨, 내비게이션 %SQL문 실행 순서 파싱: SQL문법 검사 및 구문 분석 작업 실행: 옵티마이저의 실행 계획에 따라 인출: 데이터를 읽어 전송 옵티마이저 엔진 -질의 변환기: 작성된 SQL문을 처리하기 용이한 형태로 변환하는 모듈 -비용 예측기: 생성된 계획의 비용을 예측하는 모듈 -대안계획 생성기: 동일한 결과를 생성하는 다양한 대안 계획을 생성하는 모듈, 1) 연산 적용 순서 2) 연산 방법 3) 조인 순서의 변경을 통해 대안 계획 생성 종류 -규칙기반 옵티마이저: 우선순위 규칙에 따라 실행계획 생성, 인덱스가 있으면 반드 시 인덱스 사용..
집합연산자: 두 개 이상의 테이블에서 조인을 사용하지 않고 연관된 데이터를 조회할 때 사용 SELECT 절의 칼럼 수가 동일하고 SELECT 절의 동일 위치에 존재하는 칼럼의 데이터 타입이 상호호환할 때 사용 가능 일반 집합 연산자 1. UNION: 합집합(중복 행 1개로) 정렬 2. UNION ALL: 합집합(중복 행도 표시) 정렬X 3. INTERSECT : 교집합(중복 행 1개로) 4. MINUS : 차집합(중복 행 1개로) 5. CROSS JOIN : 곱집합(PRODUCT) ALIAS는 처음 테이블, 정렬은 마지막 테이블 기준 순수 관계 연산자: 관계형 DB를 새롭게 구현 1. SELECT -> WHERE절로 구현 2. PROJECT -> SELECT절로 구현 3. NATURAL JOIN -> 다..
6절 함수 1. 단일 행 함수: 1) SELECT 절 2)WHERE 절 3)ORDER BY 절에 사용 가능, 각 행에 개별적으로 작용, 여러 인자를 입력해도 단 하나의 결과만 출력 A. 문자형 함수: 문자열 입력 시 문자열이나 숫자 반환 i. LOWER, UPPER, LENGTH ii. CONCAT: 문자열 결합 iii. SUBSTR: 문자열 부분 추출 iv. LTRIM, RTRIM, TRIM: 왼쪽 공백 제거, 오른쪽 공백 제거, 양쪽 공백 제거 v. ASCII : 아스키 코드값 출력 B. 숫자형 함수 i. ABS, SIGN : 절대값, 부호 (1,0,-1 중 출력) ii. MOD: 나머지, 연산자 ‘%’로 대체 가능함 iii. ROUND, CEIL, FLOOR: 반올림, 올림, 버림 (‘함수(E,N)..
- Total
- Today
- Yesterday
- 스프링
- 인텔리제이
- elasticsearch
- 지연로딩
- 다이나믹 프로그래밍
- 스프링 커뮤니티
- EnumType.ORDINAL
- SQLD
- 커뮤니티
- 자바
- DP
- 스프링부트
- 로그아웃
- 파이썬
- 회원탈퇴
- 백준 파이썬
- 영속
- 로깅
- 북마크
- 웹 MVC
- 웹MVC
- 프론트엔드
- SQL 레벨업
- SQL
- 스프링 북마크
- JPA
- 백준
- 준영속
- 자바 스프링
- 비영속
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |