전체 글

INDEX테이블의 row 가 insert 가 되면서 index 객체에도 row_id 와 기준이 되는 pk 값이 들어온다 ! index 는 기본 설정값은 오름차순이다 ! 그래서 row 가 들어올 때 값을 비교해서 index 에 저장이 된다 . => 순서가 있다 ! 예를 들어 데이터가 들어올 때 d009 값이 들어오고 d005 값이 들어온다면 비교해서 d005 가 먼저 오게 되고,또 다시 d002 데이터가 들어오면 원래 있던 데이터에서 다 비교 되지 않고 순서대로 비교  row 가 한꺼번에 들어올 때 index 도 한꺼번에 데이터가 추가가 된다index 는 추가되면서 비교를 하게 되는데 그래서 작업 속도가 느려지는 이유 중 하나 ! 그래서 한꺼번에 데이터가 들어올 때 작업의 속도가 느려지는 것을 방지하고자 ..
# database/p240617/view.sql1. view 란 ?원래 실질적인 테이블이 있는 일부만 보여지게 하는 것 ! 실질적으로 있는 테이블을 기반 테이블(base table), 물리적 존재라 부른다.view 는 테이블은 아니고 일부 쿼리문 ! 논리적인 테이블, 가상 테이블이라 부른다. 가상의 테이블물리적으로 존재하지 않음 → 논리적 존재쿼리문(select) → 쿼리 재사용추가, 삭제, 수정에 제약이 따를 수 있음뷰는 인덱스를 가질 수 없음 --> 실제 테이블이 아니기 때문보안의 효과를 가짐2. 문법create [or replace] view 뷰이름asselect 컬럼명from 테이블명; 그럼 view 생성해보자# DB 선택use test;# [view] emp 생성create view empas..
요구사항 수집 및 분석↓1. 개념적 설계 - ER 모델(ERD), 이미지, 개념적 스키마↓2. 논리적 설게- 정규화(entity, 릴레이션, 물리적 설계), 논리적 스키마↓3. 물리적 설계- DB 개체 정의, 테이블 설계↓DB 구현
# fullstack/database/p240610/select_group_function.sql[그룹 함수] 집계 함수count(컬럼명) : 로우 개수 - null 제외count(*) : 로우 개수 - null 포함sum(컬럼명) : 합avg(컬럼명) : 평균max(컬럼명) : 최대값min(컬럼명) : 최솟값[문법] 위치 다르게 하면 Syntax Errorselect 컬럼명 1, 그룹함수(컬럼명 2) from 테이블명 // 여기까지 필수where 조건 // row 와 관련group by 컬럼명 2having 조건 [문제 1] 총 사원(직원) 수select count(emp_no) from employees; # emp_no 의 개수 반환select count(emp_no), count(*)..
# fullstack/database/p240611/select_subquery.sql 서브 쿼리는 사용 위치에 따라 중첩 서브 쿼리, 스칼라 서브 쿼리, 인라인 뷰로 구분됨[서브 쿼리] subquery* 서브 쿼리 : 쿼리문 내 쿼리문select 절, from 절, where 절에 들어올 수 있음들어오는 위치에 따라 구분이 됨* 스칼라 서브쿼리 (scalar subquery) : select 절, 단일행 / 단일컬럼 반환* 인라인 뷰 (inline view) : from 절, 반드시 하나의 테이블 반환 * 중첩 서브쿼리 (nested subquery) : where 절, 단일행 or 다중행 반환 // 가상의 테이블를 뷰라고 말함, 쿼리가 실행되면서 만들어지는 뷰 중첩 서브 쿼리d005 부..
# fullstack/database/p240610/select_join.sqlselect * from dept_manager;select * from departments;수평 조인 from 절에 테이블명을 , 로 구분하여 여러 개- 다대다 조인# 다대다 조인 : M x N# 있는 row 를 다 연결select * from dept_manager, departments; 컬럼명을 다 써보자 !select emp_no, dept_no, from_date, to_date, dept_no, dept_namefrom dept_manager, departments; 어라 근데 error ! Column 'dept_no' in field list is ambiguousselect 절에 dept_no 가 2개(여러..
숫자형# database/p240605/select-function.sql절대값실제 저장된 데이터가 아닌 임으의 데이터이기 때문에 from 생략 !select abs(100), abs(-100); 소수점 이하 올림소수점 첫째 자리가 반올림이 되든 안되든 무조건 올림select ceil(10.4), ceil(10.5), ceil(10.6);소수점 이하 내림floor 의 사전적 의미는 바닥 !select floor(10.432), floor(10.5), floor(10.6); 반올림소수점 기준으로 오른쪽 반올림 결정 !select round(10.432), round(10.5), round(10.6); 근데 여기서 알아야 할 점 !생략된 부분이 있다 !select round(166.555, 0), round..
📌 where clause 사용되는 연산자# database/240605/select-ex01.sql * 비교 연산자= : 같다 : 다르다 : 왼쪽 값이 더 큼= : 값이 같거나, 왼쪽 값이 더 큼* 논리 연산자 : and, or, not* 범위 연산자 : between A and B* 집합 연산자 : in (값 1, 값 2, ...) not in (값 1, 값 2 , ...)* 문자열 연산자 : like not like 와일드 카드 - '%' (모든), '_' (하나)* null 연산자 : is null null 과 같다. null 이다. (부등호를 쓰는 것이 아니라 is) is not null null 과 같지 않다. null이 아니다.📌 산술 연..
print(blue)