[SQLD] 19. ORDER BY 절
제 8절 ORDER BY 절 1. ORDER BY 정렬 ORDER BY 절은 SQL 문장으로 조회된 데이터들을 다양한 목적에 맞게 특정 칼럼을 기준으로 정렬하여 출력하는데 사용한다. SELECT 칼럼명 [ALIAS명]FROM 테이블명[WHERE 조건식][GROUP BY 칼럼이나 표현식][HAVING 그룹조건식][ORDER BY 칼럼이나 표현식 [ASC 또는 DESC]]; - ORDER BY 절에 칼럼명 대신 SELECT 절에서 사용한 별명 사용 가능- 또한, 칼럼 순서를 나타내는 정수 사용 가능하나, 유지보수성이나 가독성이 떨어짐- ORDER BY 절에서 칼럼명, 별명, 칼럼순서(정수)를 같이 혼용하는 것도 가능- 기본적으로 오름차순 적용(ASC), 내림차순은 DESC- SQL 문장 맨 마지막 위치- 숫..
2016.08.18
no image
[SQLD] 18. GROUP BY, HAVING 절
제 7절 GROUP BY, HAVING 절 1. 집계 함수(Aggregate Function) 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 다중행 함수 중 집계 함수(Aggregate Function)의 특성은 다음과 같다. - 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 함수- GROUP BY 절은 행들을 소그룹화- SELECT절, HAVING절, ORDER BY절에 사용 가능- WHERE절에 사용하지 않음 - 일반적으로 집계함수는 GROUP BY 절과 같이 사용되지만, 테이블 전체가 하나의 그룹이 되는 경우에는 GROUP BY 절 없이 단독으로 사용 가능 집계함수명([DISTINCT | ALL] 칼럼이나 표현식) - COUNT(*) 는 NULL 값을 포함한 행의 수를 ..
2016.08.18
no image
[SQLD] 17. 함수 (Function)
제 6절 함수(FUNCTION) 1. 내장 함수(Built-in function) 개요 함수는 벤더에서 제공하는 함수인 내장함수와 사용자가 정의할 수 있는 함수(User Defined Function)로 나눌 수 있다. 본 절에서는 SQL 내장함수에 대해서 설명하기로 한다. 내장함수는 SQL을 더욱 강력하게 해주고 데이터 값을 간편하게 조작하는데 사용된다. 내장함수는 다시 함수의 입력 값이 단일행 값이 입력되는 단일행함수(Single-Row Function)와 여러 행의 값이 입력되는 다중행 함수(Multi-Row Function)로 나눌 수 있다. 다중행 함수는 다시 집계 함수(Aggregate Function), 그룹함수(Group Function), 윈도우 함수(Window Function)로 나눌..
2016.08.18
no image
[SQLD] 16. WHERE 절
제 5절 WHERE 절 1. WHERE 조건절 개요 자료를 검색할 때 SELECT 절과 FROM 절만을 사용하여 기본적인 SQL 문장을 구성한다면, 테이블에 있는 모든 자료들이 결과로 출력되어 실제로 원하는 자료를 확인하기 어려울 수 있다. 사용자들은 자신이 원하는 자료만을 검색하기 위해서 SQL 문장에 WHERE 절을 이용하여 자료들에 대한 제한을 할 수 있다. SELECT [DISTINCT/ALL] 칼럼명 [ALIAS명]FROM 테이블명WHERE 조건식; 이러한 형식으로 WHERE절을 이용한 조건적 SELECT문을 작성할 수 있다. 이와 같이 조건절은 FROM절 다음에 위치할 수 있으며, 조건식은 칼럼명, 비교연산자, 문자, 숫자, 표현식, 비교 칼럼명(JOIN 사용 시) 등이 나올 수 있다. 2. ..
2016.08.16
no image
[SQLD] 2016년 SQLD 시험일정 및 시험내용
제22회 SQL 개발자(SQLD) 자격시험을 드디어 결제했다.선공부 후결제... 1. 시험 비용비용도 학생으로서는 조금 부담스러운 가격인 50,000원이다. 재시험 비용은 40,000원 ! 꼭 열심히 공부해서 한방에 붙어야겠다는 생각이 들도록 가격을 책정한 듯... 2. 시험 일정SQLD 및 SQLP 시험 일정은 다음과 같고 앞으로의 시험은 2번이 남았다. 3. 시험 주요 내용SQLD (SQL 개발자 자격시험) 의 과목은 총 2과목으로 구성되어 있으며 내용은 데이테베이스가이드넷 에서 발췌해왔다. 1. 데이터 모델링의 이해 1.1 데이터 모델링의 이해 1.2 데이터 모델과 성능 2. SQL 기본 및 활용 2.1 SQL 기본 2.2 SQL 활용 2.3 SQL 최적화 기본 원리 이렇게 두가지 파트로 나누어 시..
2016.08.13
no image
[SQLD] 15. TCL(Transaction Control Language)
제 4절 TCL(Transaction control language) 1. 트랜잭션 개요 - 트랜잭션은 데이터베이스의 논리적 연산단위- 밀접히 관련되어 분리될 수 없는 한 개 이상의 데이터베이스 조작- 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함- 분할 할 수 없는 최소의 단위- ALL OR NOTHING 개념 1.1 트랜잭션의 특성 1.2 잠금(LOCKING) 트랜잭션의 특성을 충족하기 위해 데이터베이스는 다양한 레벨의 잠금 기능을 제공하고 있는데 잠금은 기본적으로 트랜잭션이 수행하는 동안 특정 데이터에 대해서 다른 트랜잭션이 동시에 접근하지 못하도록 제한하는 기법이다. 잠금이 걸린 데이터는 잠금을 실행한 트랜잭션만 독점적으로 접근할 수 있고 다른 트랜잭션으로부터 간섭이나 방해를 받지 않는 것이..
2016.08.12
no image
[SQLD] 14. DML(Data Manipulation Language)
제 3절 DML(Data Manipulation Language) 1. INSERT테이블에 데이터를 입력하는 방법은 두 가지 유형이 있으며 한번에 한건만 입력된다. 첫번째 유형 : 몇 개의 컬럼에만 데이터를 삽입하는 경우- INSERT INTO 테이블명 (컬럼리스트) VALUES (컬럼리스트에 넣을 값리스트); 두번째 유형 : 모든 칼럼에 데이터를 삽입하는 경우- INSERT INTO 테이블명 VALUES (전체컬럼리스트에 넣을 값리스트); - 데이터 유형이 문자일 경우 ' (single quotation)로 입력할 값을 입력- 데이터 유형이 숫자일 경우 그냥 입력- Primary key나 not null로 지정된 칼럼은 null이 허용되지 않는다.- 두번째 유형은 칼럼의 순서대로 빠짐없이 데이터가 입력..
2016.08.11
no image
[SQLD] 13. DDL(Data Definition Language)
제 2절 DDL(Data Definition Language) 1. 데이터유형 - 데이터베이스의 테이블에 특정 자료를 입력할 때, 그 자료를 받아 들일 공간을 자료의 유형별로 나누는 기준- 선언한 유형이 아닌 다른 종류의 데이터가 들어오려고 하면 데이터베이스는 에러 발생 - ANSI / ISO 숫자타입 : NUMERIC Type의 하위개념인 NUMERIC, DECIMAL, DEC, SMALLINT, INTGER, INT, BIGINT, FLOAT, REAL, DOUBLE PRECISION- SQL Server, Sybase 숫자타입 : 작은 정수형, 정수형, 큰 정수형, 실수형, MONEY, SMALLMONEY 등- Oracle 숫자타입 : NUMBER- ANSI / ISO 그 외 데이터타입 : Bina..
2016.08.11
no image
[SQLD] 12. 관계형 데이터베이스 개요
제 1절 관계형 데이터베이스 개요 1. 데이터베이스 - 특정 기업이나 조직 또는 개인이 필요에 의해(부가가치가 발생하는 일 등) 데이터를 일정한 형태로 저장해 놓은 것- 그러나 관리 대상이 되는 데이터 양이 점점 많아지고 같은 데이터를 여러 사람이 동시에 여러 용도로 사용하게 되면서 단순 엑셀같은 소프트웨어는 한계에 부딪히게 됨- 많은 사용자들은 보다 효율적인 데이터의 관리 뿐만 아니라 예기치 못한 사건으로 인한 데이터의 손상을 피하고, 필요시 필요한 데이터를 복구하기 위한 강력한 기능의 소프트웨어를 필요로 하게 되었고 이러한 기본적인 요구사항을 만족시켜주는 시스템을 DMBS(Database Management System)라고 함 1.1 데이터베이스의 발전 1) 1960년대 : 플로우차트 중심의 개발 ..
2016.08.10
no image
[SQLD] 11. 분산 데이터베이스와 성능
제 6절 분산 데이터베이스와 성능 1. 분산 데이터베이스의 개요여전히 많은 데이터베이스는 네트워크를 통한 데이터베이스 간의 공유체계를 통해 분산 데이터베이스를 활용하고 있다. 분산 데이터베이스의 정의- 여러 곳으로 분산되어있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스- 논리적으로 동일한 시스템에 속하지만, 컴퓨터 네트워크를 통해 물리적으로 분산되어 있는 데이터들의 모임, 물리적 Site 분산, 논리적으로 사용자 통합 및 공유 가능 2. 분산 데이터베이스의 투명성(Transparency) 1) 분할 투명성(단편화)2) 위치 투명성 3) 지역사상 투명성4) 중복 투명성5) 장애 투명성6) 병행 투명성 3. 분산 데이터베이스의 적용 방법 및 장단점가. 분산 데이터베이스 적용방법 ..
2016.08.08
no image
[SQLD] 10. 데이터베이스 구조와 성능
제 5절 데이터베이스 구조와 성능 1. 슈퍼타입 / 서브타입 모델의 성능고려 방법 가. 슈퍼/서브타입 데이터 모델의 개요Extended ER모델이라고 부르는 이른바 슈퍼/서브타입 데이터 모델은 최근 데이터 모델링을 할 때 자주 쓰이는 모델링 방법이다. 이 모델이 자주 쓰이는 이유는 업무를 구성하는 데이터의 특징을 공통과 차이점의 특징을 고려하여 효과적으로 표현할 수 있기 때문이다. 즉, 공통의 부분을 슈퍼타입으로 모델링하고, 공통으로부터 상속받아 다른 엔터티와 차이가 있는 속성에 대해서는 별도의 서브엔터티로 구분하여 업무의 모습을 정확하게 표현하면서, 물리적인 데이터 모델로 변환을 할 떄 선택의 폭을 넓힐 수 있는 장점이 있다. 슈퍼/서브타입의 데이터 모델은 논리적인 데이터 모델에서 이용되는 형태이고, ..
2016.08.08
no image
[SQLD] 9. 대량 데이터에 따른 성능
제 4절 대량 데이터에 따른 성능 1. 대량 데이터 발생에 따른 테이블 분할 개요 대량의 데이터가 하나의 테이블에 집약되어있고, 하나의 하드웨어 공간에 저장되어 있으면 성능저하를 피하기 쉽지 않다. 처리 하는 일의 양이 한군데에 몰리는 현상은 어떤 업무에 있어서 중요한 업무에 해당되는 데이터가 특정 테이블에 있는 경우에 발생이 되는데 이런 경우 트랜잭션이 분산 처리될 수 있도록 테이블단위에서 분할의 방법을 적용할 필요가 있는 것이다. 하나의 테이블에 대량의 데이터가 존재하는 경우에는 인덱스의 Tree 구조가 너무 커져 효율성이 떨어져 데이터를 처리(입력, 수정, 삭제, 조회)할 때 디스크 I/O를 많이 유발하게 된다. 또한, 인덱스를 생성할 떄 인덱스의 크기가 커지게 되고 그렇게 되면 인덱스를 찾아가는 ..
2016.08.05