
(7) 8장. 데이터베이스 설계 34~36강 설계, 정규화, 트랜잭션 34강. 데이터베이스 설계 데이터베이스의 스키마 내에 테이블, 인덱스, 뷰 등의 데이터베이스 객체를 정의하는 것 (==스키마 설계) → 테이블의 이름이나 열, 자료형을 결정하는 것 → 이 테이블은 이 열을 이용해 저쪽 테이블과 연결한다; 테이블 간의 관계를 생각하면서 여러 테이블을 정의하고 작성 하나의 테이블에 대해 두 개의 이름을 지정할 때도 있는데, 물리명; 하나는 데이터베이스에서 사용될 이름으로 실제로는 CREATE TABLE에 지정하는 이름 > 시스템 규칙에 따라 길이에 제한이 있거나 공백문자를 사용할 수 없는 등의 제약이 따름 논리명; 테이블의 설계상 이름 (ex) 물리명은 'item_master' / 논리명은 ..

(6) 7장. 복수의 테이블 다루기 31~33강 집합 연산 및 결합 31강 집합 연산 UNION; 합집합 A∪B 연산자로 키워드 다음에 DISTINCT 또는 ALL이라는 키워드 추가해서 중복 레코드에 대한 처리 방법 선택 가능 (기본 선택은 DISTINCT), UNION은 두 집합의 합을 만들어 내기 위해 버퍼 역할을 하는 임시 테이블을 사용 UNION ALL; 두 개의 집합에서 중복된 레코드에 대해 별도의 처리 과정을 거치지 않고 바로 반환 (단순히 임시 테이블만 사용) UNION DISTINCT; 두개의 집합에서 중복된 레코드를 제거한 후 (두 집합의 레코드 가운데 중복된 레코드 중 하나는 버림) 합집합을 사용자에게 반환 → UNION을 수행해야할 대상은 이미 임시 테이블로 만들어졌으며, 이 임시 테..

(5) 5장. 집계와 서브쿼리 20~24강 COUNT, GROUP BY, 서브쿼리 20강. 행 개수 구하기 - COUNT + 21강. COUNT 이외의 집계함수 집합(으로부터 하나의 값을 계산하는)을 다루는 집계함수 5개 ※집계함수는 집합 안에 NULL 값이 있을 경우 무시함! COUNT SUM sum집계함수에 지정되는 집합에 문자열은 쓸 수 없음 AVG null 값을 0으로 간주해 평균을 내고 싶으면 case문 또는 IFNULL(컬럼명, '대체할 값')을 사용하면 됨 MIN & MAX 집계함수에 지정되는 집합에 문자열과 날짜시간형도 사용 가능 22강. 그룹화 - GROUP BY 특정 칼럼의 값으로 레코드를 그룹핑하고, 각 그룹별로 집계된 결과를 하나의 레코드로 조회할 때 사용 (ex) 각..

(4) 3장. 정렬과 연산 9~15강 ORDER, LIMIT, 연산 9강. 정렬 - ORDER BY SELECT명령의 ORDER BY구를 사용해 검색 결과의 행 순서를 바꿈 (정렬 방법) SELECT 열명 FROM 테이블명 [WHERE 조건식] ORDER BY 열명 [DESC(내림차순)]; 기본은 오름차순 대소관계 수치형 문자열형 사전식 순서 (ex1) '가방' < '가족' (ex2) '1' < '11' < '2' ← 숫자가 문자열형으로 되어있을 경우 서버에서 클라이언트로 행 순서를 바꾸어 결과를 반환하는 것 뿐, 저장장치에 저장된 데이터의 행 순서를 변경하는 것은 아님 10강. 복수의 열을 지정해 정렬하기 SELECT 열명 FROM..

(3) 4장. 데이터의 추가, 삭제, 갱신 16~19강 INSERT, DELETE, UPDATE 16강. 행 추가하기 - INSERT INSERT 명령을 사용해 테이블의 행 단위로 데이터를 추가 INSERT INTO 테이블명(컬럼명1, 컬럼명2, ...) VALUES(값1, 값2, ...); [신규 등록] 또는 [추가] 버튼 클릭 시 처리되는 데이터 추가 기능 NOT NULL 제약이 걸려있는 열은 NULL 값을 허용하지 않음 default설정이 있는 경우; default로 값을 설정하거나(↖명시적 방법) 열을 지정하지 않으면(암묵적 방법↗) default 값으로 행이 추가됨 AUTO_INCREMENT 제약의 INSERT 특성 → NOT NULL 제약이 있더라도 별도의 값이 지정되지 않아도 됨 (AUTO_..

(2) 2장. 테이블에서 데이터 검색 4~8강 검색 조건 4강. Hello World 실행하기 SQL 명령은 키워드에 의해 '구'라는 단위로 나눌 수 있음 → ex) select구와 from구 select 명령은 여러 개의 구(select구, from구...)로 구성됨 데이터베이스 객체명에는 예약어와 동일한 이름을 사용할 수 없음 select 명령 실행 시 출력되는 표 형식 데이터 → 행(레코드) + 열(컬럼/필드) 행; 모두 동일한 형태로 되어있음 열; 옆으로 나열 된 것으로 열마다 이름이 지정되어 있음 셀; 각각의 행과 열이 만나는 부분으로 하나의 데이터 값이 저장되어 있음 각 열은 하나의 자료형만 가질 수 있음 ex) '수치형', '문자열형', '날짜시간형' ... 보통 column은 대소문자 구분..

(1) 6장. 데이터베이스와 SQL 28~30강 인덱스와 뷰 인덱스 (색인 or 목차) == 정렬 : 테이블에 대한 동작 속도를 높여주는 자료구조 고속의 검색(select, where) 동작 레코드 접근 관련 효율적인 순서 매김 동작 테이블 내의 1개 또는 여러 개의 컬럼을 이용하요 생성 카디널리티가 높은순 → 낮은순으로 구성하는 것이 성능에 더 도움 인덱스는 테이블에 의존하는 객체로 테이블을 삭제하면 인덱스도 함께 삭제된다 오라클 / DB2 ; 인덱스는 스키마 객체 → 스키마 내에 이름이 중복되지 않도록 관리 SQL Server / MySQL ; 인덱스는 테이블 내 객체 → 테이블 내에 이름이 중복되지 않도록 관리 인덱스에 쓰이는 대표적 검색 알고리즘은 Binary search (이진 트리에는 중복하는..