본문 바로가기

SQLD

(43)
[SQLD : Ⅲ. SQL 기본] 9. 조인 * JOIN 개요 두 개 이상의 테이블 들을 연결 또는 결합하여 데이터를 출력하는 것을 JOIN이라고 하며, 일반적으로 사용되는 SQL 문장의 상당수가 JOIN 일반적인 경우 행들은 PRIMARY KEY(PK)나 FOREIGN KEY(FK) 값의 연관에 의해 JOIN이 성립 FROM 절에 여러 테이블이 나열되더라도 SQL에서 데이터를 처리할 때는 단 두 개의 집합 간에만 조인이 일어난다 * EQUI JOIN EQUI(등가) JOIN은 두 개의 테이블 간에 칼럼 값들이 서로 정확하게 일치하는 경우에 사용되는 방법 대부분 PK ↔ FK의 관계를 기반으로 함 반드시 PK ↔ FK의 관계로만 EQUI JOIN이 성립하는 것은 아님 계층형(Hierarchical)이나 망형(Network) 데이터베이스와 비교해서 ..
[SQLD : Ⅲ. SQL 기본] 8. ORDER BY 절 * ORDER BY 정렬 SQL 문장으로 조회된 데이터들을 다양한 목적에 맞게 특정 칼럼을 기준으로 정렬하여 출력하는데 사용 칼럼(Column)명 대신에 SELECT 절에서 사용한 ALIAS 명이나 칼럼 순서를 나타내는 정수도 사용 가능 별도로 정렬 방식을 지정하지 않으면 기본적으로 오름차순이 적용 SELECT 칼럼명 [ALIAS명] FROM 테이블명 [WHERE 조건식] [GROUP BY 칼럼(Column)이나 표현식] [HAVING 그룹조건식] [ORDER BY 칼럼(Column)이나 표현식 [ASC 또는 DESC]] ; ASC(Ascending) : 조회한 데이터를 오름차순으로 정렬한다.(기본 값이므로 생략 가능) DESC(Descending) : 조회한 데이터를 내림차순으로 정렬한다. [예제] O..
[SQLD : Ⅲ. SQL 기본] 7. GROUP BY, HAVING 절 * 집계 함수 - 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 함수이다. - GROUP BY 절은 행들을 소그룹화 한다. - SELECT 절, HAVING 절, ORDER BY 절에 사용할 수 있다. 집계 함수명 ( [DISTINCT | ALL] 칼럼이나 표현식 ) - ALL : Default 옵션이므로 생략 가능함 - DISTINCT : 같은 값을 하나의 데이터로 간주할 때 사용하는 옵션임 [예제] 일반적으로 집계 함수는 GROUP BY 절과 같이 사용되지만 아래와 같이 테이블 전체가 하나의 그룹이 되는 경우에는 GROUP BY 절 없이 단독으로도 사용 가능하다. SELECT COUNT(*) "전체 행수", COUNT(HEIGHT) "키 건수", MAX(HEIGHT) 최대키, MIN(H..
[SQLD : Ⅲ. SQL 기본] 6. 함수 FUNCTION * 내장함수 BUILT IN FUNCTION 개요 - 함수는 벤더에서 제공하는 함수인 내장 함수와 사용자가 정의할 수 있는 함수로 나눔 - 내장 함수는 단일행 함수와 다중행 함수로 나눔 - 다중행 함수는 집계함수, 그룹함수, 윈도우 함수로 나눔 함수명 (칼럼이나 표현식 [, Arg1, Arg2, ... ]) - 단일행 함수는 처리하는 데이터 형식에 따라서 문자형, 숫자형, 날짜형, 변환형, NULL 관련 함수로 나눔 - 단일행 함수 특징 SELECT, WHERE, ORDER BY 절에 사용 가능 각 행들에 대해 개별적으로 작용하여 데이터 값들을 조작하고, 각 행에 대한 조작 결과 리턴 여러 인자를 입력해도 단 하나의 결과만 리턴 함수의 인자로 상수, 변수, 표현식이 사용 가능하고, 하나의 인수를 가지는 ..
[SQLD : Ⅲ. SQL 기본] 5. WHERE절 * WHERE절 개요 - 사용자들은 자신이 원하는 자료만 검색하기 위해 WHERE절 이용 - WHERE 절에는 두 개 이상의 테이블에 대한 조인 조건이나 결과를 제한하기 위한 조건 기술 - WHERE절에 조건이 없는 FTS(full table scan) 문장은 SQL 튜닝의 1차적 검토 대상이 됨 - SQL server, Sybase 문장은 SELECT 목록에 상수, 변수 및 산술식만 포함되는 경우 FROM 필요없음 - 테이블 컬럼이 사용된 경우 FROM 절 필요, WHERE 절은 조회하려는 데이터에 특정 조건 부여 목적 SELECT [DISTINCT/ALL] 칼럼명 [ALIAS명] FROM 테이블명 WHERE 조건식; * 연산자 종류 * 비교연산자 소속팀이 삼성블루윙즈이거나 전남드래곤즈에 소속된 선수들..
[SQLD : Ⅲ. SQL 기본] 4. TCL * 트랜잭션 특성 - 원자성 : 트랜잭션에서 정의된 연산들은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 남음 - 일관성 : 트랜잭션 실행 전에 내용이 잘못되지 않으면 트랜잭션 실행 후에도 내용이 잘못되면 안됨 - 고립성 : 트랜잭션 실행 중 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들면 안됨 - 지속성 : 트랜잭션이 성공적으로 수행되면 그 트랜잭션이 갱신한 데이터베이스 내용은 영구적으로 저장 * COMMIT - 메모리 버퍼에만 영향을 받아서 데이터 변경 이전 상태로 복구 가능 [예제] PLAYER 테이블에 데이터를 입력하고 COMMIT을 실행한다. [예제] Oracle INSERT INTO PLAYER (PLAYER_ID, TEAM_ID, PLAYER_NAME, POSITION, H..
[SQLD : Ⅲ. SQL 기본] 3. DML * INSERT ▶ INSERT INTO 테이블명 (COLUMN_LIST)VALUES (COLUMN_LIST에 넣을 VALUE_LIST); ▶ INSERT INTO 테이블명VALUES (전체 COLUMN에 넣을 VALUE_LIST); - 해당 컬럼명과 입력되어야 하는 값을 1:1로 매핑하여 입력 [예제] 선수 테이블에 박지성 선수의 데이터를 일부 칼럼만 입력한다. [예제] ▶ 테이블명 : PLAYER INSERT INTO PLAYER (PLAYER_ID, PLAYER_NAME, TEAM_ID, POSITION, HEIGHT, WEIGHT, BACK_NO) VALUES ('2002007', '박지성', 'K07', 'MF', 178, 73, 7); 1개의 행이 만들어졌다. [예제] 해당 테이블에 이청용 선..
[SQLD : Ⅱ. 데이터 모델과 성능] 6-2. 분산데이터베이스와 성능 - 적용기법 - 테이블위치분산, 테이블분할분산, 테이블복제분산, 테이블요약분산 전략이 있음 - 가장 많이 사용하는 방식은 테이블 복제 분할 분산 방법 - 분산 환경으로 데이터베이스 설계 시 통합 데이터 모델링을 하고 각 테이블별 업무적인 특징에 따라 지역, 서버로 분산배치, 복제배치하는 형태로 설계 * 테이블 위치 분산 - 테이블의 구조는 변하지 않음 - 다른 데이터베이스에 중복되어 생성되지도 않음 - 설계된 테이블 위치를 각각 다르게 위치시키는 것 자재품목은 본사에서 관리하고, 지사별로 자재품목을 이용하여 생산 테이블이 각 지역별로 분산되어 생성되는 경우 테이블마다 위치가 다르게 지정되어야 하면 위치를 표기하여 테이블 생성 테이블의 위치가 위치별로 다르므로 테이블의 위치를 파악할 수 있는 도식화된 위치별 데이터베이..